1. Functional Occlusion in Restorative Dentistry and Prosthodontics

교합, 교합기 등에 대해 자세히 배울 수 있음


2. 원리로 살펴본 교합기의 모든 것 A to Z

기초적인 내용 모두 자세히 그림과 함께 설명해줌

Posted by sjo200
,

5.1 생략

5.2 각 쌍의 스케줄링 기준의 충돌을 보여라.

a. CPU utilization, response time

b. average turnaround time, maximum waiting time

c. IO device utilization, CPU utilization


a. CPU utilization을 향상시키려면 context switching의 overhead를 줄여야한다. context switch를 적게 하면 overhead를 줄일 수 있지만, response time이 길어진다.

b. turnaround time을 줄이려면 shortest task first로 실행해야 한다. 하지만 이 방법은 starvation을 발생시키고, 긴 시간이 걸리는 task의 waiting time이 증가하게 된다.

c. CPU utilization은 긴 수행시간이 걸리는 CPU-bound tasks를 context switch 없이 실행하면 최대화된다. IO device utilization은 IO-bound job을 실행가능할때 바로 해야 최대화 할 수 있는데, 이는 context switch의 overhead를 발생시킨다.



5.3 다음 CPU burst를 예측하기 위해 exponential average formula를 사용한다. 다음 value를 사용하면 어떻게 예측하겠는가?

a. α = 0,  τ = 100ms

b. α = 0.99, τ = 10ms 


a. 항상 100ms로 예측한다.

b. 거의 이전 burst time으로 예측한다.

공식: S_(n+1) = a(T_n)+(1-a)*S_n



5.4 생략

5.5 SJF는 starvation을 유발한다, priority based 스케줄링 알고리즘도 starvation을 유발한다.

5.6 생략

5.7 시스템이 10개의 IO-bound tasks와 1개의 CPU-bound task를 실행한다고 하자. IO bound tasks는 실행되는데 1ms가 걸리고, CPU-bound task는 10ms가 걸린다고 하자. 다음 Round Robin 스케줄러가 갖게 될 CPU-utilization 정도를 구하라.(context switch overhead는 0.1ms이다.)

a. time quantum = 1ms

b. time quantum = 10ms


a -> 둘 다 1ms만 실행되고 context switch가 발생한다. 따라서 1/1.1 = 91%

b -> 한 번 실행되면 모두 완료하고 끝난다. 따라서 20/21.1 = 94%

'학부 OS 공룡책 연습문제 Ch.4~6' 카테고리의 다른 글

Ch.6 Process Synchronization  (0) 2019.01.26
Ch.4 Thread  (0) 2019.01.22
Posted by sjo200
,

4.1 Multithreading이 single-threaded solution 보다 좋지 않은 경우는?


ㄱ. individual tax return calculation

ㄴ. shell program(C-shell, Korn shell)



4.2 context switch를 user-level threads에서 할때, thread library가 하는 것은?


user thread가 kernel thread에 어떻게 매핑되었는지가 중요하다. 하지만 일반적으로는 user thread간 context switch는 LWP를 교환하는 것이고, 이는 레지스터를 저장/복구하는 작업을 포함한다.


+ 추가내용

user level thread 특징: process 안에서 동작하고, process의 timeslice 내에서 실행된다. OS와 관계없음. context switch가 빠르기 때문에, context switch가 많은, 그리고 상호의존적 연산을 하는 CPU-bound tasks에 효과적이다. 생성하는데 system call이 필요없음.


kernel level thread 특징: OS의 스케줄링 알고리즘에 따라 스케줄됨. Idle 상태가 되는 것을 kernel 스케줄러가 피하게 함. 즉, I/O bound threads로만 구성된 프로세스를 피한다. 하지만 kernel 스케줄러가 쓰레드들 사이에서 적절한 판단을 하기 때문에, 많은 threads로 구성되고 I/O bound threads가 많은 프로세스가 kernel level thread를 사용하면 효과적이다.



4.3 어떤 상황에서 multiple kernel threads를 사용하는 multithreaded solution이 single-threaded solution보다 좋은 성능을 내는가?


ㄱ. page fault가 발생해서 기다리는 횟수가 많을 때

ㄴ. 특정 system event를 기다리는 경우가 많을 때



4.4 쓰레드간 어떤 program state의 구성요소가 공유되고, 공유되지 않는가?


(보기: register value, heap memory, global memory, stack memory)

공유되는 것: heap memory, global memory



4.5 multiple user-level threads를 사용하는 multithreaded solution이 multiprocessor system에서, single processor system보다 성능이 더 좋은가?


user-level threads는 동시에 실행될 수 없으므로 성능은 똑같을 것이다.



4.6 Linux는 processor와 thread를 구분하지 않고, 윈도우 XP는 구분한다. kernel 내에서 그에 대한 둘의 모델링의 접근을 비교하라.


process와 thread 각각의 특징으로 서술함.

processes: 서로 독립적이다. 많은 정보를 갖고있다. IPC만을 통해 통신할 수 있다.

threads: 한 process안일 경우 서로 접근 가능하다. 프로세스 내부 메모리를 공유하고 각자 레지스터값, 스택이 따로 있다. context switch가 빠르다.



4.7 생략

4.8 multiprocessor 시스템에서 many-to-many threading model을 사용하여 multithreaded program을 실행한다고 하자. user-level threads가 processor 수보다 많을 경우, 다음 시나리오의 성능을 말하라.

a. program이 할당된 kernel thread의 수가 processor의 수보다 적을때

b. 같을때

c. 클때 (kernel thread의 수 < user-level thread의 수라고 가정함)


a => 남는 processor는 idle 상태가 된다.

b => 모든 processor는 활용된다. block되면 그 processor는 idle 상태가 된다.

c => b 답에서 block된 thread 대신 ready 상태의 thread를 그 processor가 실행시킨다. multiprocessor system의 활용성(utilization) 증가


'학부 OS 공룡책 연습문제 Ch.4~6' 카테고리의 다른 글

Ch.6 Process Synchronization  (0) 2019.01.26
Ch.5 CPU Scheduling  (0) 2019.01.22
Posted by sjo200
,