프로세스 관리
Mutitasking에 대한 고찰

문맥교환(Context Switching)

프로세스를 바꿔주는 일을 하는 것이 스케줄러이고,
스케줄러가 프로세스를 바꿔주는 것을 문맥교환(Context Switchong)이라 합니다.
프로세스 스케줄링
CPU 자원을 효과적으로 생산성 있게 사용하기 위하여

프로세스 상태 전이
PCB(Process Control Block)에 저장


프로세스 상테 전이(선점, time out)

프로세스 상태 전이 (대기)

프로젝트 상태 전이

프로세스 스케줄링 유형
| 선점형 스케줄링 | 비선전형 스케줄링 | |
| 개념 | 하나의 프로세스가 CPU을 차지하고 있을 때, 우선 순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고 CPU를 점유하는 방식 |
한 프로세스가 CPU를 할당받으면 작업 종료 후 CPU 반환 시까지 다른 프로세스는 CPU 점유가 불가능한 방식 |
| 장점 | 비교적 빠른 응답 대화식 시분할 시스템에 적합 |
응답시간 예상이 용이 모든 프로세스에 대한 요구를 공정하게 처리 |
| 단점 | 높은 우선순위 프로세스들이 들어오는 경우, 오버헤드 발생 |
짧은 작업을 수행하는 프로세스가 긴 작업 종료 시까지 대기 |
| 활용 | 실시간 응답 환경, Deadline 응답환경 | 처리시간 편차가 적은 특정 프로세스 환경 |
선점형 스케줄링
| 선점형 알고리즘 유형 | 동작 방식 |
| 라운드 로빈 | 균등한 CPU 점유 시간, 할당 시간 내 처리 완료 못하면 준비 큐 리스트의 가장 뒤로 보내지고, CPU는 대기 중인 다음 프로세스로 넘어감 |
| SRT | 가장 짧은 시간이 소요되는 프로세스 우선 수행, 처리 시간이 더 짧은 프로세스가 나타나면 언제라도 선점 됨 |
| 다단계 큐 | 작업들을 여러 종류 그룹으로 분할, 여러 개의 큐를 이용해 상위 단계 작업에 의한 하위 단계 작업이 선점 당함 |
| 다단계 피드백 | 프로세스의 특성에 따라 큐마다 서로 다른 CPI 시간 할당량 부여 |
비선점형 스케줄링
| 비선점형 알고리즘 유형 | 동작 방식 |
| 우선순위 | 프로세스별 우선순위가 주어지고, 그에 따라 CPU 할당 |
| 기한부 | 작업들이 명시된 시간이나 기한 내에 완료되도록 계획 |
| FCFS(FIFO) | 프로세스가 대기 큐에 도착한 순서에 따라 CPU 할당 |
| SJF | 프로세스가 도착하는 시점에 따라 작은 서비스 시간을 갖는 프로세스가 종료까지 자원 점유 |
| HRN | 대기 중인 프로세스 중 현재 응답률이 가장 높은 것을 선택 |
FCFS(Frist Come Served 스케줄링(비선점))

평균 대기 시간 : (0 + 4 + 6 + 13) / 4 = 5.75
SJF(Shortest Job First(비선점))

평균 대기 시간 : (0 + 4 + 12 + 50) / 4 = 21 / 4 = 5.25
기아 현상 발생


평균 대기시간 = (8 + 1 + 0 + 4) / 4 = 3.25
평균 반환시간 = (14 + 4 + 1 + 8) / 4 = 6.75

평균 대기시간 = (0 + 6 + 4 + 7) / 4 = 4.25
평균 반환시간 = (6 + 9 + 5 + 11) / 4 = 7.75
HRN(Highest Response Ratio Next)
대기 중인 프로세스 중 우선 순위가 가장 높은 것을 선택
SJF의 문제인 기아 현상 보완한 기법

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

평균 대기시간 = (0 + 5 + 6 + 3) / 4 = 3,5
평균 반환시간 = (6 + 8 + 8 + 4) / 4 = 6.5
Round Robin Scheduling 스케줄링(선점) 시간 할당량 : 3

