2023.07.29 - [컴퓨터 공학/운영체제] - [혼공컴운] chapter.10 프로세스와 스레드
11-1 CPU 스케줄링 개요
- 프로세스 우선순위
- CPU 스케줄링(CPU scheduling): 운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것.
→ 운영체제는 프로세스의 중요도에 맞게 CPU를 이용할 수 있게 우선순위(priority)를 부여.
- 입출력 집중 프로세스(I/O bound process): 비디오 재생 및 디스크 백업 등 입출력 작업이 많은 프로세스
- CPU 집중 프로세스(CPU bound process): 수학연산, 컴파일, 그래픽 처리 등 CPU 작업이 많은 프로세스
* CPU 버스트와 입출력 버스트
- CPU 버스트(CPU burst): CPU를 이용하는 작업
- 입출력 버스트(I/O burst): 입출력장치를 기다리는 작업 - 스케줄링 큐(scheduling queue)
→ CPU, 메모리, 특정 입출력장치 등을 사용하고 싶은 프로세스들을 줄을 세워 스케줄링 큐로 구현하고 관리.
운영체제가 관리하는 대부분의 자원은 큐로 관리됨.
- 준비 큐(ready queue): CPU를 이용하고 싶은 프로세스들이 서는 줄
- 대기 큐(waiting queue): 입출력장치를 이용하기 위해 대기 상태에 접어든 프로세서들이 서는 줄
- 선점형과 비선점형 스케줄링
- 선점형 스케줄링(preemptive scheduling)
: 프로세스가 사용하고 있는 자원을 운영체제가 프로세스로부터 강제로 빼앗아 다른 프로세스에 할당할 수 있는 스케줄링 방식.
→ 어느 한 프로세스의 자원 독점 방지. BUT 문맥 교환 과정에서 오버헤드 多 - 비선점형 스케줄링(non-preemptive scheduling)
: 하나의 프로세스가 자원을 사용하고 있다면 그 프로세스가 종료되거나 스스로 대기 상태에 접어들기 전까지 다른 프로세스가 끼어들 수 없는 스케줄링 방식.
→ 문맥 교환 과정에서 오버헤드 小. BUT 모든 프로세스가 골고루 자원 사용 불가
- 선점형 스케줄링(preemptive scheduling)
11-2 CPU 스케줄링 알고리즘
- 선입 선처리 스케줄링(FCFS(First Come First Served) 스케줄링)
: 준비 큐에 삽입된 순서대로 프로세스들을 처리하는 비선점형 스케줄링 방식
* 호위 효과(convoy effect): CPU를 오래 사용하는 프로세스를 다른 프로세스들이 기다리는 현상 - 최단 작업 우선 스케줄링(SJF(Shortest Job First) 스케줄링)
: 준비 큐에 삽입된 프로세스들 중 CPU 이용 시간의 길이가 가장 짧은 프로세스부터 실행하는 비선점형 스케줄링 방식 - 라운드 로빈 스케줄링(round robin scheduling)
: 선입 선처리 스케줄링에 타임 슬라이스 개념이 더해져 정해진 타임 슬라이스만큼의 시간 동안 돌아가며 CPU를 사용하는 선점형 스케줄링 방식.
* 타임 슬라이스: 각 프로세스가 CPU를 사용할 수 있는 정해진 시간. - 최소 잔여 시간 우선 스케줄링(SRT(Shortest Remaining Time) 스케줄링)
: 최단 작업 우선 스케줄링 알고리즘과 라운드 로빈 알고리즘을 합친 스케줄링 방식. 프로세스들은 정해진 타임 슬라이스 만큼 CPU를 사용하되, CPU를 사용할 다음 프로세스는 남아있는 작업 시간이 가장 적은 프로세스가 선택됨. - 우선순위 스케줄링(priority scheduling)
: 프로세스들에 우선순위를 부여하고 가장 높은 우선순위를 가진 프로세스부터 실행하는 스케줄링 알고리즘.
→ 우선 순위가 낮은 프로세스는 우선순위가 높은 프로세스들에 의해 실행이 계속 연기되는 기아 현상 발생
* 에이징(aging): 오랫동안 대기한 프로세스의 우선순위를 점차 높이는 방식으로 기아 현상을 방지하는 기법. - 다단계 큐 스케줄링(multilevel queue scheduling)
: 우선순위별로 준비 큐를 여러개 사용하는 스케줄링 방식.
각 준비 큐마다 다양한 알고리즘 방식 사용 가능. - 다단계 피드백 큐 스케줄링(multilevel feedback queue scheduling)
: 다단계 큐 스케줄링에서 프로세스들이 큐 사이를 이동할 수 있는 점이 추가된 스케줄링 방식.
→ 낮은 우선순위 큐에서 오래기다리고 있는 프로세스를 높은 우선순위 큐로 이동하여 기아 현상을 방지할 수 있음.
*오류 지적은 환영입니다.^^*
'컴퓨터 공학 > 운영체제' 카테고리의 다른 글
[혼공컴운] chapter.13 교착 상태 (0) | 2023.08.13 |
---|---|
[혼공컴운] chapter.12 프로세스 동기화 (1) | 2023.08.13 |
[혼공컴운] chapter.09~11 확인문제 (1) | 2023.07.30 |
[혼공컴운] chapter.10 프로세스와 스레드 (0) | 2023.07.29 |
[혼공컴운] chapter.09 운영체제 시작하기 (0) | 2023.07.29 |