Since the development of the first computer, we have been working on building systems that can provide higher performance. The multiprocessor is one such system that improves the speed and performance of the computer hardware. As the name suggests, it uses more than one central processing unit (CPU) within a single system. Thus, the CPUs share the main memory and peripheral devices. This way, processes run parallel in a single multiprocessor system, a method that has advantages and disadvantages.
Based on the instructions given to the CPUs, the multiprocessor system is divided into two types: symmetric and asymmetric. In symmetric multiprocessor systems, all CPUs are treated equally. Whereas, in asymmetric multiprocessor systems, the master processor gives instructions to the other processors. Using the multiprocessor system, we can operate multiple processes in parallel. Alternatively, we can divide a single process into smaller procedures that run simultaneously.
This system is also classified based on memory organization — there is shared memory and distributed memory. Shared memory is commonly called tightly coupled memory, and it involves shared address space. Distributed memory is called loosely coupled memory and is used in the distributed computing system. The multiprocessor system makes it possible for us to multitask in an application and share the hardware among various processors. This was a brief overview of a multiprocessor system and now it’s time to delve into its benefits and drawbacks.
Advantages of multiprocessor system
The primary reason you might want to use a multiprocessor system is to boost the execution speed. This will help you get more things done in less time. Here are a couple of other reasons that may convince you to switch to a system with more than one processor:
The unsurprising benefit of using more than one processor in a system is reliability. Multiprocessor systems are highly reliable as they use two or more processors. Even if one processor halts, the system continues to function as long as the remaining processors continue working fine. There won’t be a major loss in such a situation. At most, the system will slow down which is undoubtedly much better than coming to a standstill. This phenomenon, where catastrophic failure is prevented, is called graceful degradation. Also, the use of multiple processors in a system increases accuracy, making it more dependable.
2. Increased throughput
Throughput is nothing but the number of processes executed at a given time. Considering multiprocessor system has more than one CPU for processing, enhanced throughput is predictable. That is to say, the system makes the most of the parallel processing to improve the throughput significantly. Unsurprisingly, the advantage of high throughput is good performance. In other words, you can complete more tasks in a shorter time. The same task that can take more time to complete can be divided among different processors in a single system to reduce the realization time.
Ideally, you would consider a system economical if it gives you good value for the time, effort, and cost invested. In this sense, multiprocessor systems are quite economical as you can save a lot of effort, time, and expenditure by running multiple processors in a single system. Plus, these processors share memory, buses, and peripherals, which further reduces the expense. This means you don’t have to get peripherals for each processor individually. Now, compare this with multiple single-processor systems, where you have to invest more to get the same amount of work done. Thus, organizations use multiprocessor systems to run processes more efficiently while lowering operation costs.
Disadvantages of multiprocessor system
To fully understand multiprocessor systems, it is equally important to look at their shortcomings. Here are some downsides to using a system with two or more processors:
If you do not want to consider the long-term benefits of switching to multiprocessor systems, you will find this system pricey. The existence of multiple processors makes the huge architecture expensive. In comparison, choosing a single processor system may seem a more affordable option to you. Procuring multiprocessor systems is one thing, but maintaining this system is equally costly. Ergo, unless you are ready to consider the long-term benefit of switching to the system with multiple processors, it’s better to stick to the single processor system with its benefits.
2. Requires large main memory
By now, we know people utilize multiprocessor systems to increase computational power. But this also means the system requires enormous main memory. Reminder: all processors have direct access to the main memory in this architecture. This way, the memory is shared and data is accessed by these processors at once. Along with main memory, these processors also share other resources for the completion of tasks.
3. Complex operating system
In the multiprocessor system, each CPU has its operating system. The process is divided into small processes and the load is shared among these processors. However, the downside to this architecture is that it increases complexity. Multiple processors communicate with each other, so handling the implementation of the operating system becomes complicated.
4. Scheduling difficulties
Several processes in the multiprocessor system run simultaneously. When compared to single-processor systems, multiprocessor scheduling is complex. Therefore, there are different approaches to scheduling. First, there is master-slave scheduling. In this approach, there is one processor that acts as a master server. The role of the master server is to schedule the process and make decisions. This inhibits the communication among the other processors. That is to say, not all processors are treated equally.
Also, in case the master server fails, the slave server is turned into the master to complete the tasks. Furthermore, when the slave server fails, the task is assigned to the other processors. The second approach to scheduling is self-scheduling. This method doesn’t have master-slave scheduling. Instead, all the processors run the task within an operating system. Processes are available in the ready queue and are taken by the processors one after another. The shared memory is used for communication among them. This scheduling system is intricate because processors need to be in sync to maintain the load balance.