|
In Hardware
Diagram of a typical Shared memory system. Three processors are connected to the same memory module through a bus or crossbar switch In computer hardware, shared memory refers to a (typically) large block of random access memory that can be accessed by several different central processing units (CPUs) in a multiple-processor computer system. Image File history File links No higher resolution available. ...
Image File history File links No higher resolution available. ...
Random access memory (usually known by its acronym, RAM) is a type of data storage used in computers. ...
Die of an Intel 80486DX2 microprocessor (actual size: 12Ã6. ...
Multiprocessing is traditionally known as the use of multiple concurrent processes in a system as opposed to a single process at any one instant. ...
A shared memory system is relatively easy to program since all processors share a single view of data and the communication between processors can be as fast as memory accesses to a same location. The issue with shared memory systems is that many CPUs need fast access to memory and will likely cache memory,which has two complications: Look up cache in Wiktionary, the free dictionary. ...
- CPU-to-memory connection becomes a bottleneck. Shared memory computers can not scale very well. Most of them have only ten processors.
- Cache coherence: Whenever one cache is updated with information that may be used by other processors, the change needs to be reflected to the other processors, otherwise the different processors will be working with incoherent data (see cache coherence and memory coherence). Such coherence protocols can, when they work well, provide extremely high performance access to shared information between multiple processors. On the other hand they can sometimes become overloaded and become a bottleneck to performance.
The alternatives to shared memory are distributed memory and distributed shared memory, with another, similar set of issues. See also Non-Uniform Memory Access. Cache coherency (alternatively cache coherence or cache consistency) refers to the integrity of data stored in local caches of a shared resource. ...
Cache coherency (alternatively cache coherence or cache consistency) refers to the integrity of data stored in local caches of a shared resource. ...
Memory coherence (also cache coherence or cache consistency) is the property of the shared memory systems (multiprocessors and distributed shared memory systems) in which any shared piece of memory (cache line or memory page) gives consistent values with accordance to earlier agreed consistency model despite accesses (maybe parallel) from different...
Distributed memory is a concept used in parallel computing. ...
Distributed Shared Memory (DSM), in computer science, refers to a wide class of software and hardware implementations, in which each node of a cluster has access to a large shared memory in addition to each nodes limited non-shared private memory. ...
Non-Uniform Memory Access or Non-Uniform Memory Architecture (NUMA) is a computer memory design used in multiprocessors, where the memory access time depends on the memory location relative to a processor. ...
In Software In computer software, shared memory is a method of inter-process communication (IPC), i.e. a way of exchanging data between programs running at the same time. One process will create an area in RAM which other processes can access. Inter-Process Communication (IPC) is a set of techniques for the exchange of data between two or more threads in one or more processes. ...
In computing, a process is an instance of a computer program that is being executed. ...
Look up RAM, Ram, ram in Wiktionary, the free dictionary. ...
Since both processes can access the shared memory area like regular working memory, this is a very fast way of communication (as opposed to other mechanisms of IPC such as named pipes, Unix sockets or CORBA). On the other hand, it is less powerful, as for example the communicating processes must be running on the same machine (whereas other IPC methods can use a computer network). In computing, a named pipe (also FIFO for its behaviour) is an extension to the traditional pipe concept on Unix and Unix-like systems, and is one of the methods of inter-process communication. ...
A socket generally designates a cavity or region used for fitting and connecting some specific device. ...
In computing, Common Object Request Broker Architecture (CORBA) is a standard for software componentry, created and controlled by the Object Management Group (OMG). ...
Computer networks redirects here. ...
IPC by shared memory is mainly used on Unix systems. POSIX provides a standardized API for using shared memory, POSIX Shared Memory. Filiation of Unix and Unix-like systems Unix (officially trademarked as UNIX®) is a computer operating system originally developed in the 1960s and 1970s by a group of AT&T employees at Bell Labs including Ken Thompson, Dennis Ritchie and Douglas McIlroy. ...
POSIX or Portable Operating System Interface[1] is the collective name of a family of related standards specified by the IEEE to define the application programming interface (API) for software compatible with variants of the Unix operating system. ...
See also In computer architecture, Shared Memory Architecture (SMA) refers to a design where the graphics chip does not have its own dedicated memory, and instead shares the main system RAM with the CPU and other components. ...
External links |