2019년 2월 13일
CPU 스케줄링
I. CPU의 효율적 사용, CPU 스케줄링
가. CPU 스케줄링의 개념
- 프로세스 작업 수행을 위해 언제, 어느 프로세스에 CPU를 할당할 것인지 결정하는 작업
나. CPU 스케줄링 기법 종류
구분 | 기법 | 설명 |
---|---|---|
선점 | RR | – 초기 FCFS, 환형 순환구조 뒤로 보냄 |
SRT | – 가장 짧게 남은 시간 | |
MLQ | – 여러 개 큐 이용 | |
MLFQ | – 서로 다른 타임 슬라이스의 큐 이용 | |
비선점 | Priority | – 우선순위 높은 순서대로 처리 |
FCFS | – 대기 큐에 도착한 순서에 따라 할당 | |
SJF | – 수행시간(버스트시간) 짧게 판정 먼저 | |
HRN | – 우선순위=(대기 + 버스트) / 버스트 시간 |
- 스케줄러 동작 시점, Time Slice, 프로세스 생성/소멸 시, 프로세스 Block 상태 변경 시
- 스케줄러가 운영체제에 많이 관여-선점, 적게 관여-비선점
II. SJF(Shortest Job First), SRT(Shortest Remaining Time)
가. SJF(Shortest Job First)
개념 | |
설명 | – 비선점 방식 (non-preemptive) – 대기 작업 중 수행시간이 짧게 판정된 작업 수행 – 짧은 작업 먼저 수행이 오버헤드 측면에서 유리 |
문제점 | – 작업 수행시간을 사전에 정확히 판정 어려움 |
나. SRT(Shortest Remaining Time)
개념 | |
설명 | – 선점 방식 (preemptive) – SJF 기법에 선점방식을 도입/변형 방식 – 실행 중 작업이라도 처리시간이 더 짧은 작업이 생기면 선점 |
문제점 | – 각 작업에 대한 실행 시간 추적 보유(오버헤드) – 긴 작업은 SJF 보다 대기 시간 오래 소요 |
III. SJF와 SRT의 평균 대기시간 및 평균 반환시간
프로세스 | 도착 시간 | 실행 시간 |
---|---|---|
P1 | 0 | 6 |
P2 | 1 | 3 |
P3 | 2 | 1 |
P4 | 3 | 4 |
가. SJF 기법 계산
프로세스 자원점유 그래프 | |||||||||||||||||||||||||||||||
프로세스 시간 테이블 |
| ||||||||||||||||||||||||||||||
평균 대기 | 평균 대기시간 = (0 + 6 + 4 + 7) / 4 = 4.25 | ||||||||||||||||||||||||||||||
평균 반환 | 평균 반환시간 = (6 + 9 + 5 + 11) / 4 = 7.75 |
나. SRT 기법 계산
프로세스 자원점유 그래프 | |||||||||||||||||||||||||||||||
프로세스 시간 테이블 |
| ||||||||||||||||||||||||||||||
평균 대기 | 평균 대기시간 = (8 + 1 + 0 + 2) / 4 = 2.75 | ||||||||||||||||||||||||||||||
평균 반환 | 평균 반환시간 = (14 + 4 + 1 + 6) / 4 = 6.25 |
- 대기시간: 작업이 대기 큐에서 대기한 시간, 반환시간: 작업이 제출된(도착) 시간부터 완료까지 시간
- 프로세스 자원 점유 변경 시 문맥 교환이 일어나므로 빈번한 자원 점유 변경 시 오버헤드 증가에 따른 성능 감소
3 Comments
이해 하나도 안됨
왜 sjf P1 대기시간이 3이죠?? P1 도착시간이 0인데 P1부터 실행하니까 P1의 대기시간은 0아닌가요?
말씀하신 P1의 대기시간은 0이 맞습니다. 프로세스 도착 및 실행 시간 계산 내용에 오류가 있어 본문의 내용을 수정하였습니다. 잘못된 내용 지적 감사합니다.