-
모니터운영체제/프로세스 동기화 2018. 2. 4. 01:07
세마포어를 이용하여 임계 구역 문제를 해결할 때 프로그래머가 세마포어를 잘못 사용할 경우 다양한 유형의 오류가 쉽게 발생한다.
이 오류는 상호 배제 요구 조건을 위반하거나 교착 상태를 발생시킨다
모니터는 쉽고 효율적인 프로세스 동기화 수단을 제공하는 고급 언어 수준의 동기화 구조물이다.
모니터 사용법
추상 데이터 형은 데이터와 이 데이터를 조작하는 함수들의 집합을 하나의 단위로 묶어놓은 것이다.
모니터 형의 표현은 다른 프로세스들이 직접 사용할 수 없고, 모니터 내에 정의된 함수만이 모니터 내의 지역 변수와 형식 매개변수들에 접근할 수 있다.
모니터 구조물은 모니터 안에 항상 하나의 프로세스만이 활성화 될 수 있도록 보장한다.
모니터 구조물은 동기화 기법을 모델링하는 데에는 충분한 능력을 제공하지 않기 때문에 condition 이라는 구조물이 사용된다.
이 condition 변수에 호출될 수 있는 연산은 오직 wait 와 signal 뿐이다.
wait 연산을 호출한 프로세스는 다른 프로세스가 signal을 호출 할 때까지 일시 중단한다.
signal 연산은 정확히 하나의 일시 중단 된 프로세스를 재개한다.
만약 일시 중단된 프로세스가 없을 경우 signal 연산은 아무 효과가 없다.
댓글