스레드 ( Thread )
- 하나의 프로세스 내에서 시스템의 여러 자원을 할당받아 실행하는 프로그램의 단위
- 실행 환경을 공유시켜 기억장소 및 자원의 낭비가 줄어든다.
- 스레드는 프로세스의 일부 특성을 갖고 있기 때문에 경량 프로세스라고도 한다.
- 동일 프로세스 환경에서 서로 독립적인 다중 수행이 가능하다.
- 하나의 프로세스에 하나의 스레드가 존재하는 경우에 단일 스레드
하나이상의 스레드가 존재하는 경우 다중 스레드라고 불린다.
- 프로세스의 생성이나 문맥 교환 등의 오버헤드가 줄어 운영체제의 성능이 개선
스케쥴링
- 정의 : 프로세스가 생성되어 실행될 때 피룡한 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업
- 목적 : 처리율 증가, CPU 이용률 증가, 응답 시간 최소화, 반환 시간 최소화, 대기 시간 최소화 등
스케쥴링의 종류
선점 (Preemptive) 스케쥴링 | - 우선 순위가 높은 프로세스를 빠르게 처리 - 빠른 응답시간을 요구하는 대화식 시분할 시스템에 사용 - 선점으로 인한 많은 오버헤드가 초래 - 선점을 위해 시간 배당을 위한 인터럽트용 타이머 클럭이 필요 - SRT, RR, 다단계 큐, 다단계 피드백 큐, 선점 우선 순위 등 |
비선점 ( Non- Preemptive ) 스케쥴링 | - 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법 - 공정하게 처리 - FIFO(FCFS), SJF, 우선순위, HRN, 기한부 등 |
선점 스케쥴링 - 라운드 로빈 ( Round Robin )
- 시분할 시스템 ( Time Sharomg System )을 위해 고안된 방식
- FCFS 알고리즘을 선점 형태로 변형한 기법
- 할당된 시간동아만 실행한 후 가장 뒤로 배치
- 할당되는 시간이 클 경우 FCFS(=FIFO) 기법과 같아지고,
할당되는 시간이 작을 수록 문맥 교환 및 오버헤드가 자주 발생
예를 들어
라운드로빈 정책을 사용하여 스케줄링 할 경우 평균 반환시간을 계산한 결과로 옳은 것은? (단,작업할당 시간은 4시간으로 한다.)
작업 | 제출시간 | 실행시간 |
Task1 | 0 | 8 |
Task2 | 1 | 4 |
Task3 | 2 | 9 |
Task4 | 3 | 5 |
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
비선점 스케쥴링 - 기한부
- 제한된 시간 내에 반드시 작업이 완료
'개인 공부' 카테고리의 다른 글
운영체제 공부 ( 교착 상태 ) (0) | 2019.07.28 |
---|---|
운영체제 공부 ( 상호배제, 세마포어 등 ) (0) | 2019.07.27 |
운영체제 공부 ( 프로세스 ) (0) | 2019.07.27 |
운영체제 공부 ( 운영체제 정의 및 기능 , 로더 등 ) (0) | 2019.07.27 |
데이터베이스 공부 ( 병행 제어 ) (0) | 2019.07.26 |