손영배 블로그 누구나 쉽게 이해하고 습득하기
CPU 스케줄러 본문
스케줄러는 ready queue에 존재하는 프로세스들을 특정 우선순위를 기반으로 CPU를 할당받게 해주는 역할이다.
스케줄러가 스케줄링을 하는데에 2가지 중요한 요소, 최대관심사, 기준
- 첫번째, 대기 시간(waiting time), CPU 할당시간
- 두번째, 스케줄링을 어떻게 구현할 것인가? 어떤 자료구조인가?
스케줄링의 목표는?
- CPU 활용을 최대화
- 평균 대기 시간을 최소화
- 처리량 최대화
선점 과 비선점의 차이는?
- 1. 선점 : 뺏을 수 있는 방법
- 한 프로세스가 CPU를 할당받아 실행중이라도 다른 프로세스가 현재 프로세스를 중지 시키고 CPU를 강제적으로 뺏을 수 있는 스케줄링 방식
- 장점 : 긴급하게 처리해야 할 높은 우선순위를 가진 프로세서들을 빠르게 처리가능
- 단점 : 프로스세 간 문맥 교환이 자주 발생 -> 운영체제의 오버헤드 증가 효과적인 선점을 하려면 준비 상태의 프로세스가 많아야 함 우선순위를 고려해야 함
선점 알고리즘 [Preemptive scheduling]
Round Robin (RR) Algorithms
time sharing system(시분할 시스템)이 나온 뒤로부터 수행되는 스케줄링 알고리즘
Round + Robin(새이름) = robin이라는 새가 새끼한테 모이를 줄 때, 조금씩 나눠서 조금 주고, 또 조금 주고 한 라운드를 다 돌면 그 다음에 다시 처음 새끼부터 조금씩 주는 것을 반복한다고 해서 robin이라는 새처럼 한 라운드에 조금씩 전부 분배하고 다시 반복하는 스케줄링 Round Robin이라고 한다
그래서 모두에게 공평한 알고리즘
현재 지금 우리의 운영체제는 Priority + RR 형태로 스케줄링 되고 있다는 것
https://blog.naver.com/PostView.nhn?blogId=jhnyang&logNo=221502772494
SRT(Shortest Remaining time) , SRTF라고도 부름 마지막에 First를 붙여서
선점 스케줄링 알고리즘
최단 잔여시간을 우선으로 하는 스케줄링
진행 중인 프로세스가 있어도, 최단 잔여시간인 프로세스를 위해 sleep시키고 짧은 프로세스를 먼저 할당한다.
Priority Scheduling(우선 순위 스케줄링)
- 우선 순위가 높은 프로세스에 CPU를 우선 할당하는 방식의 스케줄링
- 우선 순위는 시간 제한, 메모리 요구량, 프로세스의 중요성, 자원사용 비용 등에 따라 달라질 수 있다.
- 우선 순위가 같을 경우, FCFS와 다를게 없다.(비선점, 선점 둘다 사용된다.
- 2. 비선점 기법[Non-preemptive scheduling] : 뺏을 수 없는 방법
- 한 프로세스가 CPU를 할당받아 실행중이라면 다른 프로세스들이 CPU를 강제적으로 뺏을 수 없는 스케줄링방식
- 일괄 처리 시스템에 적합/ 시분할 시스템에 적합X
- 장점 : 모든 프로세스에 대한 공정한 기능, 프로세스 간의 오버헤드가 적어 효율
- 단점 : 짧은 작업이 긴 작업이 끝날때까지 기다리게 되는 경우 발생
비선점 알고리즘
FCFS(First Come First Served)
- 먼저 CPU를 요청하는 프로세스를 먼저 처리하는 방식
- CPU를 요청하는 프로세스의 burst time에 따라 평균 waiting time이 나빠진다.
SJF(Shortest - Job - First)
- 평균 waiting time을 최소화하기 위해 사용하는 방식
- 버스트 시간이 짧은 프로세스부터 CPU를 할당한다.
- 문제점 : Waiting time을 최소화하는 데는 최적이지만, brust timed 긴 프로세스은 오랜 시간 굶주려야 하므로,
- Non starvation을 어기게 된다.
https://hyunah030.tistory.com/4
특징
문제점
'OS' 카테고리의 다른 글
교착상태 deadlock (0) | 2019.10.24 |
---|---|
비동기식 병행 실행 (0) | 2019.10.24 |
프로세스와 스레드 기초 (0) | 2019.10.03 |
프로세스 스케줄러 (0) | 2019.10.02 |