1. mainframe computer 의 운영체제와 personal computer 의 운영체제와의 주요 차이점은 무엇인가?
2. 다음 용어들을 간단히 설명하시오.
1) DMA
2) Caching 에서의 hit ratio 란?
3) Shell
4) Process
2) Caching 에서의 hit ratio 란?
3) Shell
4) Process
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는 상황에 따라 가변적으로 설정된다면, 즉,
2) a를 0.5를 초기치로 설정하고, 이후 a는 상황에 따라 가변적으로 설정된다면, 즉,
만약 ti 와 Ji와의 차이가 3.0 이상이면 a = 0.7 로 설정하고,
만약 ti 와 Ji와의 차이가 3.0 미만, 1.0 이상이면 a = 0.5로 설정하고,
만약 ti 와 Ji와의 차이가 1.0 미만이면 a = 0.3 으로 설정한다면,
2-1) 예측치를 추적하시오.
2-2) 이는 어떤 효과를 유발하기 위한 것인가?
2-3) a = 0.5 로 고정시켜 놓았을 때와 비교하여 차이점을 설명하시오.
9. 동적으로 우선순위가 변화되는 preemptive priorty-scheduling algorithm 을 생각해 보자. 큰 값을 가진 우선순위 번호가 더 높은 우선순위를 가진다고 가정하자. 만약 프로세스가 초기값으로 우선순위값 0를 갖고, CPU를 기다릴 때(ready 상태)에는 우선순위 값 a를 갖고, running 상태에는 우선순위값 b 를 갖는다면,만약 ti 와 Ji와의 차이가 3.0 미만, 1.0 이상이면 a = 0.5로 설정하고,
만약 ti 와 Ji와의 차이가 1.0 미만이면 a = 0.3 으로 설정한다면,
2-1) 예측치를 추적하시오.
2-2) 이는 어떤 효과를 유발하기 위한 것인가?
2-3) a = 0.5 로 고정시켜 놓았을 때와 비교하여 차이점을 설명하시오.
1) 파라메타 값이 b > a > 0 의 값을 갖는다면 이는 무슨 스케줄링 알고리즘을 의미하는가?
2) 파라메타 값이 a < b < 0 의 값을 갖는다면 이는 무슨 스케줄링 알고리즘을 의미하는가? (만약 정확한 알고리즘 이름을 기술하기가 어렵다면 알고리즘의 특성을 설명하시오)
2) 파라메타 값이 a < b < 0 의 값을 갖는다면 이는 무슨 스케줄링 알고리즘을 의미하는가? (만약 정확한 알고리즘 이름을 기술하기가 어렵다면 알고리즘의 특성을 설명하시오)