fork로 나온 parent, child와 다르게 완전 다른 프로세스간 shared memory로 데이터를 공유할 수 있다. 이를 실행하면 다음과 같다. 512 길이 메모리를 할당하고, 250~259번지를 보면 다시 0으로 돌아간다. od로 확인하면 255에서 0으로 갔음을 본다. 파일 사용하는 방법과 비슷하다.
[태그:] c
semaphore로 process간 데이터를 주고 받을 줄 알았는데, 아니었다. semaphore로 동기하고 process간 데이터 전달은 메모리 공유로 한다.
세마포어로 데이터를 전달할 줄 알았으나, 동기화만 한다. 프로세스간 데이터를 공유할 방법이 없다. 다음 예제 shared memory로 공유한다. named semaphore는 잘 동작하는 듯 한데, 검증을 못했다.
이름있는 세마포어 말고 메모리에 올려 사용하는 방법도 있다. 책은 sem_init(…, 두번째 arg,…)에서 두번째 입력하는 숫자를 thread에서 공유할 거면 0, 프로세스간 할거면 1로 하라고 한다. 1로 하여 thread도 잘 된다. named semaphore는 포인터를 선언했고 파일에 영역을 만들었다. 이와 다르게 직접 데이터를 선언하고 주소로 넘겨줘야 한다. ipcs로 보일 법 한데, 안 보인다. 무엇이 잘못되었는지 모르겠다. ipcs는 system […]
isbn: 9780130810816 대학교 vol 1을 읽었고 너무 오래된 시스템이라 잘 실행안됬음을 기억했다. 가벼운 마음으로 IPC를 알아보려 찾았는데, 600페이지 책 한 권을 읽고 있다. 책도 나온지 너무 오래되어 웬만하면 하나 사려고 했는데, 종이책으로만 있다!! 인터넷에서 잘 찾았다. 아래 그림은 개요장에 있는데 이 그림으로 길고 지루한 길을 쉽게 갈 수 있다. 예상한 바와 같이 파일로 정보를 공유함은 […]