11. CPU 스케줄링
11-1. CPU 스케줄링 개요
- CPU 스케줄링 : 운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 분배하는 것
- 컴퓨터 성능과도 직결되는 중요한 문제!
프로세스 우선순위
- 프로세스마다 우선 순위가 다름
우선순위가 높은 프로세스 예시 : 입출력 작업이 많은 프로세스
- 왜?
- 프로세스들은 CPU와 입출력장치들을 모두 사용하며 실행
- 근데 프로세스마다 이용하는 시간의 양에 차이가 있음
- 입출력 집중 프로세스
- 비디오 재생, 디스크 백업
- : 입출력 작업이 많은 프로세스
- CPU 집중 프로세스
- 복잡한 연산, 컴파일, 그래픽 처리 작업
- : CPU 작업이 많은 프로세스
- 각각의 상황에 맞게 CPU 배분하는 것이 더 효율적
- 우선순위가 높은 프로세스일수록 더 빨리, 더 자주 실행
스케줄링 큐
- 우선순위가 있다고 하지만, 일일히 찾는 것은 비효율적
⇒ CPU를 사용하고 싶은 프로세스, 메모리에 적재되고 싶은 프로세스 등을 분류하여 모두 줄 세움’
⇒ 이 줄을 ‘스케줄링 큐’로 구현하고 관리
- 준비 큐 : CPU이용 프로세스들이 서는 줄
- 대기 큐 : 입출력장치 이용 프로세스들이 서는 줄
- 줄을 먼저 섰다고 할지라도, 우선순위가 높은 프로세스는 더 먼저 처리될 수 있음
선점형과 비선점형 스케줄링
CPU를 프로세스가 쓰고 있는데, 갑자기 다른 급한 프로세스가 나타난다면?
- 선점형 스케줄링
- : 쓰고 있더라도 강제로 뺴앗아 다른 프로세스에 할당할 수 있는 스케줄링 방식
- 비선점형 스케줄링
- : 세션 종료나 대기 상태에 접어들기 전까진 다른 프로세스가 끼어들 수 없는 스케줄링
11-2. CPU 스케줄링 알고리즘
스케줄링 알고리즘의 종류
- 선입 선처리 스케줄링
- 큐에 삽입된 순서대로 프로세스 처리하는 비선점형 스케줄링 방식
- 비선점형
- 최단 작업 우선 스케줄링
- CPU 이용 시간의 길이가 가장 짧은 프로세스부터 실행
- 라운드 로빈 스케줄링
- 선입 선처리 스케줄링 + 타임슬라이스
- 타임슬라이스 : 각 프로세스가 CPU를 사용할 수 있는 정해진 시간
- 최소 잔여시간 우선 스케줄링
- 최단 작업 우선 + 라운드 로빈
- 정해진 타임 슬라이스만큼 CPU 사용 → 다음 프로세스는 남아있는 작업 시간이 가장 적은 프로세스 선택
- 우선순위 스케줄링
- 높은 우선순위 프로세스부터 실행
- 다단계 큐 스케줄링
- 우선순위별로 준비 큐를 여러개 사용하는 스케줄링 방식
- 다단계 피드백 큐 스케줄링
- 프로세스들이 큐 사이를 이동할 수 있음
반응형
'Data Engineering > 혼공컴운' 카테고리의 다른 글
혼자 공부하는 컴퓨터구조 + 운영체제 13장 정리 (0) | 2025.04.01 |
---|---|
혼자 공부하는 컴퓨터구조 + 운영체제 12장 정리 (0) | 2025.04.01 |
혼자 공부하는 컴퓨터구조 + 운영체제 10장 정리 (0) | 2025.04.01 |
혼자 공부하는 컴퓨터구조 + 운영체제 9장 정리 (0) | 2025.04.01 |
혼자 공부하는 컴퓨터구조 + 운영체제 8장 정리 (0) | 2025.02.05 |