내 세상

[Operating System] Semaphore, Mutex 본문

Knowledge/Operating System

[Operating System] Semaphore, Mutex

sga8 2019. 5. 1. 16:11
728x90
반응형

Semaphore (세마포어) - Mutex의 상위 호환

  - 공유된 자원의 데이터를 여러 프로세스가 접근하는 것을 막는 것

  - 운영체제의 리소스를 경쟁적으로 사용하는 다중 프로세스에서 행동을 조정하거나 또는 동기화 시키는 기술

  - 운영체제 또는 커널의 한 지정된 저장장치 내 값으로 각 프로세스는 이를 확인하고 변경할 수 있음.

  - 소유 불가. Semaphore를 소유하지 않는 쓰레드가 Semaphore를 해제할 수 있음

  - 시스템 범위에 걸쳐있고, 파일시스템상의 파일 형태로 존재함.

 

Mutex (Mutual Exclusion, 뮤텍스, 상호배제) - Binary Semaphore

  - 공유된 자원의 데이터를 여러 쓰레드가 접근하는 것을 막는 것

  - Critical Section을 가진 쓰레드들의 Running Time이 서로 겹치지 않게 각각 단독으로 실행되게 하는 기술

  - 다중 프로세스들의 공유 리소스에 대한 접근을 조율하기 위해 locking과 unlocking을 사용함.

  → 뮤텍스 객체를 두 쓰레드가 동시에 사용할 수 없음.

  - 소유 가능. Mutex를 소유하고 있는 쓰레드가 이 Mutex를 해제할 수 있음.

  - 프로세스 범위를 가지며 프로세스가 종료될 때 자동으로 Clean up 됨.

 

Critical Section

  - Multi Programming OS에서 여러 프로세스가 데이터를 공유하면서 수행될 때,

    각 프로세스에서 공유 데이터를 액세스하는 코드 부분을 가르키는 말.

  - Example

    - Semaphroe는 보통의 방법으로는 액세스가 불가하며 오직 P, V 함수로만 다룰 수 있음.

 

 

728x90
반응형