PGR21.com
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다.
통합 규정을 준수해 주십시오. (2015.12.25.)
Date 2016/06/07 22:48:28
Name iMac
Subject [질문] 뮤텍스 & 세마포어에 대해서
OS 공부하다가 책을봐도 이해가 안가는 부분이 있어서 질문글 올립니다.

뮤텍스나 세마포어 둘다 critical section problem을 방지하기위해 사용하는 거잖아요?

근데 뮤텍스는 이해가 가겠습니다.

화장실이 1개이고 열쇠도 1개인 거죠

근데 세마포어는 여러개의 thread 에 대해서 하나의 resource에 대해서 유한한 갯수의 thread가 접근하는게끔  한다는 것 같은데 (count 해서 0되면 막고 등등)


그럼 결국에는 하나의 resource에 대해서  동시 접근이 가능하다는 소리 아닌가요?

세마포어가 어떻게 critical section problem을 해결하는 지 궁금합니다.

감사합니다

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
Je ne sais quoi
16/06/07 23:38
수정 아이콘
제가 예전에 했던 걸 다 까먹어서 지금 정확히 기억이 안 나는데(틀리면 다른 분들이 정정해주실 겁니다 -_-;;)...
semaphore는 실행하는 thread들이 서로 알고 맞춰서(표현을 좀 더 정확히 해야 할텐데 -_-a) 동작을 해야 할겁니다. 그걸 사용자가 할 수 없어서, OS가 제공하는 함수를 사용해야 합니다. 리눅스, 윈도우 등등 OS따라 다를 거예요.
16/06/08 00:11
수정 아이콘
주활용 용도가 조금 다르기는 한데, 뮤텍스는 적어주신 단일 리소스에 대해 쓰기를 하는 경우에 대한 동기화를 보장하기 위해 많이 사용하고, 세마포어를 일반적으로 사용하는 경우는 여러 개의 리소스(예: DB 커넥션 풀 등)에 동시에 접근하는 스레드의 수를 제한하는 경우에 많이 사용됩니다. 그런데 세마포어로 접근을 허용한 여러개의 쓰레드 중 쓰기를 하는 쓰레드가 따로 있다면 쓰기를 하는 부분에 다시 세마포어를 1로 설정하거나 뮤텍스를 걸거나 내부에 다시 critical section을 만들어서 동기화를 보장하도록 하는 것도 가능합니다.
Patrick Jane
16/06/08 01:31
수정 아이콘
세마포어를 4개의 화장실과 4개의 열쇠라고 생각하시면 될거 같아요. 공유자원의 갯수가 1인 세마포어 = 뮤택스인걸로 알고있습니다만... 만약 틀리다면 다른분들이 정정을 해주시겠....
16/06/08 03:26
수정 아이콘
우선 세마포어는 critical section을 만들기 위해 쓰는게 아니구요. 그래서 바이너리 세마포어 제외하면 잘 안 씁니다.
16/06/08 09:20
수정 아이콘
답변해주신분들감사합니다
잉여의슬픔
16/06/08 20:52
수정 아이콘
위에 Unikys님 설명해주신 게 정확한 것 같아요. 대체로 1. 카운트를 1로 설정하면 뮤텍스 처럼 쓸 수 있고 2. 공유된 resource pool 같은 것에 카운트를 총 리소스 수로 설정해서 쓸 수 있고 3. 쓰레드간 signalling으로 쓰일 수 있습니다. 순서가 1번 프로세스가 먼저 실행된 다음에 2번이 실행돼야하면 1번은 V하고 2번은 P하는 식으로요. 여기 정리가 잘 돼있습니다. http://www.cs.cornell.edu/Courses/cs4410/2015su/lectures/lec07-sema.html
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
86065 [질문] 8월말 ~ 9월 초중순 중국 여행지 추천 부탁드립니다 [4] 엑셀3489 16/07/07 3489
86064 [질문] 다이어트 레시피 어플같은 것 있나요? [4] FRAN3762 16/07/07 3762
86063 [질문] 락포트 제품을 구매하려고 하는데요. [6] 삭제됨4171 16/07/07 4171
86062 [질문] 플랫폼, 프레임워크, API 설명 부탁드립니다. [3] 명탐정 코난2415 16/07/07 2415
86061 [질문] 컴퓨터에 있는 동영상 파일 안드로이드 태블릿으로 보는 방법? [2] 방민아이유3143 16/07/07 3143
86060 [질문] [오버워치] 마지막 구역 공격용 캐릭 추천입니다. [6] 캐리건을사랑3124 16/07/07 3124
86059 [질문] '그럼 하지마' 만화에 대한 업계 반응은 어떤가요 [6] 톰슨가젤연탄구이5456 16/07/07 5456
86058 [질문] [서든2] 지금 켠김에 왕까지 생방 종료사유가 뭔가요? [2] 이라세오날3859 16/07/07 3859
86057 [질문] 27, 32인치 중고모니터 추천부탁드립니다 [3] 제이슨므라즈2948 16/07/07 2948
86056 [질문] 스팸이 제 메일 주소로 자꾸 오는데요... [2] 이진아2934 16/07/07 2934
86055 [질문] 안과, 안경원.. 시력 검사는 어디서 하는게 좋을까요? [5] 난순수해7940 16/07/07 7940
86054 [질문] 고백하기에는 많이 늦었나요? [14] 삭제됨4085 16/07/07 4085
86053 [질문] 맨유팬 분들은 포그바 현재 계약 진행을 어떻게 생각하시나요? [38] 별이지는언덕3553 16/07/07 3553
86052 [질문] 클래식곡인데 제목 좀 가르쳐주세요~ [6] 미남주인21951 16/07/07 21951
86051 [질문] [오버워치] 친구 구합니다 [3] RnR2295 16/07/07 2295
86050 [질문] 예비군 동미참 훈련 관련 질문입니다 [6] 글자밥청춘4876 16/07/07 4876
86049 [질문] 영단기 무료배포 책 다 받으셨나요? [26] AminG3550 16/07/07 3550
86047 [질문] [오버워치] 점수 상위% 인지 질문입니다. (+ 수학 정규분포 계산 질문) [7] 트루키7755 16/07/07 7755
86046 [질문] tv 구매에 조언 부탁드립니다 (평면 vs 커브드) [3] 빈라덴닮았다3227 16/07/07 3227
86045 [질문] 2.4ghz 사용하는 무선 헤드셋으로 티비 들을 수 있나요? 더쿤더2232 16/07/07 2232
86044 [질문] 원래 랩에서 가사 돌려쓰기가 흔한가요? [11] 신입사원4597 16/07/07 4597
86043 [질문] 거실에서 사용할 네트워크 플레이어 저가로 구성해봤습니다(스피커 추천 부탁) 귀여운호랑이3635 16/07/07 3635
86042 [질문] 빔 프로젝터 구입하려는데 안시 및 루멘이 뭔가요? [4] 꾸꾸3441 16/07/07 3441
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로