해당 내용은 쉽게 배우는 운영체제을 기반으로 작성되었습니다.
2. 스케줄링 시 고려 사항
02(1) 선점형 스케줄링과 비선점형 스케줄링
선점형 스케줄링 (preemptive scheduling)
- '선점' = 빼앗을 수 있음
- 어떤 프로세스가 CPU를 할당받아 실행 중이더라도 운영체제가 CPU를 강제로 빼앗은 수 있는 스케줄링 방식
- 운영체제가 필요하다고 판단 시, 실행 상태에 있는 프로세스의 작업을 중단시키고 새로운 작업 시작
- 하나의 프로세스가 CPU를 독점할 수 없기 때문에 빠른 응답 시간을 요구하는 대화형 시스템이나 시분한 시스템에 적합
- 대부분의 저수준 스케줄러는 선점형 스케줄링 방식을 사용
- 단점 : 문맥 교환같은 부가적인 작업으로 인해 낭비가 생김
- 선점형 스케줄링의 대표적인 예시 : 인터럽트 처리
인터럽트 처리 방식
1. CPU가 인터럽트 받으면
2. 현재 실행 중인 작업중단
2. 커널 깨우기
3. 인터럽트 처리
4. 기존 작업으로 돌아감
비선점형 스케줄링 (non-preemptive scheduling)
- '비선점' = 빼앗을 수 없음
- 어떤 프로세스가 CPU를 점유하면 다른 프로세스가 이를 빼앗을 수 없는 스케줄링 방식
- 어떤 프로세스가 실행 상태에 들어가 CPU를 사용하면 그 프로세스가 종료되거나 자발적으로 대기 상태에 들어가기 전까지는 계속 실행된다.
728x90
'Basic > 운영체제 OS' 카테고리의 다른 글
Ch09 가상 메모리 관리 요약 (1) | 2024.06.20 |
---|---|
10강 Raid (0) | 2024.06.20 |
4장 CPU 스케줄링 - 01(3) 스케줄링 목적 (0) | 2024.04.30 |
4장 CPU 스케줄링 - 01(2) 고수준, 저수준, 중간수준 스케줄링 (1) | 2024.04.24 |
4장 CPU 스케줄링 - 01(1) 스케줄링, CPU 스케줄러 (0) | 2024.04.24 |