익명 사용자
로그인하지 않음
토론
기여
계정 만들기
로그인
IT위키
검색
세마포어
편집하기
IT위키
이름공간
문서
토론
더 보기
더 보기
문서 행위
읽기
편집
원본 편집
역사
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
[[분류:운영체제]][[분류:기술사 기출]] ;semaphore ;두개의 Atomic한 함수로 제어되는 정수 변수를 이용한 교착 상태 해법 == 개요 == * [[다익스트라|다익스트라(E.J. Dijkstra)]]가 제안 * 상호 배제의 원리를 보장하는 알고리즘 * 임계구역에 대하여 각각의 프로세스들의 접근을 제어하고 프로세스 사이의 동기를 유지 * 잠자기와 깨우기의 연산을 이용하며, 공유 자원의 수를 나타내는 변수를 세마포어 변수 S라고 함 * 세마포어 변수는 일반적으로 정수형 변수 사용 == 세마포어의 종류 == * 이진형 세마포어: 0과 1값, 한개의 공유자원을 상호배제 * 계수형 세마포어 : 0과 양의 정수, 여러개의 공유자원을 상호배제 == 구성 및 구현 == ;P연산과 V연산으로 이루어진다. * 아래는 세마포어 카운트를 1로 가정 * 세마포어의 카운트는 1 이상이며 카운트를 조절하여 진입 가능한 프로세스/스레드 수 조절 가능 === P연산 === ;같이 들어갈 수 없는 임계영역에 들어가고자 하는 프로세스는 P를 거쳐야 한다. <pre> procedure P(S) while S=0 do wait S := S-1 end P </pre> # 최초 S값은 1 # S가 1이면 #* 0으로 만들고 진입한다. # S가 0이면 #* S가 1이 될때 까지 기다린다. === V연산 === ;P연산을 통과해 임계영역의 연산을 끝낸 프로세스가 V연산을 수행하게 된다. <pre> procedure V(S) // 현재상태는 S가 0 S := S+1 // S를 1로 원위치시켜 해제하는 과정 end V // 이제는 다른 프로세스가 들어 올수 있음 </pre> * 최초 S값을 1로 만든다. === 구현 예 === <pre> P(S); ------------------------ 위 험 지 역(Critical Section) = 임계영역 ------------------------ V(S); </pre> == 세마포어와 [[뮤텍스]] == * 세마포어(Semaphore) : 공유된 자원의 데이터를 여러 프로세스가 접근하는 것을 막는 것 * 뮤텍스(Mutex) : 공유된 자원의 데이터를 여러 쓰레드가 접근하는 것을 막는 것 === 차이 === * 세마포어는 뮤텍스가 될 수 있지만 뮤텍스는 세어포어가 될 수 없음 ** (뮤텍스는 상태가 0, 1 두 개 뿐인 이진형 세마포어) * 세마포어는 소유할 수 없는 반면, 뮤텍스는 소유가 가능하며 소유주가 이에 대한 책임 * 세마포어는 파일 형태로 존재하며 전 시스템 범위, 뮤텍스는 프로세스 범위이며 프로세스 종료 시 초기화 == 기술사 기출 == * [http://q.fran.kr/문제/6105 정보관리기술사 66회 1교시] * [http://q.fran.kr/문제/5765 컴퓨터시스템응용기술사 108회 3교시] * [http://q.fran.kr/문제/10082 컴퓨터시스템응용기술사 121회 1교시]
요약:
IT위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
IT위키:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
둘러보기
둘러보기
대문
최근 바뀜
분류별 보기
일반 IT용어
프로젝트 관리
디지털 서비스
블록체인
인공지능
소프트웨어 공학
운영체제
컴퓨터 구조
자료 구조
데이터 과학
데이터베이스
네트워크
프로토콜
보안
컴플라이언스
개인정보보호
표준
경영학
기업 IT
조직/단체
광고
위키 도구
위키 도구
특수 문서 목록
문서 도구
문서 도구
사용자 문서 도구
더 보기
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
문서 기록