본문으로 바로가기

세마포어와 뮤택스

category 개발지식 2022. 7. 1. 15:41
반응형

1. 임계구역

 - 여러 프로세스가 데이터를 공유하며 수행될 때, 각 프로세스에서 공유 데이터에 접근하는 프로그램 코드 부분

 

2. 세마포어 (Semaphore) ?

 - 공유자원에 여러 프로세스가 접근하는 것을 막는 것

 - 세마포어 함수는 정수 값을 인자로 갖는 객체

 - 정수 값이 양수인 경우 사용중인 쓰레드의 개수(접근할 수 있는 프로세스 개수), 

    정수 값이 음수인 경우 대기중인 쓰레드의 개수

 - 프로세스 마다 접근할 경우 -1, 작업 완료 후 세마 포어 정수 값을 +1 시킴

 - 만약 정수 값이 0보다 작거나 같을 경우 락을 실행

 

3. 뮤택스(Mutext) ?

  - 공유자원에 여러 프로세스가 접근하는 것을 막는 것

  - Locking 메커니즘

  - 1개의 스레드만이 공유 자원에 접근할 수 있음

  - 해당 자원을 사용할 프로세스가 임계영역에 접근하기 위해 먼저 자원에 대한 Lock 을 걸고,

     작업이 완료된 후 unLock 을 하여 다른 프로세스가 자원에 접근할 수 있도록 함

 

반응형

'개발지식' 카테고리의 다른 글

[Window] 윈도우에 WSL2 설치  (0) 2022.10.22
브라우저 URL 입력했을 때 발생하는 일  (0) 2022.07.13
[AWS]Elastic Load Balancer(로드밸런서) Sticky Sessions  (0) 2022.06.14
Redis 란  (0) 2022.06.11
RDBMS 와 NoSQL의 차이  (0) 2022.06.10