반응형 IPC 썸네일형 리스트형 공유 메모리 예제 및 주의점 자주 쓰이는 함수 shmget (shared memory get) shmat (shared memory attach) shmdt (shared memory detach) 예제 두개의 프로세스를 만들겠습니다. counter.c 라는 예제는 공유메모리에 1초마다 0부터 계속 증가하는 카운터 문자열을 공유메모리에 넣을 예정이구요. show_counter.c에서는 공유메모리를 화면에 출력하겠습니다. #include #include #include #include #define KEY_NUM 9527 #define MEM_SIZE 1024 int main(void) { int shm_id; void *shm_addr; int count; if ( -1 == ( shm_id = shmget( (key_t)KEY_N.. 더보기 리눅스 IPC 프로그래밍(IPC종류) [1] IPC(Inter Process Communication) - 프로세스 간 통신에 대하여 종류와 특징들에 대하여 살펴보겠습니다. [리눅스 커널 구조] - 위 그림처럼 Process는 완전히 독립된 실행객체입니다. 서로 독립되어 있다는 것은 다른 프로세스의 영향을 받지 않는다는 장점이 있습니다. 그러나 독립되어 있는 만큼 별도의 설비가 없이는 서로간에 통신이 어렵다는 문제가 있게 됩니다. 이를 위해서 커널 영역에서 IPC라는 내부 프로세스간 통신 - Inter Process Communication을 제공하게 되고, 프로세스는 커널이 제공하는 IPC설비를 이용해서 프로세스간 통신을 할 수 있게 됩니다. 0. 시그널 (Signal) 예전에 상훈이가 스터디때 강조했던 시그널은 임의의 프로세스에세 특정 이벤트가.. 더보기 [리눅스 IPC 프로그래밍] 어느 정도 규모의 리눅스 시스템 개발에서 IPC(Inter-Process Communication)는 필수적으로 사용됩니다. 하나의 프로세스에 시스템에 필요한 모든 기능을 담을 수는 없기 때문입니다. 여러 프로세스가 각자의 역할을 수행하고, 또 유기적으로 동작해야 마치 하나의 소프트웨어가 동작하는 듯한 아름다운 모습을 그려낼 수 있습니다. 이 때 프로세스들의 유기적인 동작을 위해 필요한 것이 바로 IPC 입니다. IPC 도구는 프로세스간 데이터를 주고 받을 수 있도록 하는 도구들을 말합니다. 리눅스는 여러 가지 IPC 도구를 제공합니다. 크게 데이터 교환과 동기화 도구로 나눌 수 있고, 데이터 교환은 데이터 전송 방식과 메모리 공유 방식으로 구분할 수 있습니다. 더보기 고급 리눅스 API <POSIX 메시지큐> 메시지 큐 목차 mq_close — 메시지큐를 닫음. mq_getattr — 메시지큐의 속성 가져오기 mq_notify — 메시지가 유용하지 않음을 프로세스에 알림. mq_open — 메시지큐 열기. mq_receive — 메시지큐로부터 메시지를 받음. mq_send — 메시지큐에 메시지 전송. mq_setattr — 메시지큐 속성 설정. mq_timedreceive — 메시지큐로부터 메시지 수신. mq_timedsend — 메시지큐에 메시지 전송. mq_unlink — 메시지큐 제거. 헤더 파일는 메시지 큐 기술자를 위해 사용되는 mqd_t 타입을 정의한다. 헤더 파일는 메시지 큐의 속성을 얻고 설정하기 위해 sigevent 구조체와 mq_attr 구조체를 정의한다. 속성들은 메시지큐가 생성되었을 때 .. 더보기 이전 1 다음