Computer Memory

What is shared memory?


Top Answer
User Avatar
Wiki User
Answered 2009-09-24 00:55:40

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. The issue with shared memory systems is that the many CPUs need fast access to memory and will likely cache memory. 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. In software the term shared memory refers to memory that is accessible by more than one process, where a process is a running instance of a program. In this context, shared memory is used to facilitate inter-process communication.


Your Answer

Related Questions

shared memory-initial memory=available memory.

Interesting question. Most agree that shared memory should be minimized and that you should use IPC rather than shared memory if at all possible. Object Oriented programming suggests that an "Object" have it's own methods and that should be the only way that the data object should be modified. Shared memory tends to bypass that construct. In the current programming environment, shared memory is no longer recommended.

MIMD(Multiple Instruction streams, Multiple Data streams) multiprocessors fall into two classes Centralized Shared memory and distributed shared memory Centralized Shared Memory Architecture has at most a few dozen microprocessors chips, that shares a single centralized memory. They have large caches, single memory, with multiple banks. The single memory has a symmetric relation to all the processors and uniform access time from any processor.

dedicated memory is memory which is only connected to the GPU. changing shared memory to dedicated memory would involve rewiring the laptop, which would be far more expensive and far more effort than buying dozens of laptops with dedicated memory.

Advantages of shared memory are: 1) Less disk spaceis used because the shared momory code is not included in the executable program. 2) Less momory is used b'coz the shared memory code is only loadedonce.

DSM stands for "distributed shared memory". Distributed shared memory is a computer architecture where the memories can be addressed as one address.

Yes, dedicated memory is always better then shared (or integrated) edit answer after editing the question: but what is the shared memory option is much bigger than the dedicated option? (See edited question)

Gheith A. Abandah has written: 'Tools for characterizing distributed shared memory applications' -- subject(s): Distributed shared memory, Evaluation, Design, Computer programs

This type of memory provides two paths (called channels) to access the memory

one or more processes (allocated at different address spaces) can share an area of memory. This memory is referred to as the shared memory segment. the ftok() function call returns a key (which is most likely an integer) that signifies the shared memory segment. hope this helps (i tried to simplify it a lot)

Shared memory and thread are not compareable since both of them relies to different technologies. A Shared memory is one of the methods to implement interprocess communication or IPC, by which different processes or tasks can access the same memory area, to share data between them. A thread or thread of execution is a mechanism by which a process can be split in to multiple simultaneously running pieces of code.

The disadvantages of shared memory for computer graphics include slower speeds and reduced availability of resources. This is used by the on-board video card in many computers as a way of lowering costs.

Some graphics cards have memory on board the card itself. Others rely on the memory chips on the system board for memory , thus sharing memory. Suppose a PC has a specification of 256MB of memory and 64MB shared graphics. The memory available for your operating system and applications will be 192MB. If a PC had the same specifications but the 64MB were dedicated, the 64MB required to run the card would use this memory, leaving the full 256MB for your operating system and applications. In short, shared = compromise, dedicated = better.

It's a fragment of memory shared by multiple variables.

Types cannot share memory; only instances of a type (objects or variables) can share memory. This is achieved through the use of shared resource handles or "smart pointers". We can also use C-style pointer variables to share memory, however they are problematic because as soon as the shared memory is released, all pointers to it become invalid but there's no way to tell if a pointer is valid or not. Even without using shared memory, there is no notion of "ownership" as far as pointers are concerned. In the absence of resource handles, the best strategy is to allocate memory in an outer scope and then create shared pointers within an inner scope. The shared pointers MUST NOT release the memory they refer to. When we return to the outer scope, the shared references will have fallen from scope, thus we can safely release the memory using the same pointer variable we used to allocate the memory. In this way we get some notion of ownership. With resource handles we don't have this problem because the shared memory cannot be released accidently until the very last reference falls from scope. The last reference need not be the one we originally used to allocate the memory. Sharing memory between threads is best kept to an absolute minimum. Although we can use locks to prevent data races, we achieve better performance with lock-free code and there's less risk of deadlock (where two threads are waiting on each other to release the memory they've locked). Shared memory is often unavoidable, but don't use it just because you can, only use it when it is appropriate to do so; there are always alternatives.

Yes, this is called shared memory. But it isn't useful, its mostly a gimmick because the memory speed is much slower than a graphics card with dedicated memory.

you can't or you can get more ram but it only increases shared memory video!

One that is used only for the video, rather than a chunk of the main memory which is shared between various tasks.

There are 2 types of layers in shared dictionary cache layer2.library cache layer

Because static libraries are, well, STATIC. They are LINKed STATICally to the program by the LINKer. Shared libraries are SHARED. They are linked by the LOADer when LOADed to SHARED libraries in system memory.

The resources that are shared by all threads of a process in Operating SystemsareMain memoryInput Output DevicesInput Output ChannelsFiles

A memory management unit (MMU) is a small device between CPU and RAM recalculating the actual memory address, for example to provide an abstraction of virtual memory or other tasks.

Hi all, The ASURA software is a Distributed shared memory multiprocessor. It is a large scale, cluster-based, distributed, shared memory, multiprocesor being developed at Kyoto university and Kuboto corporation. Up to 128 clusters are interconnected to form an ASURA system of up to 1024 processors. The basic concept of the ASURA design is to take advantage of the hierarchical structure of the system. Implementing this concept, a large shared cache is placed between each cluster and the inter-cluster network. The shared cache and the shared memories distributed among the clusters form part of ASURA's hierarchical memory architecture, providing various unique features to ASURA

A way or organizing different types of data in the phone's memory. Also referred to as Shared memory. Dynamic memory means that all types of data are stored in the same memory (there is no separate memory for photos, ringtones etc.). An advantage of dynamic memory over partitioned memory is that it is more flexible - with partitioned memory, you can fill up the photo memory for example and you won't be able to take any more photos even if other types of memory are free.

Copyright ยฉ 2020 Multiply Media, LLC. All Rights Reserved. The material on this site can not be reproduced, distributed, transmitted, cached or otherwise used, except with prior written permission of Multiply.