RadarURL

프로그래밍
2013.07.04 07:05

뮤텍스(Mutex)와 세마포어(Semaphore)

조회 수 4241 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

동기화

리눅스 커널은 동기화와 독점적인 접근을 허용하기 위해 다양한 방법을 사용하고 있다. 여러 프로세스가 동일한 자원을 조작할 경우에 세마포어를 이용하는 것이 편리하다. 멀티 프로세서 환경에서 여러 CPU가 동시에 참조하는 테이블을 보호하기 위해서는 스핀락(spin lock)을 이용하는 것이 가장 일반적이다.  

뮤텍스(Mutex)란?
MUTual EXclusion 으로 상호배제라고도 한다. 
Critical Section을 가진 스레드들의 Runnig Time이 서로 겹치지 않게 각각 단독으로 실행되게 하는 기술이다.  다중 프로세스들의 공유 리소스에 대한 접근을 조율하기 위해 locking과 unlocking을 사용한다. 
즉, 쉽게 말하면 뮤텍스 객체를 두 스레드가 동시에 사용할 수 없다는 의미이다. 

세마포어(Semaphore)란?
세마포어는 리소스의 상태를 나타내는 간단한 카운터로 생각할 수 있다. 일반적으로 비교적 긴 시간을 확보하는 리소스에 대해 이용한다. 유닉스 시스템의 프로그래밍에서 세마포어는 운영체제의 리소스를 경쟁적으로 사용하는 다중 프로세스에서 행동을 조정하거나 또는 동기화 시키는 기술이다. 세마포어는 운영체제 또는 커널의 한 지정된 저장장치 내 값으로서, 각 프로세스는 이를 확인하고 변경할 수 있다. 확인되는 세마포어의 값에 따라, 그 프로세스가 즉시 자원을 사용할 수 있거나, 또는 이미 다른 프로세스에 의해 사용 중이라는 사실을 알게 되면 재시도하기 전에 일정 시간을 기다려야만 한다. 세마포어는 이진수 (0 또는 1)를 사용하거나, 또는 추가적인 값을 가질 수도 있다. 세마포어를 사용하는 프로세스는 으레 그 값을 확인하고, 자원을 사용하는 동안에는 그 값을 변경함으로써 다른 세마포어 사용자들이 기다리도록 해야한다.

- 프로세스 간 메시지를 전송하거나 혹은 공유 메모리를 통해서 특정 데이터를 공유하게 될 경우 발생하는 문제는 공유된 자원에 여러 프로세스가 접근하면서 발생하다. 하나의 프로세스만 접근을 가능하도록 해야할 때 세마포어를 사용한다.  
- 바이너리 세마포어랑 세마포어의 값이 0과 1만을 지니도록 구현된 세마포어를 말한다.  
 
* 뮤텍스와 세마포어의 차이점
- 세마포어는 뮤텍스가 될 수 있지만 뮤텍스는 세마포어가 될 수 없다.
- 세마포어는 소유할 수 없는 반면 뮤텍스는 소유가 가능하며 소유주가 이에 대한 책임을 진다. 
- 뮤텍스의 경우 뮤텍스를 소유하고 있는 쓰레드가 이 뮤텍스를 해제할 수 있다. 하지만 세마포어의 경우 이러한 세마포어를 소유하지 않는 스레드가 세마포어를 해제할 수 있다. 
- 세마포어는 시스템 범위에 걸쳐있고 파일시스템상의 파일 형태로 존재한다. 반면 뮤텍스는 프로세스 범위를 가지며 프로세스가 종료될 때 자동으로 clean up된다. 
★★★ 가장 큰 차이점은 관리하는 동기화 대상이 갯수이다.
뮤텍스는 동기화 대상이 오직 하나뿐일 때, 세마포어는 동기화 대상이 하나 이상일 때 사용한다.  

 

출처 : http://ninako21.tistory.com/500

?

공부 게시판

