본문 바로가기

컴퓨터공학

[1일1cs] 세마포어 뮤텍스

지금은 자신있는 운영체제문제다.

세마포어는 lock을 잡는 쓰레드 개수를 조정한다.
lock을 잡는 이유는 공유 자원에 동시 접근해 문제가 생기는 race condition방지.

즉 세마포어 함수는 정수값을 인자로 갖는 객체인데, 정수값은 쓰레드 개수이다 여기서 양수면 사용중인 쓰레드남은 개수이고 음수면 대기중인 쓰레드 개수이다.
즉 멀티 쓰레드가 공유 자원 접근 시 사용
semwait() 하면 감소
sempost() 하면 증가 및 대기중인 쓰레드를 깨워줌. 뮤텍스는 하나의 쓰레드를 기반으로 한 상호 배제 기법. 공유자원에 접근 권한이 있는 쓰레드만 사용가능. 나머지는 걍 대기해라. (상호 배제의 약자 이기도함) 세마포어와 달리 접근 쓰레드개수가 only 1개.
lock unlock사용.

기똥찬 설명 링크: https://worthpreading.tistory.com/m/90

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

이 글은 Medium에 개시된 글입니다. Medium에서 보시면 좀 더 유쾌한 환경에서 글을 보실 수 있습니다. 뮤텍스(Mutex)와 세마포어(Semaphore)의 차이 Toilet problem 동시성 프로그래밍의 가장 큰 숙제는 ‘공

worthpreading.tistory.com

나중에 기억 안날때 보면 바로 기억날듯...