기타지식들/운영체제

비선점스케줄링 시간구하기

원원 2017. 2. 19. 17:53

스케줄링이란? 프로세스(프로그램)이 실행되었을때 자원을 효율적으로 할당하기위한 방법입니다.

비선점스케줄? 이미 할당된 CPU를 다른 프로그램이 강제로 뺴앗아 사용할 수 없는 방법을 말합니다.

 

비선점스케줄링의 알고리즘에는 FCFS(FIFO),SJF,HRN가 있는데 여러가지 시간을 구하는 문제가 나옵니다

 

1) FCFS(First COme First Service) = FIFO(First In First Out)

차례대로 CPU를 할당하는 방법입니다. 순서대로 처리되지만, 중요도와 상관없이 순서대로 처리되므로

약간 문제가 있는 스케줄링입니다.

 

문제: FCFS(FIFO) 스케줄링으로 3개의 평균실행시간,평균대기시간,평균반환시간을 구하세요

(대기시간:프로세스가 대기한시간, 반환시간:대기시간+실행시간)

작업 도착시간 CPU사용시간
P1 0 10
P2 2 7
P3 6 10

P1,P2,P3 순서로 작업을 처리하면 됩니다. 그림으로 풀면 쉽습니다.

일단 P1이 도착시간이 0입니다. 그러므로 도착과 동시에 프로그램이 실행됩니다. CPU사용시간이 10이므로 10이되면 완료입니다.

근데, P1이 실행되는동안 P2가 2에 도착하네요? 근데 P1이 이미 실행중이라 P2는 대기합니다.(대기시간) 그리고 P1이 끝나는 동시에

P2가 실행됩니다. P3는 위에방식과 같습니다.

 

여기서 이제 평균실행시간,평균대기시간,평균반환시간을 구해보겠습니다.

평균실행시간 = (10+7+10)/3 = 9

평균대기시간 = (0+8+11)/3 = 6.3

평균반환시간 = (10+0 + 7+8 + 10+11)/3=15.3

이 문제에서는 도착시간이 있는데, 도착시간이 없을 경우 도착시간이 0으로 보고 풀면됩니다.

 

2)SJF(Shortest Job First) 단기 작업 우선

실행시간이 가장 짧은 프로세스에게 CPU를 할당하는 스케줄링입니다.

문제푸는 방식은 실행시간이 가장 짧은순서를 따진다음에 1)처럼풀면 됩니다.

 

3) HRN(Hightest Response-ratio Next)

실행시간이 긴 프로세스는 SJF를 사용하면 불리합니다,그래서 SJF를 보완하기위한 것입니다.

대기시간과 실행시간을 이용하는 기법입니다. 이건 우선순위를 계산하는 문제가 나옵니다.

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

 

문제 : HRN기법으로 우선순위를 계산하세요.

작업 대기시간 서비스시간
P1 0 10
P2 2 4
P3 4 9

P1우선순위 : (0+10)/10=1

P2우선순위 : (2+4)/4=1.5

P3우선순위 : (4+9)/9=1.4

우선순위는 P2 -> P3 -> P1

'기타지식들 > 운영체제' 카테고리의 다른 글

아스키코드,EUC-KR,유니코드,UTF-8알아보기  (0) 2023.06.04
운영체제-프로세스란?  (0) 2020.11.17
산술Shift연산  (0) 2017.02.16