At any instant there may be a number of processes concurrently running on a system. Each process holds some resources for executing instructions and waits for other resources. Similarly, a large number of resources hold resources and continue with their own execution process. So there must be inter-process communication so that the processes can share each others results and resources.
Shared memory is a way of inter-process communication where processes share a single lump of physical memory space. The memory space is the resource pool for the processes from where the processes are allocated resources according to some predefined algorithms.