issues
search
Romanof123
/
document
0
stars
0
forks
source link
Inter process Communication7
#11
Open
Romanof123
opened
4 years ago
Romanof123
commented
4 years ago
Shared Memory
다른 process들에게 빠르게 데이터 공유하기위해서 사용한다
physical memory를 공유하지않고 virtual address로 mapping하여 사용한다.
사이즈가 큰 공간을 데이터를 공유하게된다.
어떻게 shared memory를 사용하게 되나.?
fd = shm_open("/myname",O_RDWR.| O_CREATE, 0666); 권한주고 만들어준다.
ftruncate(fd, 크기지정);
ptr=mmap()을통해 포이트 받아와서 사용하면된다.
close(fd)
client도 똑같이 쓰고 옵션만 바꾸면된다.
사용다하면 어떻게할까?
munmap(ptr,SHARED_SIZE);로 메모리 unmap하고
shm_unlink ("/myname");하면 링크파일도 사라진다.
데이터 쓸대 주의해야된다. 둘이 같이쓰면안되니까
thread에서처럼 pthread_process_shared flag를 통해 다른 process들끼리 뮤텍스 세마포어 사용가능
예제는
shmemcreater.c , shmemuser.c, shmem.h
를 참조하세요
Shared Memory
어떻게 shared memory를 사용하게 되나.?
사용다하면 어떻게할까?
데이터 쓸대 주의해야된다. 둘이 같이쓰면안되니까
예제는
shmemcreater.c , shmemuser.c, shmem.h
를 참조하세요