개인 공부

운영체제 공부 ( 스레드, 스케쥴링 )

HA젠옹 2019. 7. 27. 18:20
반응형

스레드 ( Thread )

- 하나의 프로세스 내에서 시스템의 여러 자원을 할당받아 실행하는 프로그램의 단위

- 실행 환경을 공유시켜 기억장소 및 자원의 낭비가 줄어든다.

- 스레드는 프로세스의 일부 특성을 갖고 있기 때문에 경량 프로세스라고도 한다.

- 동일 프로세스 환경에서 서로 독립적인 다중 수행이 가능하다.

- 하나의 프로세스에 하나의 스레드가 존재하는 경우에 단일 스레드

  하나이상의 스레드가 존재하는 경우 다중 스레드라고 불린다.

- 프로세스의 생성이나 문맥 교환 등의 오버헤드가 줄어 운영체제의 성능이 개선

 

스케쥴링

- 정의 : 프로세스가 생성되어 실행될 때 피룡한 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업

- 목적 : 처리율 증가, CPU 이용률 증가, 응답 시간 최소화, 반환 시간 최소화, 대기 시간 최소화 등

 

스케쥴링의 종류

선점 (Preemptive) 스케쥴링 - 우선 순위가 높은 프로세스를 빠르게 처리
- 빠른 응답시간을 요구하는 대화식 시분할 시스템에 사용
- 선점으로 인한 많은 오버헤드가 초래
- 선점을 위해 시간 배당을 위한 인터럽트용 타이머 클럭이 필요
- SRT, RR, 다단계 큐, 다단계 피드백 큐, 선점 우선 순위 등
비선점 ( Non- Preemptive ) 스케쥴링 - 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법
- 공정하게 처리
- FIFO(FCFS), SJF, 우선순위, HRN, 기한부 등

선점 스케쥴링 - 라운드 로빈 ( Round Robin )

- 시분할 시스템 ( Time Sharomg System )을 위해 고안된 방식

- FCFS 알고리즘을 선점 형태로 변형한 기법

- 할당된 시간동아만 실행한 후 가장 뒤로 배치

- 할당되는 시간이 클 경우 FCFS(=FIFO) 기법과 같아지고,

  할당되는 시간이 작을 수록 문맥 교환 및 오버헤드가 자주 발생 

 

예를 들어 

라운드로빈 정책을 사용하여 스케줄링 할 경우 평균 반환시간을 계산한 결과로 옳은 것은? (,작업할당 시간은 4시간으로 한다.) 

작업  제출시간  실행시간 
Task1 
Task2  1
Task3
Task4

 

Task1 Task2  Task3  Task4  Task1  Task3  Task4  Task3 
4  8 12  16  20  24  25  26

0~4초 : Task1 ( 4초 남음 )

 ~8초 : Task2 ( Task2 끝 )

~12초 : Task3 ( 5초 남음 )

~16초 : Task4 ( 1초 남음 )

~20초 : Task1 ( Task1 끝 )

~24초 : Task3 ( 1초 남음 )

~25초 : Task4 ( Task4 끝 )

~26초 : Task3 ( Task3 끝 ) 

 

(제출시간이 없을 경우)

평균 반환 시간 :  ( 20 + 8 + 26 + 25 ) / 4 = 19.75

(제출시간이 있을 경우 종료시간에서 제출시간을 빼야함)

평균 반환 시간 : ( (20-0) + (8-1) + (26-2) + (25-3) ) / 4 = 18.25

 

비선점 스케쥴링 - FCFS (=FIFO)

- 먼저 도착한 것이 먼저 처리

프로세스 실행시간
P1 9
P2 3
P3 12

FCFS 알고리즘 최대 평균 반환시간?

(12+(12+9)+(12+9+3)) / 3 = 19

최소 평균 반환 시간?

(3+(3+9)+(3+9+12)) / 3 = 13

 

비선점 스케쥴링 - SJF

- 실행시간이 가장 짧은 프로세스에 먼저 CPU를 할당

 

작업 도착시간 실행시간
1 0 6
2 1 3
3 2 4

SJF 스케쥴링 작업2의 종료시간?

0초에 도착한 작업1이 먼저 하고 실행 시간이 제일 짧은 작업2하면 9초

 

프로세스 실행시간
P1 6
P2 8
P3 4
P4 3

SJF 스케쥴링 가장 먼저 처리되는 작업?

도착시간이 없으므로 실행시간이 제일 짧은 P4

 

비선점 스케쥴링 - HRN

- SJF을 보완하기 위한 기법으로 우선 순위를 정하는 스케쥴링 기법

- 우선순위 계산식은 ( 대기시간 + 서비스시간 ) / 서비스시간

- 계산한 것이 크면 우선순위가 높음

 

HRN방식으로 우선순위가 가장 높은 작업은? 작업 D

작업 대기시간 서비스시간
A 5 5
B 10 6
C 15 7
D 20 8

A = (5+5)/5 = 2

B = (10+6)/6 = 2.6 

C = (15+7)/7 = 3.1

D = (20+8)/8 = 3.5

 

비선점 스케쥴링 - 기한부

- 제한된 시간 내에 반드시 작업이 완료

반응형