Junior — Middle
Can you explain the concept of shared memory and its use in programming?
sobes.tech AI
Answer from AI
Shared memory is an inter-process communication (IPC) mechanism where multiple processes can access the same memory segment. This allows efficient data exchange without the need for copying between processes.
In programming, shared memory is used for fast exchange of large data volumes between processes, for example, in high-performance systems.
An example of usage in Python with the multiprocessing module:
from multiprocessing import Process, Value
def f(n):
n.value += 1
if __name__ == '__main__':
num = Value('i', 0) # shared integer value
p1 = Process(target=f, args=(num,))
p2 = Process(target=f, args=(num,))
p1.start()
p2.start()
p1.join()
p2.join()
print(num.value) # Will output 2
Here, Value creates a shared memory for an integer value accessible by both processes.
At the OS level, shared memory is created through special system calls (e.g., shmget, shmat in Unix), which allow different processes to access the same memory block.