Multiprocessing is the situation in which more than one processor are working in unison. So, they must be well configured so as not to generate any type of problem.
There are typically 3 types of configurations: Master / Slave Configuration, Loosely Coupled Configuration, and Symmetric Configuration. These are explained are following below.
1. Master / Slave Configuration:
The master/slave configuration is a single processor system where extra slave processors are working, managed by primary master processor. It is an asymmetrical system.
The work of the master processor is to manage the entire system consisting of files, devices, main memory and the slave processors. It maintains the status of all the processes, schedules the work for the slave processor and executes all control programs. It is also responsible for storage management. This type of configuration is suitable for computing environments where the processing time needs to be divided between front end and back end processor.
The advantage of this configuration is that it is simple to understand.
The disadvantages include:
- It is as reliable as a single processor system, i.e., if the master processor fails the entire system fails.
- It creates more overhead charges. There would be situations when the slave processors would be free before the master processor could assign them another task. Then it takes the valuable time of processing.
- After each task completed by the slave processors, it interrupts the master processor for some operating system intervention, like I/O requests. This creates long queues at master level processor.
2. Loosely Coupled Configuration:
In this type of configuration, there are several complete computer systems with their own memory, I/O devices, CPU and operating system.
Each processor controls it’s own resources (I/O devices, memory, etc.) and their own commands and management tables. Each processor can also communicate and cooperate with each other.
When a job is given, it is assigned to one processor and that processor works on that task till it’s completion. So, there must be global tables to to indicate which processor has been given a specific task. Also for the system to be well balanced, job scheduling must be done on various parameters and according to various policies.
The advantage of this configuration is that it isn’t prone to catastrophic failure. If a processor fails, other can continue their work independently.
The disadvantage of this configuration is that it is difficult to detect if a processor has failed.
3. Symmetric Configuration:
In symmetric configuration processor scheduling is decentralized. A single copy of the OS and a table listing each process and it’s status is stored in memory common and accessible to all the processors, so that each processor can use the algorithms to decide which job to run next.
- It is more reliable than loosely coupled configuration.
- It uses the resources effectively.
- It well manages the load of jobs.
- It can degrade gracefully at the time of failure.
- Whenever a process is interrupted, it’s processor updates the the corresponding entry in the process list and finds another process to run. This means that not only all the processors are kept busy, but also other processors may also be executing that job (like I/O request) at the same time. This increases the chances of conflict between processors.
- It is the most difficult configuration to implement, as the system must be well synchronized as to avoid any type of races or deadlocks.
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.