임계구역(3)
-
모니터
👍 모니터란? 컴퓨터의 임계구역을 지키기 위한 알고리즘이 상호배제이며, 그중 대표적인 것이 세마포어라고 하였다. 모니터란 세마포어를 실제로 구현한 프로그램을 말한다. 2020/07/07 - [컴퓨터언어/운영체제] - 임계구역(위험지구)과 상호배제 2020/07/07 - [컴퓨터언어/운영체제] - 세마포어 공유자원(임계구역)을 원하는 프로세스는 반드시 모니터의 진입점(Entry)을 호출해야 하며, 모니터 외부에서는 모니터 내부를 들여다볼 수 없도록 "정보 은폐"가 되어있다. 현재 실행중이지 않은 프로세스는 모두 모니터의 경계에서(모니터 들어오기 전) 상호배제된다.
2020.07.08 -
세마포어
👍 세마포어란? 세마포어는 임계구역을 지키기 위한 기존 상호배제 알고리즘이 바쁜대기 현상을 야기하는 것을 방지하고자 개발된 알고리즘이다. 바쁜대기 현상이란 실행중인 프로세스가 질질 끌기 때문에 다른 프로세스가 자기도 CPU할당을 받고자 계속 기웃거리면서 전력낭비를 초래하는 것인데, 세마포어는 프로세스가 이러한 쓸데없는 기웃거림을 못하도록 그냥 재워버리고 나중에 깨워주는 방식을 채택하였다. 예를 들면 다음과 같다. 어느 미용실에 한 명의 미용사(CPU)와 하나의 미용의자(임계구역)가 있다. 어느 날 손님 한명이 와서 머리를 자르고 있는데, 또다른 손님이 등장하였다. 미용실 카운터(운영체제)는 현재 자리가 하나밖에 없으니 기다리셔야 한다고 막았다(상호배제). 그래서 손님은 자리가 찬 것을 확인하고 나갔다. ..
2020.07.07 -
임계구역(위험지구)과 상호배제
👍 임계구역, 그리고 그것을 지키기 위한 상호배제 다중프로그래밍 방식이 되면서 운영체제는 여러 프로세스가 제한된 공유자원에 동시접근하는 것을 막아야 하는 의무가 생겼다. 여기서 공유자원이라는 것은 CPU, 메모리, 주변장치 같은 물체도 될 수 있고, 프로그램 내 변수도 될 수 있다. 즉 여러 프로세스가 동시에 프린터를 쓸 수 없는 것처럼, 커 다란 프로그램은 여러 프로세스로 분할되어 동작하기 때문에 같은 변수를 참조하는 프로세스끼리는 반드시 코드를 순차실행해야 null이 발생하지 않을 것이다. 이처럼 동시에 사용될 수 없는 공유자원(파일)을 "임계구역(Critical Section)"이라고 한다. 그리고 임계구역을 지키기 위한(동시참조를 막기 위한) 해결방안을 "상호배제"라고 한다. 만약 상호배제로도 문..
2020.07.07