운영체제

운영체제 스케줄링

MiaCoder 2024. 6. 14. 16:30

1. 우선순위 스케줄링

 우선순위가 동일하면 선입선처리

실행시간이 클 수록 우선순위가 낮음

 

내부적 우선순위 : 제한시간, 기억장소 요청랼, 사용파일 수, 프로셋 버스트 등을 고려함

외부적 우선순위 : 프로세스 중요성, 우선순위에 있는 사용자, 작원 지원부서, 정책 등

 

선점, 비선점 있음

우선순위 숫자가 높으면 빨리 실행해야한다

 

무한정지, 기아 문제가 있다

해결방법 에이징

에이징 : 오래 대기하는 프로세스들의 우선순위를 점진적으로 증가시키는 방법

 

장점 : 프로세스간 상대적 중요성 정의가능 실시간 시스템에 사용가능

단점 : 기아 발생

 

2. 라운드 로빈 스케줄링

시분할 시스템을 위한 설계

작은 단위시간인 규정시간량, 시간할당량 정의

준비큐를 순환큐로 설계 스케줄러가 준비큐를 돌아가며 한번에 한 프로세스에 정의된 규정시간쟝만큼 프로세스를 제공함

 

규정시간량이 작을수록 문맥교환이 많이 일어난다. 이를 고려해 규정시간량을 정해야한다.

장점 : 공정하며 기아발생없음, 프로세스 수를 알고 있을 때 구현 용의, 짧은 응답시간, FCFS SJF보다 짧은 평균 대기시간

단점 : 작업 비슷한 길이가 유리함. 하드웨어 타이머 필요, 미완성 작업은 평균 처리시간이 높음

 

3. 다단계 큐 스케줄링

각 작업을 서로 다른 묶으믕로 분류할 수 있을때 사용함

큐를 종류별로 여러개로 분할(작업형태, 메모리 크기 등)

각 큐는 독자적인 스케줄링을 가짐

큐 사이에 우선순위가 있음

 

장점 : 응답이 빠름

단점 : 추가 오버헤드 발생, 우선순위가 낮은 프로세스으 무한 대기

 

특징 : 작업이 시스템에 뜰어가면 한큐에서만 고정실행(여러 큐 중)

 스케줄링 부담이 적으나 융통성이 떨어짐

작업이 큐 사이 이동 가능

 

큐 수를 규정

각 큐에대한 스케줄링

 

매우 유연하여 특정 시세템이 맞출 수 있음(유연함), 설계 구현이 매우 복잡

 

4. HRN 스케줄링

 

SJF의 긴 작업과 짧은 작업간의 지나칭 불평등을 보완

비선점 스케줄링이며 우선순위 스케줄링의 또 다른 예

우선순위 = (서비스를 받을 시간 + 대기한시간) / 서비스를 받을 시간

 

시스템 응답시간 = 대기산시간 + 서비스를 받을 시간

 

장점: 기아가 없음, 자원을 효율적으로 사용

단점 : 오버헤드가 높음

 

5.다중 프로세스 스케줄링

프로세서가 여러개면 스케줄링이 복잡해짐.

프로세서 자신이 스스로 스케줄링

비대칭 다중 처리 - 한 프로세스를 다른 프로세서의 스케주럴로 사용

주종관게

 

6. 스레드 스케줄링

스레드를 이용하여 응용프로그램 들을 동일한 주소공간에서 동시에 실행하고 협동하는 스레드들로 구현할 수 있음

오버헤드가 적어 성능 향상

 

방법 

부하 공유 스케줄링

프로세서를 특정 프로세스 하나에 할당하지 않고 전역큐에서 유지

쉬는 프로세스는 전역 큐에서 스레드하나를 선택

 

갱 스케줄링

관련된 스레드 집합을 일대일 대응에 따라 프로세스 집합에서 동시에 실행될 수 있도록 스케줄링

밀접한 프로세스들이 병렬로 실행되어 동기화대기 및 문맥교환을 최소화 하여 성능향상

스케줄링에 필요한 오버헤드가 감소함.

 

전용프로세서 할당

스레드들을 실행전담 프로세서에 할당하여 정의된 스케줄링을 제공

각 프로그램에게 실행되는 동안 프로그램의 스레드 수와 동일한 수의 프로세스를 할당받음

 

동적 스케줄링

프로그램의 스레드 수는 실행 도중 변화가능

시스템이용율을 높일 수 있게 부하조절을 허용