운영체제 5장 과제5.1 Discuss how the following paris of scheduling criteria conflict in certain settings.a. CPU utilization and response timeb. Average turnaround time and maximum waiting timec. I/O device utilization and CPU utilizationAnswera. CPU 이용률과 응답시간 : CPU 이용률은 문맥교환으로 오버헤드가 최소화 되는 것과 연관되면서 늘어 난다. 오버헤드를 문맥교환하는 것은 때떄로 교환을 하는 방식으로 낮출수 있다. 하지만 이는 프로세스 들의 응답시간이 길어지게 되는 결과를 낳는다.b. 평균전환시간과 최대응답시간 : 평균전환시간은 길이가 제일 짧은 작업을 우선으로 실행하는 것으로 최소화 할 수 있다. 이런 스케쥴링 정책은 시간이 오래걸리는 작업에서 starvation을 일으키고 그에 따 라 대기시간이 길어진다.c. I/O 장치 이용률과 CPU 이용률 : CPU 이용률은 문맥교환에 수행하지 않고, 장기 CPU 바운드작업을 실행하여 최대화 될 수 있다. I/O 장치 사용률은 I/O 바운드 작업들을 준비하는 대로 바로 실행시키는 것으로 최대화 시킬 수 있으며, 이에따라 문맥교환의 오버헤드를 초래하게 된다.5.2 Consider the following set of processes, with the length of the CPU burst given inmilliseconds:프로세스버스트 시간우선순위P1103P211P323P414P552The processes are assumed to have arrived in the order P1, P2, P3, P4, P5, all at time ().a. Draw four Gantt charts that illustrate the execution of these processes using thefollowing schedulingound programs?AnswerI/O 바운드 프로그램을 I/O장치를 실행하기 전에 오직 작은 양의 연산을 수행하는 속성을 가지고 있다. 이 프로그램들은 할당 받은 CPU를 모두 사용하진 않는 특성을 가지고 있다. 한편 CPU 바운드 프로그램 은 어떤 I/O연산의 블로킹 수행없이 할당받은 모든 CPU를 사용한다. 결과적으로 컴퓨터의 자원을 I/O 바 운드 프로그램이 CPU 바운드 프로그램에 비하여 높은 우선순위를(권한) 가지고 먼저 실행하게 하는 것으 로 자원을 효율적으로 사용할 수 있다.5.4 Which of the following scheduling algorithms could result in starvation?a. First-come, first-servedb. Shortest job firstc. Round robind. PriorityAnswerSJF와 Priority ?based 스케쥴링 알고리즘이 기아현상을 초래할 수 있다.5.5 Consider a system running ten I/O-bound tasks and one CPU-bound task. Assumethat the I/O-bound tasks issue an I/O operation once for every millisecond of CPUcomputing and that each I/O operation takes 10 milliseconds to complete. Alsoassume that the context switching overhead is 0.1 millisecond and that all processesare long-running tasks.What is the CPU utilization for a round-robin scheduler when:a. The time quantum is 1 millisecondb. The time quantum is 10 millisecondsAnswera. 어떠한 프로세스가 스케쥴 되는지와 관계없이 스케줄러는 0들어올 수 있게 해 주는 작업이 무한대로 연기되면 안 된다는 조건이다. 또한 Bounded Waiting은 process가 entry section에서 기다리는 시간이 제한되도록 해주는 것이다. 알고리즘을 보면 처음에 flag[j] = true를 집어넣어 Pi가critical section에 들어갈준비가 되었음을 지정하고, 여기서 flag[j] = false인 경우 critical section에 아무런 process도 없다는 것이기 때문에 Pi는 critical section에 들어가지만, flag[j] = true인 경우에는 while문 안으로 들어가게 되고여기서 turn = j라면 flag[i] = false가 되고 turn = j인 동안 Pi는 do nothing 상태로 대기하게 된다. 만약 turn = j가 아니라면 Pi는 flag[i] = true가 되면서 critical section으로 들어가게 되는데, 이 조건에서알고리즘이 Mutual Exclusion을 만족함을 알 수 있다. 다음으로 critical section을 거치게 되면 turn = j가되고 flag[i]는 false로 바뀌게 되는데 한 process가 critical section에서 빠져나오면 다른 process가 들어올 수 있도록 만들어 주므로 이 조건은 Progress 조건을 만족하게 된다. 또한 Pi가 critical section에서빠져나온 후, turn = j로 만들어주는 조건은 한process가 수행된 이후 다른process를 수행되도록 보장해주기 때문에 Bounded Waiting 조건을 만족하게 된다.6.2 Explain why spinlocks are not appropriate for single-processor systems yet are oftenused in multiprocessor systems.Answer스핀락은 싱글 프로세서 시스템에서 CPU자원을 소비하는 문제를 발생시킨다. 하나의 CPU는 스핀락이 기다리는 상황이건 말건 해결을 필요로 하게 될 것호 배제) : 상호 배제 조건은 어느 한 순간에 오직하나의 프로세스가 자원을 사용할 수 있다는 것으로 공유가 불가능한 자원에 대해서 반드시 성립하는 것이다. 그림에서 보자면 한 순간에 한 방향의 차들만이 움직일 수 있고 나머지 차들은 정차해 있어야 한다. 따라서 상호배제 조건을만족한다.? Hold and Wait(점유하며 대기) : 점유대기 조건은 하나의 프로세스가 적어도 하나이상의 자원을 가지고 있으면서 다른 프로세스에 의해 점유된 자원을 추가로 얻기 위해 대기 하고 있는 것이다. 그림에서보는바와 같이 자동차가 주행하기 위해서는 교차로(두개의 도로라고 할 수 있다)를 확보해야 하는데한 방향의 자동차들은 하나의 도로를 점유하고 있다. 따라서 움직이지 못하고 교착상태에 있다. 따라서점유하며 대기 조건을 만족한다.? No Preemption(비선점) : 비선점 조건은 자원이 강제적으로 방출될 수 없고, 점유하고 있는 프로세스가 태스크를 종료한 후 그 프로세스에 의해 자발적으로 방출될 수 있다는 것이다. 그림에서 보자면 교차로를 점유하고 있는 각 도로의 차들이 모두 빠져 나가기 전에는 다른 도로의 차들이 교차로를 지나갈 수 없다. 따라서 비선점 조건을 만족한다.? Circular Wait(순환 대기) : 순환대기 조건은 대기하고 있는 프로세스의 집합 {P0, P1, ..., Pn}에서 P0은P1이 점유한 자원을 대기하고 P1은 P2가 점유한 자원을 대기하고, P2, ..., Pn-1은 Pn이 점유한 자원을대기하면 Pn은 P0가 점유한 자원을 대기하는 것으로 순환하면서 서로 물고 물리는 관계라고 할 수 있다. 그림에서 보자면 각 도로의 차들은 서로 하나의 도로를 차지하고 진행 방향 앞을 가록 막는 차들이 지나가기를 기다리고 있다. 순환적으로 물고 물리는 관계이다. 따라서 순환대기 조건을 만족한다.Resource Allocation Graph With A Deadlock은 위의 네 가지 조건을 만족하여 deadlock상태가 된 모습이다.b. State a simple 5 03 14 12 12/?P21 3 5 41 0 0 22 8 8 6/?P30 6 3 20 0 2 02 14 11 8/?P40 0 1 40 6 4 22 14 12 12/?safe sequence는 이다. safe sequence는 할당만 가능하다면 순서에 상관없이 정해질수 있다.c. If a request from process P1 arrives for (0, 4, 2, 0), can the request be grantedimmediately?AnswerAllocationMaxNeedAvailableA B C DA B C DA B C DA B C DP00 0 1 20 0 1 20 0 0 01 1 0 0 1 1 1 2 /?P11 4 2 01 7 5 00 3 3 03 14 12 12/?P21 3 5 42 3 5 61 0 0 22 4 6 6/?P30 6 3 20 6 5 20 0 2 02 10 9 8/?P40 0 1 40 6 5 60 6 4 22 10 10 12/?P1이 요청한 만큼 더 할당한 후에 safety 알고리즘을 이용하여서 시스템의 상태를 확인해보아도 여전히safe하다. 다시 말해, P1이(0, 4, 2, 0)을 요청하면 그 요청을 즉시 들어줄 수는 없으나 프로세스가 실행되고 자원을 반납하는 과정을 통해 나중에 요청을 들어준다.운영체제 8장 과제8.4 Compare the main memory organization schemes of contiguous-memory allocation,pure segmentation, and pure paging with respect to the following issues:a. external fragmentationb. internal fragmentationc. ability to share code across processesAnswerContiguous memory allocation scheme suffers from external fragmentation as address spaces are all있다.