티스토리 뷰
1. Scheduling
• 어떻게 하면 일을 빠르게 처리 할수 있는가?
• 어떻게 하면 공평하게 일을 처리 할수 있는가?
• Short Term Scheduler에서 담당한다.
2. Preemptive Scheduler
1. 실행 상태 -> 대기 상태
2. 실행 상태 -> 준비 완료 상태
3. 대기 상태 -> 준비 완료 상태
4. 프로세스 종료할 때
위 상태에서 스케줄링이 발생을 하는데 1번과 4번의 경우 스케줄링의 측면에서 선택의 여지가 없다. 그러나 2번과 3번은 스케줄링을 할 여지가 있다. 그렇기 때문에 1번과 4번은 비선점형으로 진행하고 2번과 3번은 상황에 따라서 조정하면된다.
3. Dispatcher
• 디스패처는 CPU의 제어를 단기 스케줄러가 선택한 프로세스에게 주는 모듈
• 문액을 교환하는 일
• 사용자 모드로 전환하는 일
• 프로그램을 다시 시작하기 위해 적절한 위치로 jump하는 일
• 디스패처는 모든 프로세스의 문맥 교환 시 호출되므로, 가능한 한 빨라야 한다.
• 디스패처가 하나의 프로세스를 중단시키고 다른 프로세스를 실행시키는 데 소요되는 시간을 디스패치 지연(dispatch latency)이라고 한다.
4. 스케줄링 기준
• CPU 이용율
• 처리량 : 시간당 처리량으로 처리된 프로세스의 수이다.
• 총 처리 시간 : 프로세스당 평균 처리 시간이다.
• 대기 시간 : 평균 대기시간이 적게 스케줄링 하는 것이다.
• 응답 시간 : 하나의 요구를 제출 한 후 첫 번째 응답이 나올 때 까지의 시간이다.
5. FCFS Scheduling
• 먼저들어온 것이 먼저 나간다.
• 제일 처리 시간이 긴 프로세스가 먼저 들어와 짧은 애들이 기다리는 것을 Convoy Effect(호위효과)라고 한다.
• Waiting time for P1 = 0; P2 = 24; P3 = 27
• Average waiting time: (0 + 24 + 27)/3 = 17
6. SJF Scheduling
• 버스트 시간이 가장 짧은 순서대로 처리한다.
• Waiting time for P1 = 3; P2 = 16; P3 = 9; P4 = 0
• Average waiting time: (3 + 16 + 9 + 0)/4 = 7
• SJF 스케줄링 알고리즘은 최소의 평균 대기 시간을 가진다. 그러나 이러한 스케줄링을 하기위한 CPU의 총 시간을 구하기 힘들다.
• 단기 CPU 스케줄링에서 구현하기 힘들고 장기 스케줄링에서 사용한다.
•Tn은 n번째 실제 버스트 시간이다.
7. Priority Scheduling
• 우선순위로 스케줄링을 한다. 우선순위에 대한 정보를 가지고 있어야 한다.
• 가장 큰 문제점은 무기한 봉쇄 또는 기아 상태이다. 해결방법으로 시간이 지날때 마다 우선순위를 증가시켜준다.
• 우선순위로 스케줄링을 한다. 우선순위에 대한 정보를 가지고 있어야 한다.
• Waiting time for P1 = 6; P2 = 0; P3 = 18; P4 = 0; P5=1
• Average waiting time = (6 + 0 + 16 +18 + 1)/5 = 8.2
8. RR(라운드 로빈) Scheduling
• 시분할 시스템을 위하여 설계되었다.
• 먼저들어온 것이 먼저 나가지만 CPU를 점유 할 수 있는 시간이 제한되어있다.
• Time Quantum이 작으면 오버헤드가 크고 너무 크면 FCFS와 똑같다.
• CPU를 얻기 까지의 최대 대기 시간은 (n-1)•Quantum이다.
9. Multilevel Feedback Queue
• 각 큐마다 스케줄링 알고리즘을 가진다.
• 우선순이가 높은 큐의 프로세스를 먼저 처리한다. -> 기아현상을 일으킬 수 있다.
• Multilevel Queue로 프로세스가 큐간 이동이 가능하도록 하게 한다.
'SoftWare > OS' 카테고리의 다른 글
OS - 6. Process Synchronization (1) (0) | 2016.04.25 |
---|---|
OS - 5. CPU Scheduling (2) (0) | 2016.04.23 |
OS - 4. Thread (0) | 2016.04.10 |
OS - 3. Process(2) (0) | 2016.04.10 |
OS - 3. Process(1) (0) | 2016.04.08 |
- Total
- Today
- Yesterday
- Java Decompiler
- vim 설치
- 파일입출력
- Res
- java
- 인텐트
- java 파일 입출력
- LISTVIEW
- 테라펀딩 #투게더펀딩 #P2P투자 #부동산 소액 투자 #카카오 #토스
- Service
- Notification
- 유전
- 유전 알고리즘
- counter
- 파일 입출력
- jad
- 안드로이드
- 포켓몬 고
- php
- 5582
- 서버
- 알고리즘
- 포켓몬 Go
- 아두이노
- java url
- vim
- 카운터
- android
- 자바 입출력
- c언어
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |