This thesis describes the implementation of process scheduling mechanism, synchronization, reentrancy, and mutual exclusion problems posed by running the Multiprocessor version of UNIX operating system, MUNIX, which runs on symmetrical pool processor architecture.
Additionally, this thesis shows the efficient use of symmetrical multiprocessing power and the dynamic load sharing among processors equally as a result of autonomous scheduling and appropriate preemption algorithm. The measurements on our multiprocessor UNIX system exhibit the high performance of processor pool configuration.
대칭형 다중processor 시스템은 병렬화를 실현함으로써 고속처리를 이룰수있으며 시스템내의 자원을 가장 효과적으로 이용함으로써 높은 throughput 과 고효용성을 얻을수있다. 또한 고신뢰성을 가지는 좋은 특성이 있다. 이와같은 특성을 구현하기위하여 단일processor들 위한 UNIX를 다중processor 시스템에 적합한 운용체제로 수정하는데 있어서 발생하는 문제점과 그해결책을 연구하였다. 다중processor UNIX에서 가장 중요하며 어려운 문제는 병렬처리로 인한 Synchronization과 Mutual exclusion 그리고 Deadlock 문제인데 Dijkstra의 Semaphore를 이용하여 해결하였다. 측정된 Semaphore overhead가 최고 42% 까지 나타났다.
또한 본논문에서 연구된 다중processor UNIX에서는 각 processor 마다 자치적인 Scheduler를 가지며 다중Processor에 적합한 Preemption Algorithm을 개발함으로써 특히 대칭형 다중processor 시스템에 적합한 Process Scheduling 을 이룰수 있었다. 즉, 대칭형 다중processing power를 가장 효과적으로 이용하고 process들 사이에 Load를 균등하게 분배하도록 개발 되었다.
측정된 Throughput 결과를 보면 CPU bound job과 I/O bound job을 혼합한 상태에서 Dual processor 시스템의 경우 CPU bound job은 170%, I/O bound job은 67%의 throughput을 나타내었으며 전체적인 throughput은 130%가 나왔다.