UNIX For Multiprocessor System:-
The UNIX operating system for a multiprocessor system has a number of additional features as compared to the normal UNIX operating system. Let us first talk about the design goals of the multiprocessor UNIX. The original UNIX developed by Dennis Ritchie and Brian Kernighan was developed as general purpose, portable,time-sharing uniprocessor operating system.
The OS functions including virtual memory management, processor scheduling,I/O devices etc, are executed with a large amount of system software. Normally the size of the OS is larger than the size of the main memory. The portion of OS that resides in the main memory is known as kernel. For a multiprocessor, OS is developed on three models viz: floating executive model, Master slave model, multithreaded kernel. These UNIX kernels are executed with locks semaphores and monitors.
Let us discuss these models in short.
1) Master slave kernel: In this model, just one of the processors is designated as Master.
The master is responsible for the activities given below:
i) Running the kernel code
ii) Handling the system calls
iii) Handling the interrupts.
The rest of the processors in the method run only the user code and are known as slaves.
2) Floating-Executive model: The master-slave kernel model is too restrictive in the sense that only one of the processors viz the designated master can run the kernel. This restriction may be relaxed by containing more than one processor capable of running the kernel and let additional capability by which the master may float between the various processors capable of running the kernel.
3) Multi-threaded UNIX kernel: We know that threads are light-weight processors needs minimal state information comprising the processor state and contents of relevant registers. A thread being a (light weight) process is capable of implementing alone. In a multiprocessor system, more than one processor may implement simultaneously with each processor possibly implementing more than one threads, with the restriction that those threads which share resources must be allotted to single processor. Though, the threads which do not share resources may be allotted to dissimilar processors. In this model, in order to divide multiple threads requiring different sets of kernel resources spin locks or semaphores are used.