Since all processors are sharing a single address space, the data sharing is fast but processes can corrupt each others data at the same time. So the semaphores and locks are used to save the data from corruption. There is a lack of scalability between PEs and memory which means that we can not add PEs as many as we need to a limited memory. This problem arises mainly due to the bus contention.