-
운영체제 - 6(모니터, IPC)OS 2019. 6. 28. 14:05
상호배제 / 동기화
1. 모니터 등장 이유
- 세마포어 변수에 영향을 미치는 P, V 연산이 프로그램 전체에 널리 퍼져 세마포어에 미치는 영향 파악이 어렵다
-> 프로그램 작성 어려움 -> 상호배제 및 프로세스 사이의 조정을 위한 유연성, 강력한 도구가 필요
2. 모니터 프로세스의 동기화 기법
- 모니터 : 조직적인 구성체를 두어 공유자원, 임계영역을 체계적으로 관리
- 일종의 클래스 개념으로 묶어버린 소프트웨어 모듈 객체
- 모니터 경계에서 한번에 한 프로세스만 진입하도록 제어되므로 상호 배제 원칙을 지킬 수 있음
IPC(Inter Process Communication)
- 프로세스 간에 서로 데이터를 주고받기 위한 목적의 커뮤니케이션
1. Shared Memory : 공유 메모리
- 프로세스 A와 B 간에 메모리를 공유하여 데이터를 주고받게 함(ex)UNIX 공유메모리)
2. Message Passing System
- 두 개의 프로세스 간 메시지 형태의 데이터를 송신/수신
- 프로세스 A가 B에게 전송할 메시지를 커널 내 메시지 큐로 보내고, 프로세스 B는 메시지 큐로부터 가지고온다.
1) 직접 통신 방식
: 직접적으로 송신사가 수신자의 이름을 명시하여 링크
- 실시간 전송 가능 But 수신자가 반드시 준비가 되어있어야만 보낼 수 있다는 단점 존재
2) 간접 통신 방식
- 송수신자를 분리
- 수신자의 가용성에 상관 없이 송신자가 보낼 수 있음 / 메시지사용의 융통성 제공
3) 예외조건
- 발생할 수 있는 예외조건을 처리해야만 함
(1) 프로세스가 종료되는 경우
- 수신자가 종료되어 메시지를 받지 못함
- 수신자가 메시지를 받더라도 송신자에게 응답을 보내지 못하므로 송신자는 계속 wait하게 됨
(2) 메시지 분실
- 송신자가 보내는 메시지 자체가 분실
- 수신자가 보내는 응답 메시지가 분실
(3) 메시지 훼손
- 송신자가 보낸 메시지가 훼손되어 전달
'OS' 카테고리의 다른 글
운영체제 - 8(CPU 스케줄링) (0) 2019.07.03 운영체제 - 7(교착상태) (0) 2019.07.02 운영체제 - 5(++ 병행프로세스/상호배제 해결법) (0) 2019.06.27 운영체제 - 4(쓰레드, 병행프로세스) (0) 2019.06.26 운영체제 - 3 (프로세스) (0) 2019.06.26