CS/정보처리산업기사
운영체제 기초 활용 - 병행 프로세스
jjh0119
2025. 3. 21. 16:45
01. 병행 프로세스
- PCB를 가진 두 개 이상의 프로세스가 동시에 실행되는 것을 의마한다
- 병행 프로세스의 고려 사항
- 공유자원을 상호 배타적으로 사용해야 한다
- 병행 프로세스들 사이에는 협력 또는 동기화가 이루어져야 한다.
- 교착상탤흘 해결해야 하며 병렬 처리도를 극대화해야 한다.
02. 임계 구역
- 두 개 시상의 프로세스가 운영될 때 서로 공유하게 되는 자원 중에서 상호 배제시켜야 하는 일정 부분의 영역을 의미한다.
- 문제를 해결하기 위한 조건 : 상호배제, 진행, 한계 대기
03. 상호 배제
- 병행 중인 프로세서들 간에 공유 변수를 엑세스하고 있는 하나의 프로세스 이외에는 다른 모든 프로세스들이 공유 변수를 엑세스하지 못하도록 제어하는 기법이다.
- 여러개의 병렬 프로세스가 공통의 변수 또는 자원에 접근한 때, 그 조작을 정단하게 실행하기 위하여 접근 중인 임의의 시점에서 하나의 프로세스만이 그 접근을 허용하도록 제어하는 기법이다.
- 상호배제를 구현하는 기법으로 데커 알고리즘, 피터슨 알고리즘, Test and set 기법, Lamport의 빵집 알고리즘, swap 명령어 등이 있다.
1) 세마포어
- 상호 배제의 원리를 보장하는 것이다.
- 반드시 상호 배제의 원리가 지켜져야 하는 공유 역역에 대해 각각의 프로세스들이 접근하기 위하여 사용되는 두개의 연산 P(Wait)와 V(Signal)를 통해서 프로세스 사의 동기를 유지한다
- 세마포어의 종류
- 이진 세마포어 : 오직 0과 1의 두가지 값을 가진다.
- 산술 세마포어 : 0과 양의 정수를 값으로 가질 수 있다.
2) 모니터
- 병행 다중 프로그래밍에서 상호재베를 구현하기 위한 특수 프로그램 기법이다.
- 구조적인 면에서 공유 데이터와 이 데이터를 처리하는 프로심저의 집합이라 할 수 있다.
- 자료 추상화와 정보 은폐개념을 기초로 한다.
- 공유 데이터와 이 데이터를 처리하는 프로시저로 구성된다.
- 모니터 외부의 프로세스는 모니터 내부의 데이터를 직접 액세스 할 수 없다.
05. 교착상태
- 두 개 의상의 프로세스가 서로 상대방이 사용하고 있는 자원의 사용을 위해 기다리는 현상을 의미한다
교착 상태 발생의 필요 충분 조건
- 상호 배제(Mutual Exclusion) : 한 번에 한 개의 프로세스만이 공유 자원을 사용할 수 있어야 함
- 점유와 대기(Hold and Wait) : 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용되고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 함
- 비선점(Non-Preemption) : 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야 함
- 환형 대기(Circular Wait) : 공유 자원과 공유 자원을 사용하기 위해 대기하는 프로세스들이 원형으로 구성되어 있어야 함