운영체제
Scheduling
주현테크
2021. 11. 17. 15:20
스케줄링 [Scheduling]
■ 처리기 스케줄링
- 처리기 스케줄링의 정의: 응답 시간이나 처리량, 효율성을 증대시키기 위해 처리기가 다음에 실행할 프로세스를 선택하는 것.
※ 선후 관계에 따른 스케줄링의 4가지 유형
장기 (long - term) | 스케줄링 프로세스가 CPU에 의해 실행 가능한 자격을 부여 여부를 결정 |
중기 (medium - term) | 스케줄링 프로세스 이미지 전부 혹은 일부가 주 메모리에 올라올 수 있는지에 대한 여부를 결정 |
단기 (short - term) | 스케줄링 CPU에 의해 실행될 다음번 프로세스로 어떤 프로세스를 선택할지 결정 |
입출력 (I/O) | 스케줄링 대기 중인 입출력 요구 중 해당 입출력 장치가 다음번에 어떤 요구를 처리할지 결정 |
- 장기 스케줄링: degree of multiprogramming을 결정
- 중기 스케줄링: swapper의 역할
- 단기 스케줄링: CPU 스케줄링에 해당
처리기 스케줄링의 유형: 장기 스케줄링
- 새 프로세스의 시스템 진입 허용 여부 결정
- 멀티 프로그래밍의 정도를 결정
- 새로운 프로세스의 진입 허용 시점: 시스템 내의 부하 조절, 시스템 포화 상태 여부
- 어떤 규정으로 작업들을 골라 프로세스로 만들 것인가?
- FCFS (First Come First Served)
- Priority - Based
- CPU - Burst 길이
- 입출력 중심 (I/O bound) 프로세스 우대
- 여유 입출력 자원 사용 예정 프로세스 우대
처리기 스케줄링의 유형: 중기 스케줄링
- 스와핑(swapping) 기능의 일부
- 스왑 공간으로 쫓겨나간(swap-out) 프로세스 전체 또는 일부 중 어느 것을 다시 주 메모리로 스왑인(swap-in)할 것인가?
처리기 스케줄링의 유형: 단기 스케줄링
- 디스패쳐(dispatcher)라고도 한다.
- 장기/중기 스케줄러보다 매우 자주 실행
- 세밀한 기준으로 다음 번에 실행시킬 프로세스를 선정
- 단기 스케줄러 실행 시점
- 클럭(타이머) 인터럽트(시간할당량 만료 시): 타임아웃을 설정하고 발생시, 스케줄링 자동으로 호출
- 입출력 인터럽트
- 운영체제 시스템 호출(커널 내 preemption point 또는 사용자 모드로 복귀하기 직전)
- 신호(signal)(예를 들면, 세마포어)