호기심 많은 개발자 🚀
스케줄링 & 스케줄링 알고리즘(Scheduling Algorithm) 본문
1. 정의 : OS에서 컴퓨터 시스템 자원(CPU 등)을 어떤 작업(task)에 할당할지 순서를 결정하는 것을 의미한다.
2. 구분 : 스케줄링 적용 시점에 따라 비선점형과 선점형의 2가지로 구분할 수 있다.
좋은 스케줄링은 프로세서(CPU)의 효율성을 높이고, 프로세스의 응답시간을 최소화하여 시스템의 작업 처리 능력을 향상시킨다. 즉, cpu가 쉬지않고 계속해서 돌 수 있도록 해준다.
● 선점형 : 하나의 CPU가 프로세스를 점유하고 있을 때 다른 프로세스가 CPU를 뺴앗아 차지할 수 있는 방법으로, 대화식 시분할 시스템과 같은 실시간 시스템에서 사용되는 기법이다.
● 비 선점형 : 특정한 프로세스의 작업이 모두 끝날 때 까지 CPU를 '독점' 하는 기법 이다, 응답시간 예측에 용의하다는 장점을 가지고 있지만, 긴 작업을 오래 기다려야 하는 단점이 있습니다.
★ 비선점형 알고리즘 종류
1. FCFS 스케줄링(First Come First Served Scheduling)
▷ 먼저 요청한 프로세스를 먼저 처리하는 방식
2. SJF 스케줄링(Shortest Job First Scheduling)
▷ 각 작업의 프로세서 실행 시간을 이용하여 프로세서가 사용 가능할 때 실행 시간이 가장 짧은 작업에 할당하는 방법이다.
3. HRN(HRRN) 스케줄링(Highest Response Ratio Next Scheduling)
▷ 프로세스 처리의 우선 순위를 CPU 처리 기간과 해당 프로세스의 대기 시간을 동시에 고려해 선정하는 스케줄링
알고리즘이다.
(SJF 스케줄링의 문제점을 보완해 개발된 스케줄링)
★ 선점 프로세스 스케줄링 알고리즘 종류
1. RR 스케줄링(Round Robin Scheduling)
▷ 프로세스가 도착한 순서대로 프로세스를 디스패치하지만 정해진 시간 할당량(또는 시간 간격)에 의해 실행을 제한한다.
2. SRT(SRTF) 스케줄링(Shortest Remaining-Time First Scheduling)
▷ 선점형 SJF 스케줄링 (프로세스 실행 중 더 적은 CPU 작업 시간을 요구하는 프로세스가 들어오면 현재 실행중인 프로세스를
멈추고 새로 들어온 프로세스를 실행)
3. 다단계 큐 스케줄링(Multilevel Queue Scheduling)
▷ 프로세스들은 자신의 우선순위 값에 해당하는 큐에 들어가게 되며, 우선순위가 낮은 하위 단계 큐의 작업은 실행 중이더라도
상위 단계 큐에 프로세스가 도착하면 CPU를 뺏기는 선점 방식이다.
4. 다단계 피드백 큐 스케줄링(Multilevel Feedback Queue Scheduling)
▷ 다단계 피드백 큐 스케줄링 알고리즘은 프로세스가 큐들 사이를 이동하는 것을 허용 한다. 낮은 우선 순위에 너무
오래 대기하는 프로세스는 높은 우선순위의 큐로 이동 할 수 있다.
5. RM 스케줄링(Rate Monotonic Scheduling)
▷ 수행 주기가 가장 짧은 프로세스에 가장 높은 우선순위를 부여하는 방식이다.
6. EDF 스케줄링(Earliest Deadline First Scheduling)
▷ 스케줄링 이벤트가 일어날 때마다, 큐에서 마감시간이 가장 가까운 프로세스를 탐색하여 다음에 수행되도록 한다.
'OS > Process' 카테고리의 다른 글
😱 좀비 프로세스 ( Zombie Process ) 😱 (0) | 2022.05.02 |
---|---|
프로세스란? (0) | 2022.04.17 |
HRN (Highest Response Ratio Next) 스케줄링 알고리즘 (0) | 2022.04.09 |
SJF (Shortest Job First) 스케줄링 알고리즘 (0) | 2022.04.09 |
Comments