mirror of
https://github.com/jackyzha0/quartz.git
synced 2025-12-27 14:54:05 -06:00
1.0 KiB
1.0 KiB
| title | aliases | tags | ||
|---|---|---|---|---|
| 18-processes-sharing-and-threads |
|
Shared memory for processes
Can't assume all variables are initally zero. OS decide which process maps who which physical address
memory mapping mmap is a family of system calls:
- allow two processes to share some region of their memory space.
- achieved by creating a memory region that can be shared by other processes
shared memory by two processes mapping to the same file or using fork() after mmap()
random_fd = open("/home/hzy/test/zero", O_RDWR);
ptr = mmap(NULL, 10240, PROT_READ|PROT_WRITE,
MAP_SHARED | MAP_FILE, random_fd, 0);
private mapping is often ysed to set up new memory sections.
fd = open("mmap_test_file", O_RDWR); p
tr = mmap(NULL, 10240, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FILE, fd, 0);
Threads
Lightweight process - shares everything except the stack


