(1) 스케줄링
: 스케줄링이란 CPU 사용권을 요청하는 프로세스들이 여럿 있을 때, 이들 경쟁 관계에 있는 프로세스들 중에 어떤 프로세스에게 CPU를 할당할 것인가를 결정하는 정책이다.

○ 스케줄링 방식

- 선점형 멀티태스킹
: 운영체제가 시스템 자원 특히 CPU를 완전히 선점한 상태에서 각 프로세스에게 CPU를 할당. (10ms 정도 시간 단위)
  (UNIX/LINUX, Windows NT/2000/XP 운영체제)

- 비선점형 멀티 태스킹
: 운영체제가 아니라 프로그램의 프로세스들이 CPU를 제각기 알아서 사용하고, 사용하고 나면 운영체제에 반환.
  (Windows 3.1/95/98)

○ 스케줄링 알고리즘

- 선입선출(FCFS)방식 : CPU를 요청하는 순서대로 CPU 사용권을 할당. 선입선출(FIFO) 큐를 사용. (비선점형)
- 단기작업 우선(SJF)방식 : 작업 종료까지 소요되는 실행 시간 추정치가 가장 적은 작업을 먼저 실행. (비선점형)
- 우선순위(Priority)방식 : 우선순위가 가장 높은 프로세스에 CPU를 할당. 동일하면 선입선출(FCFS)방식이 적용. (비선점형)
- 라운드 로빈(Round-robin)방식 : FCFS 방식처럼 프로세스들이 도착하는 순서대로 할당 되지만, CPU사용 시간에 제한. (선점형)

○ UNIX 시스템의 스케줄링

- 다단계 피드백 큐(Multilevel Feedback Queue) 방식
: 라운드 로빈 큐들을 여러 개 겹쳐 놓은 구조로 각 준비 큐의 프로세스는 라운드 로빈 방식으로 동작한다. 단, 시간 할당량 내에 실행이 완료되지 못한 프로세스는 우선순위가 낮아져 다음 단계의 준비 큐 마지막에 재삽입된다.

다단계 피드백 큐는 낮은 단계로 내려갈수록 우선순위가 낮아지고 프로세스의 시간 할당량은 길어진다. 
 


by 민트앤라떼 2013. 1. 10. 01:29