

Multiprocessor has many processors on one system . Like various parts of our brain which come together to execute instructions and carry out some program or work . These multiprocessors are efficient as its processors work in a collaboration this parallel programming is possible. What is parallel programming? Good question! It's like opening various applications all together like opening vs code and Adobe editor and browser simultaneously. So to run these all programs together they require parallel programming. Here's where the multiprocessor comes in frame and helps to execute all this together.
There are 2 types of multiprocessor systems based on how they access memory and I/O devices.
1. Shared memory....where main memory and peripherals are used by all the processors to execute instructions concurrently. Since the same bus is used to access main memory traffic is created and other processors have to idle (like on marines drive on 4th July ...cars are in traffic and idle..can't help roads that are not accessible).
2. Distributed memory...where each processor has its own memory to fetch from and when a remote program is needed they get to the main memory .....
Though it has various advantages like working in collaboration makes execution more efficient (unlike our group projects where everything is done by one person). It also requires complex configuration and it's expensive.There is also deadlock condition where one processor can't access an I/O device just because some other processor is using it .And it's complicated just like when a small is assigned to more than required people leading to no optimum utilisation of resources...