#3 신입 프로그래머가 필요한 기본 소양
# 운영체제
세마포어와 뮤텍스에 대해 각각 설명하고 차이점에 대해 설명해보아라.
- 세마포어(Semaphore)
- 운영체제 또는 프로그램 작성 내에서 공유 자원에 대한 접속을 제어하기 위해 사용되는 신호이다.
- 공유자원에 접근 할 수 있는 최대 허용치만큼만 동시에 사용자 접근이 가능하다.
- 쓰레드들은 리소스 접근 요청을 할 수 있고 세마포어에서는 카운트가 하나씩 줄어들게 되며 리소스가 모두 사용중인 경우(카운트 0) 다음 작업은 대기를 하게 된다.
- 뮤텍스(Mutex)
- 상호배제, 제어되는 섹션에 하나의 쓰레드만을 허용하기 때문에 해당 섹션에 접근하려는 다른 쓰레드들을 강제적으로 막음으로써 첫번째 쓰레드가 해당 섹션을 빠져나올 때 까지 기다린다.
- 대기열(큐) 구조라고 생각하면 된다.
- 차이점
- 세마포어는 뮤텍스가 될 수 있지만 뮤텍스는 세마포어가 될 수 없다.
- 세마포어는 소유 불가능이지만 뮤텍스는 소유가 가능하다.
- 동기화의 갯수가 다르다.
'기술면접' 카테고리의 다른 글
[기술면접 기초] 프로그래머 (0) | 2017.11.17 |
---|---|
#5 신입 프로그래머 기술(실무) 면접준비 [프로그래밍 기본] (0) | 2017.10.29 |
#4 신입 프로그래머 기술(실무) 면접준비 [네트워크] (0) | 2017.10.28 |
#2 신입 프로그래머 기술(실무) 면접준비 [자료구조] (0) | 2017.09.22 |
#1 신입 프로그래머 기술(실무) 면접준비 [데이터베이스] (0) | 2017.09.22 |