728x90
비선점형
한번 CPU가 프로세스에 할당되면 작업을 완료할 때까지 CPU를 사용하며, 중간에 다른 프로세스가 CPU를 뺏을 수 없다.
구현이 간단하며, 오버헤드가 낮다.
FCFS(First-Come, First-Served)
- 큐에 들어온 순서대로 CPU를 할당(선입선출)
- 처리 시간이 긴 프로세스가 앞으로 오면 뒤에 있는 프로세스들은 앞 작업이 끝날 때까지 기다려야 하므로 시스템의 효율성이 떨어짐
SJF(Shortest Job First)
- 큐에 있는 프로세스 중에서 실행 시간이 짧은 프로세스부터 CPU를 할당
- 긴 작업은 짧은 작업들에 밀려 실행순위가 밀리게 됨 아사 현상
HRN(Highest Response Ratio Next)
- SJF에서 발생할 수 있는 아사 현상을 해결하기 위해 만들어진 방식
- 대기 시간, CPU 사용 시간을 고려하여 스케줄링을 하는 방식
- 대기 시간 + 사용 시간 / 사용시간 = 응답시간
- 응답시간이 클수록 우선순위가 높아진다
선점형
프로세스가 CPU를 사용 중일 때 다른 프로세스가 CPU를 뺏을 수 있다.
오버헤드가 비선점형에 비해 높으며, 구현이 복잡하다.
RR(Round Robin)
- 큐에 들어온 순서대로 CPU를 할당(선입선출)
- 프로세스가 할당받은 시간 동안 작업, 작업을 완료하지 못하면 큐의 맨 뒤로 이동하고 다시 자기 차례를 기다림
- 타임슬라이스가 큰 경우 FCFS 스케줄링과 비슷함
- 타임슬라이스가 작은 경우 문맥 교환이 자주 일어나 성능이 저하됨
SRT(Short Remaining Time)
- SJF + RR 스케줄링이 합쳐진 방식
- 정해진 시간만큼 CPU를 이용하고, 다음에 실행되는 프로세스는 남은 작업 시간이 적은 프로세스실행
- 긴 작업은 짧은 작업들에 밀려 실행순위가 밀리게 됨 아사 현상
우선순위
- 프로세스에 우선순위를 할당하고 우선순위가 높은 프로세스부터 CPU를 할당
- 우선순위가 낮은 프로세스는 아사 현상이 발생될 수 있음, 에이징 기법을 사용하여 대기 시간이 길어질수록 프로세스의 우선순위를 높여주는 방법이 있음
다단계 큐
- 우선순위별로 큐를 여러 개 사용하는 방식
- 각 큐는 독립적인 스케줄링 방식(FCFS, RR 등)을 가지며, 큐 간 이동은 불가능하다
- 우선순위가 높은 큐부터 프로세스를 처리 -> 아사 현상 유발
다단계 피드백 큐
- 프로세스는 처음에 가장 높은 우선순위의 큐로 들어가고 할당받은 시간 내에 작업을 완료하지 못한 경우 우선순위가 낮은 큐로 이동함
- 우선순위에 따라 타임 슬라이스 크기가 다름 -> 우선순위가 낮아질수록 CPU를 얻을 확률이 낮아짐 한번 CPU를 사용할 때 많이 작업하라는 기회를 줌
- 낮은 우선순위 큐에서 너무 오래 기다리는 상황이 발생할 수 있으므로, 에이징 기법을 사용
'운영체제' 카테고리의 다른 글
동기화가 필요한 이유(뮤텍스 락, 세마포어, 모니터) (1) | 2024.04.15 |
---|---|
휘발성 메모리, 비휘발성 메모리, 메모리 보호 방식 (0) | 2024.04.08 |
프로세스 라이프 사이클 (0) | 2024.04.04 |
운영 체제, 부팅 (0) | 2024.03.27 |
커널 (0) | 2024.03.20 |