병행 프로세스의 동기화 유형 [임계 영역, 상호 배제, 세마포어, 모니터]

2020. 10. 6. 14:56CS 필기 노트/OS

반응형

 

한 프로세스가 공유 메모리를 사용하고 있을 때, 다른 프로세스들이 사용하지 못하도록 배제시키는 기법이다.

교착 상태가 발생하지 않음을 보장하는 데커 알고리즘, 피터슨 알고리즘을 통해 상호 배제 기법을 구현한다.

 

교착 상태 : 둘이상의 프로세스들이 서로 다른 프로세스가 차지하고 있는 자원을 무한정 기다리고 있는 상태.

 

 

교착상태가 발생할 때 :

1. 상호 배제 - 중복이 안되도록 막기 때문에 계속 기다려질 수 있다.

2. 점유와 대기 - 자원을 점유하고 있는 프로세스가 다른 자원을 기다릴때 나타남

3. 비선점 - 사용이 종료될 때까지 강제로 해제할 수 없을때 나타남

4. 순환 대기 - 각 프로세스는 순환적으로 다음 프로세스가 요구하는 자원을 가지고 있을때 나타남

 

 

 

임계 구역

 

상호 배제의 문제로 자원이 프로세스에 의해 반납되면,

다른 프로세스에서 자원을 이용할 수 없도록 막아놓은 영역

 

임계구역의 원칙 : 

순서를 지키며 신속히 사용한다.

무한루프에 빠지지 않도록 주의 한다.

인터럽트가 불가능한 상태로 만들어야한다.

 

 

 

세마포어

 

다익스트라가 고안한 프로세스 간 동기화 문제 해결 도구로, 연산들을 통해 동작한다.

종류는 이진 세마포어와 산술 세마포어로 구성되어 있다.

 

동작 원리

초기화 - 대기 큐를 할당하고 초기화

P연산 - 자원 할당, V연산 - 자원 해제 상태

 

 

 

모니터

 

두 개 이상의 프로세스 들이 특정 공유 자원과 공유 자원 그룹을 할당하는데 필요한 데이터 및 프로시저를 포함하는

병행성 구조 이다.

 

특징으로는 한 시점에 단 하나의 프로세스만 모니터 내부에 실행된다.

또한 세마포어 보다 높은 단계의 동기화 메소드로 사용하기가 용이하다.

반응형

'CS 필기 노트 > OS' 카테고리의 다른 글

기억 장치 관리 전략  (0) 2020.10.06
프로세스 스케줄링  (0) 2020.10.06
프로세스와 스레드  (0) 2020.10.06
언어 번역 프로그램과 링커, 로더  (0) 2020.10.06
운영체제의 운영 방식, 성능 평가 기준  (0) 2020.10.05