-
스케줄링의 단계
프로세서 스케줄링은 프로세스들이 언제 어느 프로세서에 할당될 것인가에 대한 결정을 의미하며, 다음의 세 단계가 고려됨
-
1단계
- 어느 작업이 시스템 내의 자원을 실제로 사용하도록 할 것인지를 결정하므로, 작업 스케줄링이라고 함
- 수행 빈도로 표현하면 장기 스케줄링
-
2단계
- 어느 프로세스에게 프로세서를 사용할 권한을 줄 것인지를 결정하고, 시스템의 부하가 변동함에 따라 어느 프로세스를 잠정적으로 연기할 것인지를 결정
- 수행 빈도로 표현하면 중기 스케줄링
-
3단계
-
디스패처에 의해 준비 상태에 있는 프로세스 중에서 어느 프로세스에게 프로세서를 할당할 것인지를 결정
- 프로세스[Process] : 컴퓨터 내에서 실행중인 프로그램을 일컫는 용어
- 프로세서[Processor] : 컴퓨터의 연산 장치와 제어 장치를 한 개의 작은 실리콘 칩에 집적시킨 처리 장치를 의미하며, 일면 '처리기'라고 함(CPU)
-
수행 빈도로 표현하면 단기 스케줄링으로, 빈번한 실행을 통해 다음에 실행할 프로세스를 결정
- 스케줄링의 기본 요소
기본 요소 |
특징 |
CPU 입.출력 버스트 주기 |
- 프로세스의 실행 : CPU 실행과 입.출력 대기의 사이클로 구성
|
스케줄링 큐 |
- 스케줄링 하기 위해 사용하는 자료구조로, 프로세스 제어블록(Process Control block) 리스트의 형태
|
CPU 스케줄링 결정 발생 조건 |
- 프로세스가 실행 상태에서 대기 상태로 전환
- 프로세스가 실행 상태에서 준비 상태로 전환
- 프로세스가 대기 상태에서 준비 상태로 전환
- 프로세스가 종료
|
선점 스케줄링과 비선점 스케줄링 |
- 선점 스케줄링이란 하나의 프로세스가 CPU의 점유를 종료하지 않거나 입.출력을 요구하지 않은 상태에서도 다른 프로세스가 CPU를 차지하는 방식
- 비선점 스케줄링이란 프로세스가 CPU를 해제하고 싶거나, 종료하거나, 입.출력 요구를 하기 전까지는 자신이 CPU를 차지하고 있는 방식
|
문맥 교환(Context Switching) |
- CPU가 한 프로세스에서 다른 프로세스로 전환할 때, 실행하던 프로세스의 정보를 적재하여 실행을 준비하는 것
|
디스패처(Dispatcher) |
- 프로세스 스케줄러 또는 저급 스케줄러로, CPU의 제어를 단기 스케줄러가 선택한 프로세스에게 부여하는 모듈
|