본문 바로가기
CS/운영체제

[OS] 조건 변수와 모니터

by yoon_seon 2023. 9. 9.

기존 동기화 도구의 문제점은 세마포어를 누락하거나, wait과 signal 순서를 햇갈린 경우 등 실수를 할 수 있다는 것이다.

이런 것들을 방지하기 위해서 사용이 간편한 동기화 도구를 모니터라고 한다.(입출력장치의 모니터가 아닌 동기화도구 모니터임)

 

모니터

  • 공유 자원에 접근하기 위한 인터페이스를 분리해둔 방식
  • 정해진 인터페이스를 통해서만 공유자원에 접근할 수 있도록 만들어둔다. 이를 통해 상호 배제가 보장된다.
  • 실행 순서 제어를 위한 동기화를 위해 조건 변수를 사용한다.

조건 변수

현재 프로세스의 상태를 상황에 따라 변경할 수 있는 특별한 변수로 wait(), signal()연산이 가능한 변수다.

  • wait() : 호출한 프로세스를 대기 상태로 전환
  • signal() : 호출한 프로세스를 깨움

조건변수를 활용한 실행 순서 제어

  1. 아직 실행될 조건이 되지 않았을 때에는 wait을 통해 실행 중단
  2. 실행될 조건이 충족되었을 때에는 signal을 통해 실행 재개

모니터를 활용하는 대표적인 프로그래밍 언어로 java의 synchronized가 있다.

'CS > 운영체제' 카테고리의 다른 글

[OS] 페이징과 페이지 테이블  (0) 2023.09.10
[OS] 교착상태와 해결 방법  (0) 2023.09.10
[OS] 뮤텍스 락과 세마포어  (0) 2023.09.09
[OS] 프로세스 동기화  (0) 2023.09.09
[OS] 리눅스 스케줄링  (0) 2023.09.08

댓글