나는 말을 잘 듣는 혼공족인건가...?ㅋㅋ
족장님이 그만 하라고 하셔서 그만했다..(>변명)
역시 족장님은.... 선견지명이 크으으으....👍
컴퓨터 구조는 어찌저찌 했는데, 급 운영체제가 나온다니 갑자기 쓰러졌다(>사실 안쓰러짐🙄)
나는 여기까지인가...? 싶었지만, 페이스북에 달린 족장님의 글을 이제야 보게 되었다. 계속해서 지금이 2차 1주차라고 생각하라고 마인드 셋 시켜주시고 응원해주시는 족장님과 계속해서 공부하고 있는 스터디원 사람들을 보면 정말... 사람이 맞는건가? 인공지능이, 자동화시켜놓고 사람이라고 나를 속이고 있는 것인가 할 정도로 다들 열심히 하고 있었다. (>족장님이 사람이시라면 당근🥕을 흔들어주세요!🐰) 여기서 "나도 질 수 없지! 정리는 못하더라도 읽고 미션수행만이라도 하자! 다시 복습할 때, 다시 혼공단을 모집하기 전까지만 정리하자! 다음에는 꼭 다른책으로 하자!" 다짐하고 미션을 수행하고자 한다.
(>길게 뭐라 말했지만 대충 정리 어렵고 귀찮고 그냥 쉽게 공부하고 싶다는 소리ㅋㅋ)
프로세스는 요청에 따라 상태가 계속 전환된다.
준비 큐에 A,B,C,D 순으로 삽입되었다고 가정했을 때, 선입 선처리 스케줄링 알고리즘을 적용하면 어떤 프로세스 순서대로 CPU를 할당받는지 풀어보기
non-preemptive (비선점형) : Process가 자원을 반납하기 전까지 다른 프로세스가 자원을 사용할 수 없음. 수행시간이 긴 프로세스가 자원을 점유하게 되면 이후 실행되어야 하는 프로세스들이 자원을 할당받지 못하는 기아 현상이 발생.
preemptive (선점형) : Process가 한번 실행될 때 제한된 시간만을 할당해서 사용. 프로세스의 우선순위에 따라 스케쥴링을 하게 되므로 우선순위가 낮은 프로세스는 기아 상태에 빠짐.
→ single core 기준으로 한 프로세스를 진행할 때, 자원을 중간에 뺏어서 세치기 가능하냐 (자원관점)
non-preemptive (비선점형) | preemptive (선점형) |
---|---|
정해진 시간 없이 process 종료 전까지 점유 | 일정 시간을 process에 할당해 해당 시간만 자원을 사용하고 반납 |
중간에 interrupt가 일어나지 않음 | interrupt를 통해 실행 중인 process를 교체 |
종료 후 context switch 외에 추가적인 오버헤드 없음 | context switch 가 일정 시간마다 일어나기 때문에 오버헤드 있음 |
프로세스 우선순위 고려 없음 | 프로세스에 대한 우선순위를 고려 |
FCFS, SJF, Priority Scheduling | Round-Robin, Multilevel Queue Scheduling |
example.
**- P1 : 4, P2 : 2, P3 : 3 (resource) ( 예 )P1이 끝나는데 4 time이 필요하다)
execution 순서
1) FCFS : [P3, P1, P2] → 돌아가는 과정 : P3,P3,P3,P1,P1,P1,P1,P2,P2 → 끝나는 순서 : P3, P1, P2
2) SJF : [P2, P3, P1] → 돌아가는 과정 : P2,P2,P3,P3,P3,P1,P1,P1,P1 → 끝나는 순서 P3, P1, P2
3) RR : [P3, P1, P2] → 돌아가는 과정 : P3,P3,P1,P1,P2,P2,P3,P1,P1 → 끝나는 순서 P2, P3, P1
(average) waiting time (context-switching에 의한 overhead는 계산하지 않음)
(→ 평균은 프로세스 개수로 나누기)
1) FCFS : P3(0) + P1(3) + P2(3+4) = 10, (10/3)
2) SJF : P2(0) + P3(2) + P1(2+3) = 7, (7/3)
3) RR : P3(0) + P1(2) + P2(2+2) + P3(2+2) + P1(2+1) = 13, (13/3)
P3(0) + P1(2) + P2(2+2) + P3(2+2+2) + P1(2+2+2+1) = 19 * 기다린 기준으로 생각한다!!
3-1) IF TIME-QUANTUM = 3, WAITING TIME = ?
RR : [P3, P1, P2] → 돌아가는 과정 : P3,P3,P3,P1,P1,P1,P2,P2,P1
→ WAITING TIME = P3(0) + P1(3) + P2(3+3) + P1(2) = 11
→ 타임퀀텀 사이즈에 따라 대기시간이 달라지는데 조절 잘 해야 한다. 컨텍스트 스위치가 많이 일어나면 대기시간이 길어질 수 있지만, 대기시간이 달라질 수 있어서 스위치가 많이 일어난다고 해서 비례적으로 대기시간이 길어지지는 않는다.