본문 바로가기
Solaris

IPC 설명

by 레이루이 2008. 5. 5.
반응형

IPC란 Inter-Process Communication의 약자로 내부 프로세서끼리 통신하는 3가지 방식을 말합니다.
 
  3가지 방식은 message queue, shared memory, semaphores로
 
  # ipcs
  IPC status from as of Thu Jan 11 12:00:55 2001
  Message Queue facility not in system.
  T ID KEY MODE OWNER GROUP
  Shared Memory:
  m 0 0x5000081b --rw-r--r-- root root
  m 1 0x0052e2ca --rw------- postgres other
  m 2 0x0052e2c1 --rw------- postgres other
  m 3 0x0052e2c7 --rw------- postgres other
  Semaphores:
  s 0 0x0052e2ce --ra------- postgres other
  s 1 0x0052e2cf --ra------- postgres other
 
  보통 program을 짤 때 shared memory가 예제도 많고 제일 쉬워서 많이 애용하지만 맛이 자주 가는데, 이럴땐
 
  # ipcrm -m 0
  위 예제에서 shared memory ID 0를 가진 놈을 강제 종료 시킬 떄
 
  같은 식으로 Semaphores를 지울 려고 할 떄는
  # ipcrm -s 1
 
  그리고 ipcs 나 -a (모든 정보) 옵션 주어서 보면,
  # ipcs
  IPC status from as of Thu Jan 11 12:00:55 2001
  Message Queue facility not in system.
  T ID KEY MODE OWNER GROUP
  Shared Memory:
  m 1 0x0052e2ca --rw------- postgres other
  m 2 0x0052e2c1 --rw------- postgres other
  m 3 0x0052e2c7 --rw------- postgres other
  Semaphores:
  s 0 0x0052e2ce --ra------- postgres other
 
  방금 지운 것이 안 나타나는 걸 알 수가 있죠?
 
  보통 Solaris 2.X OS를 인스톨 하면 /etc/system 화일에 아무 값도 없는데, 맨 끝에 아래와 같이
 
  # vi /etc/system
 
  ~~~~ BLOB BLOB
 
  set shmsys:shminfo_shmmax=53554432
  set shmsys:shminfo_shmmni=400
  set shmsys:shminfo_shmseg=15
  set semsys:seminfo_semmns=512
  set semsys:seminfo_semmsl=300
  set semsys:seminfo_semmni=100
  set semsys:seminfo_semmnu=256
  set msgsys:msginfo_msgmax=32768
  set msgsys:msginfo_msgmnb=32768
  set msgsys:msginfo_msgseg=10240
  :wq!
 
  # reboot
 
  해 주면 위에서 해준 대로 system이 부팅할 떄 새로운 설정이 반영된다. 보통 Oracle이나 Postgres를 애써 Install한 초보자들이 자주 겪는 일이니 업무에 참조 바랍니다.
반응형