1. mainframe computer 의 운영체제와 personal computer 의 운영체제와의 주요 차이점은 무엇인가? 2. 다음 용어들을 간단히 설명하시오. 1) DMA [[BR]] 2) Caching 에서의 hit ratio 란?[[BR]] 3) Shell[[BR]] 4) Process[[BR]] 3. 일반적으로 다중 프로그래밍 시스템에서 메모리 보호를 위해 어떤 H/W 장치가 필요하며, 어떠한 식으로 메모리 보호를 행하는가? 4. system call 이란 무엇이며, 왜 필요한가? 5. 프로세스들끼리의 통신 방법으로 Message Passing 방법과 Shared Memory 방법이 있다. 각각의 방식을 간단히 설명하고, 서로의 장단점을 기술하시오. 6. short-term, medium-term, long-term Scheduling의 차이점 및 특성에 대해 간략히 설명하시오. 7. 유한 용량 Message Passing 을 위한 send() 메소드와 receive() 메소들을 완성하시오. send() 메소드는 queue의 공간이 있을때까지 block 하며, 반대로 receive() 메소드는 avariable message가 있을때까지 block해야 한다. {{{~cpp import java.util.*; public class MessageQueueBounded extends MessageQueue { public MessageQueueBounded() { items = new Object[SIZE]; position = 0; isRoom = true; } /* * This implements a blocking send */ public void send(Object o) { // wait until there is room while (_________________) { System.out.println ("Producer Blocked"); try { Thread.sleep(500); } catch (InterruptedException e) { } } System.out.println("Producer UnBlocked"); _______________ = 0; if (____________________) { isRoom = false; System.out.println("Full"); } } /* * This implements a blocking receive */ public Object receive() { // wait until something is there while (_________________) { System.out.println("Consumer Blocked"); try { Thread.sleep(500); } catch (InterruptedException e) { } } System.out.println("Consumer UnBlocked"); Object it = _________________; isRoom = true; return it; } private Object[] items; private static final int SIZE = 3; private volatile int position; private volatile boolean isRoom; }}} 8. SJF 스케줄링에서 Next CPU burst를 구하기 위해서 우리는 다음과 같은 예상식을 이용했다. Jn+1 = aTn + (1 - a)Jn 만약, 예상 초기치 (J0 는 10 이라고 가정하고, 실제 CPU burst(ti) 가 6, 4, 6, 4, 13, 13, 13 .... 이라고 가정할 때 다음 물음에 답하라. 1) a를 0.7로 했을 때의 예측치를 추적하라. 2) a를 0.5를 초기치로 설정하고, 이후 a는 상황에 따라 가변적으로 설정된다면, 즉, 만약 ti 와 Ji와의 차이가 3.0 이상이면 a = 0.7 로 설정하고,[[BR]] 만약 ti 와 Ji와의 차이가 3.0 미만, 1.0 이상이면 a = 0.5로 설정하고,[[BR]] 만약 ti 와 Ji와의 차이가 1.0 미만이면 a = 0.3 으로 설정한다면,[[BR]] 2-1) 예측치를 추적하시오.[[BR]] 2-2) 이는 어떤 효과를 유발하기 위한 것인가?[[BR]] 2-3) a = 0.5 로 고정시켜 놓았을 때와 비교하여 차이점을 설명하시오. 9. 동적으로 우선순위가 변화되는 preemptive priorty-scheduling algorithm 을 생각해 보자. 큰 값을 가진 우선순위 번호가 더 높은 우선순위를 가진다고 가정하자. 만약 프로세스가 초기값으로 우선순위값 0를 갖고, CPU를 기다릴 때(ready 상태)에는 우선순위 값 a를 갖고, running 상태에는 우선순위값 b 를 갖는다면,[[BR]] 1) 파라메타 값이 b > a > 0 의 값을 갖는다면 이는 무슨 스케줄링 알고리즘을 의미하는가?[[BR]] 2) 파라메타 값이 a < b < 0 의 값을 갖는다면 이는 무슨 스케줄링 알고리즘을 의미하는가? (만약 정확한 알고리즘 이름을 기술하기가 어렵다면 알고리즘의 특성을 설명하시오)