본문 바로가기

Linux

세마포어, 뮤텍스, critical section

세마포어란?

공유된 자원에 여러 개의 프로세스가 동시에 접근하면 문제가 발생합니다. 공유된 자원 속 하나의 데이터는 한 번에 하나의 프로세스만 접근할 수 있도록 제한해 두어야 하는데, 이를 위하여 고안된 것이 세마포어입니다.

 

(세마포어와 뮤텍스의 차이)

세마포어(Semaphore) : 공유된 자원의 데이터를 여러 프로세스가 접근하는 것을 막는 것

뮤텍스(Mutex) : 공유된 자원의 데이터를 여러 쓰레드가 접근하는 것을 막는 것

 

** Critical section 이란 ?

OS에서 Critical Section은 아주 중요한 부분이다.

- 다중 프로그래밍 운영체제에서 여러 프로세스가 데이타를 공유하면서 수행될 때 각 프로세스에서 공유 데이타를 액세스하는 프로그램 코드 부분을 가리킨다.

공유 데이타를 여러 프로세스가 동시에 액세스하면 시간적인 차이 때문에 잘못된 결과를 만들어 낼 수 있기 때문에 한 프로세스가 위험 부분을 수행하고 있을 때, 즉 공유 데이타를 액세스하고 있을 때는 다른 프로세스들은 절대로 그 데이타를 액세스하지 못해야 한다.

출처: http://jwprogramming.tistory.com/13 [개발자를 꿈꾸는 프로그래머]


'Linux' 카테고리의 다른 글

TMOUT=0  (0) 2019.03.14
setcap / cap_ipc_lock / Hugepage  (0) 2018.12.06
GREP에 정규식 표현 사용하기  (0) 2017.04.27
Backtick(백틱) '` `' / ~밑에 있는 기호  (0) 2017.04.26
쉘 실행시간 확인하기 / time  (0) 2017.04.26