'세마포어'에 해당되는 글 1건

  1. 2013.04.26 Shared Memory vs Semaphore
posted by 구름너머 2013. 4. 26. 16:15

Shared Memory
여러 프로세스들이 공통적으로 사용하는 메모리
주로 오라클과 같은 대용량 데이터베이스를 사용하는 시스템에서 사용함
테이블이 크고 데이터 양이 많을 수록 Shared Memory는 크게 잡아주어야 함.
HP-UX 11.0의 경우, 32bit는 1.7G까지, 64bit는 2TB, 즉 거의 무한대에 가까울 정도로 허용함

Semaphore
Shared Memory와 같이 사용되는 개념으로 Shared Memory에 Access하는 Process들을 관리하는 영역이라고 할 수있음.오라클은 백그라운드프로세스들 간의 일치를 조절하기 위해서 semaphore를 사용한다.
다중 프로그래밍에서 데드 로크를 방지하고 시스템 자원을 공유하기 위해 E. J. Dijkstra가 제안한 동기화 방식 또는 그 신호
Semaphores(세마포어)는 동시에 두 개 이상의 프로그램이 실행될 수 있는 다중 프로그래밍 환경에서 한 순간에 반드시 하나의 작업에 의하여 접근되어야 하는 긴급 영역 및 상호 배제 원리를 지키기 위한 방법을 말한다.
Semaphores는 E. J. Dijkstra가 제안한 것으로 반드시 상호 배제의 원리가 지켜져야 하는 공유 영역에 대하여 각각의 프로세서들이 접근하기 위하여 사용되는 두 개의 연산 P와 V라는 연산을 통해서, 프로세서 사이의 동기를 유지하고 상호 배제의 원리를 보장할 수 있다.

Shared Memory와 Semaphore의 값을 지나치게 크게 잡으면 시스템이 부팅이 안될 수도 있으나, HP-UX의 sam에서 값을 변경하면 sam에서 일단 변경된 설정값이 적절한지 체크해 주기 때문에 시스템이 부팅이 안될 위험은 피할 수 있다.
sam에 있는 semaphore값은 16진수이므로 10진수로 변환해서 계산

'UNIX' 카테고리의 다른 글

/dev/null 2>&1  (0) 2013.11.18
cp 파일복사  (0) 2013.06.07
버퍼 오버 플로우 방지  (0) 2013.04.08
wc cat awk 의 조화  (0) 2013.02.28
UNIX 1회성 작업 예약하기 : at  (0) 2013.02.28