1. mainframe computer 의 운영체제와 personal computer 의 운영체제와의 주요 차이점은 무엇인가?
2. 다음 용어들을 간단히 설명하시오.
1) DMA
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는 상황에 따라 가변적으로 설정된다면, 즉,
만약 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 를 갖는다면,
1) 파라메타 값이 b > a > 0 의 값을 갖는다면 이는 무슨 스케줄링 알고리즘을 의미하는가?
2) 파라메타 값이 a < b < 0 의 값을 갖는다면 이는 무슨 스케줄링 알고리즘을 의미하는가? (만약 정확한 알고리즘 이름을 기술하기가 어렵다면 알고리즘의 특성을 설명하시오)