브래의 슬기로운 코딩 생활
운영체제 6주차 정리 - 2 본문
교착 및 기아 상태 - 임계 구역
임계 구역
Critical Area
- 또는 “임계 영역”이라 함
- 공유 자원에 대하여 프로세스(멀티스레드 포함)들의 동시 접근에 한계가 있는 영역
- 임계 구역을 접근할 때에는 반드시 가용 상태를 확인해야 함
프린터 예시
- 만약 프린터장치가 프로세스들의 동시 접근을 허용하게 된다면,
- 프로세스들에 의한 출력 요청 명령 들로 인해 기대 외의 결과물이 나오게 됨
공유 메모리 사용 예시
*result의 값은?
임계 구역 해결 조건
상호 배제(mutual exclusion)
한 프로세스가 임계 구역에 들어가면 다른 프로세스는 그곳에 들어갈 수 없음
한정 대기(bounded waiting)
어떤 프로세스도 무한 대기하지 않아야 함
진행의 융통성(progress flexibility)
다른 프로세스의 진행을 방해해서는 안 됨
세마포어 - Semaphore
임계 구역 접근을 위해 On/Off 표시등(lamp)을 운영
- On 상태 : 사용 중
- Off 상태 : 사용 가능
임계 구역을 접근하는 프로세스들은 이 표시등을 모니터링(반복 수행)
가용상태(Off 상태)이면, 자신이 On시키고 접근
모니터
Monitor
- 공유 자원을 내부로 숨김
- 외부 접속을 차단
- 인터페이스를 통해 공유 자원 갱신 및 데이터 추출
작동 원리
- 요청받은 작업을 모니터 큐에 저장
- 시스템은 모니터 큐의 데이터를 순서대로 처리
- 결과만 해당 프로세스에 알려줌
'2-1 > 운영체제' 카테고리의 다른 글
운영체제 7주차 정리 - 2 (0) | 2023.04.10 |
---|---|
운영체제 7주차 정리 - 1 (0) | 2023.04.10 |
운영체제 6주차 정리 - 1 (0) | 2023.04.07 |
운영체제 5주차 정리 - 3 (0) | 2023.03.30 |
운영체제 5주차 정리 - 2 (0) | 2023.03.30 |