1. CPU 스케줄링
CPU 스케줄링은 작업을 처리하기 위해서 프로세스들에게 CPU 자원을 효율적으로 배분하는 것을 말합니다.
2. 스케줄링 큐(queue)
구분 | 설명 |
job queue | 시스템 내에 있는 모든 프로세스의 집합 |
ready queue | 메인 메모리에 상주하면서 실행될 준비를 하고 기다리는 프로세스 집합 |
waiting(or device) queue | 특정 입출력 장치를 대기하는 프로세스 집합 |
3. 선점형 비선점형 스케줄링
구분 | 특징 | 장점 | 단점 |
선점형 스케줄링 | 운영체제가 프로세스가 사용중인자원을 빼앗아 다른 프로세스에 할당가능 | 높은 우선 순위를 가진 프로세스를 빠르게 처리하려는 시스템에 유용 빠른 응답 시간을 요구하는 시분할 시스템에 유용 |
문맥교환 빈번 ->오버헤드 발생 가능 |
비선점형 스케줄링 | 프로세스가 자원을 사용중이라면 끝나기 전까지는 간섭 X | 모든 프로세스에 공정 응답시간 예측 |
짧은 실행시간이 필요한 프로세스라도 매우 긴 작업이 끝난 후에야 실행 가능 |
4. CPU 스케줄링 알고리즘
종류 | 특징 |
선입선처리 스케줄링(FCFS) | 비선점형 스케줄링 방식 |
최단작업우선 스케줄링(SJF) | ready queue에 있는 프로세스 중에서 CPU이용 시간이 짧은 프로세스부터 스케줄링 |
라운드로빈 스케줄링 (RR=FCFS+타임슬라이스) |
정해진 시간 동안 FCFS 방식으로 돌아가면서 실행하는 스케줄링. 타임슬라이스의 크기가 중요 |
최소잔여시간우선 스케줄링 (SRT =RR + SJF ) |
타임슬라이스의 크기만큼 CPU를 사용하고 다음으로 사용할 프로세스는 남아있는 작업시간이 짧은 프로세스 선택 |
우선순위 스케줄링 | 프로세스에 우선순위를 부여하고, 우선순위에 따라 프로세스 실행. 기아현상(높은 우선순위에 밀려 낮은 우선순위의 프로세스의 실행이 계속 연기됨) 가능. 해결책 : 에이징(우선순위에서 밀려나 대기시간이 길어진 프로세스의 우선순위를 점차 높이는 방법) |
다단계 큐 스케줄링 | 우선순위별로 여러개의 단계별 큐를 사용. 각각의 큐마다 다른 스케줄링 알고리즘 적용가능(기아 발생가능) |
다단계 피드백 큐 스케줄링 | 다단계 큐 스케줄링 + 프로세스들의 큐 이동 가능 ready queue에 있는 프로세스는 가장 높은 우선순위 큐에 들어가고 타임슬라이스 동안 실행 후 남은 작업이 있으면 한단계 낮은 우선순위 큐로 이동. 에이징으로 기아 현상 해결 가능. |
Reference
혼자 공부하는 컴퓨터 구조 + 운영체제
https://reakwon.tistory.com/132
'CS > 운영체제&컴퓨터구조' 카테고리의 다른 글
교착 상태(dead lock) (0) | 2022.11.03 |
---|---|
프로세스 동기화 (0) | 2022.11.03 |
프로세스 상태와 스레드 (0) | 2022.11.02 |
PCB(Process Control Block)와 문맥교환(Contect Switching), 메모리 공간의 구조 (0) | 2022.11.02 |
커널(Kernel)과 시스템 콜(Syetem call) (0) | 2022.11.02 |
댓글