U E D R , A S I H C RSS

Operating System Class/Exam2002_1

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 의 값을 갖는다면 이는 무슨 스케줄링 알고리즘을 의미하는가? (만약 정확한 알고리즘 이름을 기술하기가 어렵다면 알고리즘의 특성을 설명하시오)

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:56
Processing time 0.0158 sec