일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Effective Java
- log4j2
- upgrade
- MySQL
- nodejs
- Webpack
- spring
- current_date
- JavaScript
- expire_logs_days
- 퀵소트
- REACTJS
- java
- update
- git
- migration
- Chunk
- REACT
- Express
- Effective Java 3/e
- 정규표현식
- eslint
- mysql 5.5
- Node
- spring cloud
- regex
- Regular expression
- Spring Batch
- npm
- log_bin
- Today
- Total
내 세상
[Operating System] Semaphore, Mutex 본문
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 함수로만 다룰 수 있음.
'Knowledge > Operating System' 카테고리의 다른 글
[Operating System] Deadlock, 교착상태 (0) | 2019.05.05 |
---|---|
[Operating System] Process Scheduling (5/5 수정) (0) | 2019.04.29 |
[Operating System] Interrupt, PCB, Context Switching (0) | 2019.04.29 |
[Operating System] 운영체제, 프로세스 상태 전이도 (0) | 2019.04.29 |