2017. 3. 5. 20:07ㆍ9급 공무원/컴퓨터 일반
CPU및 자원을
프로세스에게
적절하게 할당하는
작업
# 스케줄링 종류
> 장기 스케줄링 : 어느 작업을 개시할 것인가? (수행시간이 가장 길다)
> 중기 스케줄링 : 형성된 프로세스들 또는 프로세스 그룹에서 어느 것을 활성화 시키고 보류할 것인가?
> 단기 스케줄링 : 대기 리스트에 있는 프로세스 중 어떤 것에 프로세서를 할당할 것인가?
# 스케줄링 방법
> 비선점형 스케줄링 : 프로세스가 cpu를 할당 받으면, 작업이 끝나야 돌려줌
* FCFS(First Come First service) > 먼저 왔으니까 먼저 써
: 프로세스가 도착한 순서대로 cpu할당
* SJF(Shortest Job First) > 자, 다음은 누가 제일 빨리 끝낼 수 있지?
: cpu를 사용하는 시간(실행시간)이 가장 짧은 프로세스에 먼저 cpu할당
: 실행시간이 짧은 프로세스가 추가될 경우,
실행시간이 긴 프로세스는 cpu를 할당받지 못함(기아현상, starvation)
* HRN(Highest Response next) > 먼저 왔는데 아직도 cpu를 못 썼어?
: cpu 사용시간과 더불어 대기시간을 고려하여 cpu할당
: 우선순위(값이 클 수록 빠름) = (대기시간 + 실행시간) / 실행시간
: SJF의 기아 문제를 해결하기 위한 방법
> 선점형 스케줄링 : 한 시점에 우선순위가 가장 높은 프로세스가 cpu를 강탈해감
* RR(Round Robin) > 시간 끝났어 뒤로 가
: 프로세스 도착 순서대로 CPU를 할당하지만, 정해진 시간만큼 사용하고 나면 대기 큐로 돌아간다
(FCFS의 선점형 버전, 공평함)
* SRT(Shortest Remaining Time) > 얘가 금방 쓰고 준대
: 실행중인 프로세스를 포함하여 실행시간이 가장 짧은 프로세스에게 cpu할당
(SJF의 선점형 버전)
: 모든 프로세스의 남은 시간을 체크해야하므로 오버헤드 증가
* MQ(Multi-level Queue) > 이 작업이 빨리 끝나, 다른 작업은 이따가 하자
: 작업유형별로 프로세스 분류하여 우선순위 결정
: 여러 종류의 큐, 각 큐는 자신의 스케줄링 알고리즘 수행, 큐와 큐 사이의 스케줄링 수행됨
: 프로세스는 다른 큐로 이동 불가
* MFQ(Multi-level Feedback Queue) > 빨리 할 수 있으면 앞으로 서
: 프로세스 처리 시간을 기준으로 우선순위 결정
: 우선순위를 갖는 여러개의 큐
: 프로세스가 다른 큐로 이동할 수 있다
※ 스케줄링 방법과 함께 실행시간, 대기시간, 반환시간을 물어보는 문제가 많이 나옴
* 실행시간 : cpu를 점유하고 사용한 시간
* 대기시간(Waiting time) : 작업 큐에 들어있으면서 cpu를 사용하지 않은 시간
* 반환시간(Turnaround Time) : 실행시간 + 대기시간
* 평균 반환시간 : 각 프로세스들의 반환시간의 평균
* 응답시간 : 응답이 시작되는 데까지 걸리는 시간임!! / 응답을 출력하는데 걸리는 시간이 아님
(이건 스케줄링에서 쓰는 단어가 아닌 것 같은데?)
※ Convoy Effect(호위효과)
FCFS 알고리즘에서 짧은 프로세스가 CPU를 양도하기를 기다리는 것으로, 짧은 프로세스들이 먼저 처리될 때보다 CPU와 장치 이용률 저하.
※ 기아상태는 Aging 기법을 사용하여 해결
기아상태는 우선순위알고리즘에서 나타남.
'9급 공무원 > 컴퓨터 일반' 카테고리의 다른 글
[운영체제] 데커 알고리즘(Dekker's algorithms) 개요 (0) | 2017.03.05 |
---|---|
[운영체제] 교착상태(Deadlock) (0) | 2017.03.05 |
[운영체제] 가상 기계 (0) | 2017.03.05 |
[운영체제] 프로세스의 상태 (0) | 2017.03.05 |
[운영체제] 운영체제를 구성하는 프로그램 (0) | 2017.03.05 |