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
,