운영체제 스케줄링
1. 우선순위 스케줄링
우선순위가 동일하면 선입선처리
실행시간이 클 수록 우선순위가 낮음
내부적 우선순위 : 제한시간, 기억장소 요청랼, 사용파일 수, 프로셋 버스트 등을 고려함
외부적 우선순위 : 프로세스 중요성, 우선순위에 있는 사용자, 작원 지원부서, 정책 등
선점, 비선점 있음
우선순위 숫자가 높으면 빨리 실행해야한다
무한정지, 기아 문제가 있다
해결방법 에이징
에이징 : 오래 대기하는 프로세스들의 우선순위를 점진적으로 증가시키는 방법
장점 : 프로세스간 상대적 중요성 정의가능 실시간 시스템에 사용가능
단점 : 기아 발생
2. 라운드 로빈 스케줄링
시분할 시스템을 위한 설계
작은 단위시간인 규정시간량, 시간할당량 정의
준비큐를 순환큐로 설계 스케줄러가 준비큐를 돌아가며 한번에 한 프로세스에 정의된 규정시간쟝만큼 프로세스를 제공함
규정시간량이 작을수록 문맥교환이 많이 일어난다. 이를 고려해 규정시간량을 정해야한다.
장점 : 공정하며 기아발생없음, 프로세스 수를 알고 있을 때 구현 용의, 짧은 응답시간, FCFS SJF보다 짧은 평균 대기시간
단점 : 작업 비슷한 길이가 유리함. 하드웨어 타이머 필요, 미완성 작업은 평균 처리시간이 높음
3. 다단계 큐 스케줄링
각 작업을 서로 다른 묶으믕로 분류할 수 있을때 사용함
큐를 종류별로 여러개로 분할(작업형태, 메모리 크기 등)
각 큐는 독자적인 스케줄링을 가짐
큐 사이에 우선순위가 있음
장점 : 응답이 빠름
단점 : 추가 오버헤드 발생, 우선순위가 낮은 프로세스으 무한 대기
특징 : 작업이 시스템에 뜰어가면 한큐에서만 고정실행(여러 큐 중)
스케줄링 부담이 적으나 융통성이 떨어짐
작업이 큐 사이 이동 가능
큐 수를 규정
각 큐에대한 스케줄링
매우 유연하여 특정 시세템이 맞출 수 있음(유연함), 설계 구현이 매우 복잡
4. HRN 스케줄링
SJF의 긴 작업과 짧은 작업간의 지나칭 불평등을 보완
비선점 스케줄링이며 우선순위 스케줄링의 또 다른 예
우선순위 = (서비스를 받을 시간 + 대기한시간) / 서비스를 받을 시간
시스템 응답시간 = 대기산시간 + 서비스를 받을 시간
장점: 기아가 없음, 자원을 효율적으로 사용
단점 : 오버헤드가 높음
5.다중 프로세스 스케줄링
프로세서가 여러개면 스케줄링이 복잡해짐.
프로세서 자신이 스스로 스케줄링
비대칭 다중 처리 - 한 프로세스를 다른 프로세서의 스케주럴로 사용
주종관게
6. 스레드 스케줄링
스레드를 이용하여 응용프로그램 들을 동일한 주소공간에서 동시에 실행하고 협동하는 스레드들로 구현할 수 있음
오버헤드가 적어 성능 향상
방법
부하 공유 스케줄링
프로세서를 특정 프로세스 하나에 할당하지 않고 전역큐에서 유지
쉬는 프로세스는 전역 큐에서 스레드하나를 선택
갱 스케줄링
관련된 스레드 집합을 일대일 대응에 따라 프로세스 집합에서 동시에 실행될 수 있도록 스케줄링
밀접한 프로세스들이 병렬로 실행되어 동기화대기 및 문맥교환을 최소화 하여 성능향상
스케줄링에 필요한 오버헤드가 감소함.
전용프로세서 할당
스레드들을 실행전담 프로세서에 할당하여 정의된 스케줄링을 제공
각 프로그램에게 실행되는 동안 프로그램의 스레드 수와 동일한 수의 프로세스를 할당받음
동적 스케줄링
프로그램의 스레드 수는 실행 도중 변화가능
시스템이용율을 높일 수 있게 부하조절을 허용