This thesis is concerned with multiprocessor system implementation, its hardware structure and operating system named MUNIX. MUNIX is the experimental multiprocessor operating system which is appropriate for the processor pool architecture and modified from UNIX. It has been tested on the dual processor system simulated on the single processor system.
Some of scheduling strategies are developed to balance the load dynamically, by which total system performance is increased and semaphore primitives are used to solve the critical section problem and synchronization between processes. The hardware structure which has two processors, dual ported memory and I/O processor module is suggested.
다중처리 운영체제를 구현하는데에 있어서 제기되는 문제들중에 몇가지 중요한 것들은 각 processor 에 process 들을 효율적으로 분배함으로써 전체 system 의 throughput 을 증가시키는 방법과 여러 processor 가 하나의 운영체제 위에서 동작함으로 인해 발생하는 critical section 문제를 해결하는 방법과 deadlock 을 방지하는 방법을 어떻게 만들것인가에 관한 것들이다.
본 논문에서는 UNIX 로부터 다중처리 운영체제를 구현하면서 위에서 제기된 문제들을 해결한 방법들이 제시되었다. 각 processor 마다 자치적인 scheduling 을 하면서 서로간의 교신을 통하여 process 들을 효율적으로 분배할 수있는 mechanism 이 개발되었으며 semaphore 개념을 도입해서 critical section 문제와 deadlock 방지 문제들이 해결되었다. 또한 UNIX 를 다중처리 운영체제로 바꿀때 고려되야 하는 몇가지 문제들에 대한 해결책이 제시되었으며, 두 개의 processor를 갖는 hardware 구성이 제시되었다.