공부에 도움되는 글을 올려주세요.

  1. [공지] 공부 게시판 입니다.

    Date2003.08.18 By처누 Views933223
    read more
  2. 변호사가 보아온 상간남들의 공통점

    Date2025.11.25 Category연애 ByJaeSoo Views146
    Read More
  3. 윈도우11 비밀번호 분실시 설정 변경방법 (Windows10 포함)

    Date2025.11.06 Category윈도우즈 ByJaeSoo Views112
    Read More
  4. 홍콩 보내주다를 뜻하는 영어 표현 한가지를 노래를 통해 배워보자

    Date2025.10.28 Category연애 ByJaeSoo Views182
    Read More
  5. 향수 잔향 기간별 구분

    Date2025.10.28 Category생활 ByJaeSoo Views134
    Read More
  6. Question about Korean - What does 홍콩을 보내다 mean?

    Date2025.10.28 Category생활 ByJaeSoo Views167
    Read More
  7. 리눅스 서버 설치 중 에러 "Failed to find a suitable stage1 device"

    Date2025.10.03 Category유닉스/리눅스 ByJaeSoo Views172
    Read More
  8. Linux 11 . Linux 설치 시 lvm 수동설정

    Date2025.10.03 Category유닉스/리눅스 ByJaeSoo Views147
    Read More
  9. [Rocky Linux] 누구나 쉽게 따라하는 Rocky Linux 9.0 OS 다운로드 및 설치 방법~!!

    Date2025.10.03 Category유닉스/리눅스 ByJaeSoo Views178
    Read More
  10. Linux/Rocky Linux Rocky Linux : Composer 설치

    Date2025.09.29 Category유닉스/리눅스 ByJaeSoo Views181
    Read More
  11. [Rocky Linux] 록키 리눅스 최신 업데이트 적용 방법

    Date2025.09.29 Category유닉스/리눅스 ByJaeSoo Views183
    Read More
  12. rocky linux 커널 업데이트

    Date2025.09.29 Category유닉스/리눅스 ByJaeSoo Views208
    Read More
  13. [Windows] OWASP ZAP 사용법

    Date2025.09.29 Category웹서버,WAS ByJaeSoo Views168
    Read More
  14. [웹 취약점] 웹서버 디렉토리 리스팅 방지

    Date2025.09.29 Category웹서버,WAS ByJaeSoo Views167
    Read More
  15. Clonezilla(클론질라) 백업파일 하드디스크로 복구 방법

    Date2025.09.28 Category유닉스/리눅스 ByJaeSoo Views179
    Read More
  16. 클론질라 사용 방법 - OS 이미지 백업 CloneZilla

    Date2025.09.28 Category유닉스/리눅스 ByJaeSoo Views221
    Read More
  17. [Linux / Rocky] FTP 접속 관련 설정 실습 예제

    Date2025.09.23 Category유닉스/리눅스 ByJaeSoo Views215
    Read More
  18. Could not reliably determine the server's fully qualified domain name

    Date2025.09.23 Category유닉스/리눅스 ByJaeSoo Views208
    Read More
  19. [아파치] 아파치 웹서버에 .htaccess 파일 설정하는 방법

    Date2025.09.23 Category유닉스/리눅스 ByJaeSoo Views279
    Read More
  20. [Linux] Apache web server의 rewrite module 사용하기 [출처] [Linux] Apache web server의 rewrite module 사용하기|작성자 g00dmoney

    Date2025.09.23 Category유닉스/리눅스 ByJaeSoo Views200
    Read More
  21. 록키 리눅스 9.1에서 apache, mysql, PHP 설치

    Date2025.09.23 Category유닉스/리눅스 ByJaeSoo Views204
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 126 Next
/ 126


즐겨찾기 (가족)

JAESOO's HOMEPAGE


YOUNGAE's HOMEPAGE


장여은 홈페이지


장여희 홈페이지


장여원 홈페이지


즐겨찾기 (업무)

알리카페 홀릭

숭실대 컴퓨터 통신연구실 (서창진)

말레이시아 KL Sentral 한국인 GuestHouse


즐겨찾기 (취미)

어드민아이디

유에코 사랑회

아스가르드 좋은사람/나쁜사람

JServer.kr

제이서버 메타블로그

재수 티스토리


즐겨찾기 (강의, 커뮤니티)

재수 강의 홈페이지


한소리


VTMODE.COM


숭실대 인공지능학과


숭실대 통신연구실


베너