New World

[운영체제#4,5] 병행 프로세스 본문

Self-Study/Study

[운영체제#4,5] 병행 프로세스

hyeovi 2022. 6. 1. 01:46
728x90
반응형

01 병행 프로세스의 개념

병행성 : 여러 개의 프로세스 또는 쓰레드가 동시에 실행되는 시스템의 특성

- 형식 : 하나의 CPU에서 인터러빙 형식, 여러 개의 CPU에서 병렬 처리 형식(강결합 - 공유 메모리, 약결합 - 분산 메모리)

- 문제

-- 병행 프로세스들이 상호작용하는 경우(공유자원 점유, 동기화, 통신 문제)

-- 상황에 따른 구분(단일 프로세스 내, 프로세스 간)

 

단일 프로세스 내의 병행성

우선순위 그래프  
장점 : 문장
방향 있는 간선 : 우선순위 관계
Fork / Join 구조  
fork L : 2개의 병행 수행 (레이블 L 위치, fork 명령어 다음)
join n : 병행하는 n개의 흐름을 하나로 재결합

병행문  
1개의 프로세스가 여러 가닥의 병렬 프로세스로 분할되었다가 하나로 결합
parbegin / parend 문

비동기 병행 프로세스 : 값을 공유하여 원래 나와야 하는 값과 차이 발생

 

02 동기화와 임계영역

프로세스 동기화 : 2개 이상의 프로세스에 대한 처리순서를 결정

임계영역 : 2개 이상의 프로세스가 동시에 액세스하면 안되는(상호배제) 공유자원을 액세스하는 코드영역

해결방안

- 상호배제 : 프로세스가 임계영역에서 실행 중인 경우 어떤 프로세스도 임계영역에서 실행 X

- 진행 : 임계영역에서 실행 중인 프로세스가 없고 여러 프로세스가 임계영역에 진입하고자 할 때 그 중에서 적절히 한 프로세스를 결정해야 하며 이 결정은 무한정 미룰 수 없음

- 제한된 대기 : 한 프로세스가 임계영역 진입 요청을 한 후 수락될 때까지 다른 프로세스가 임계영역 진입을 허가 받는 횟수는 제한

 

문제 해결법

- Test and Set : 상호배제의 하드웨어적 해결 방법, 분리가 불가능한 단일 기계 명령어(원자적으로 수행)

문제점

- 많은 프로세스가 임계영역에 들어가기 원할 때, 기아 발생

- Busy waiting을 함으로써 다른 작업이 사용할 수 있는 CPU 사이클을 낭비

※ 기아 : 프로세스가 필요한 자원할당을 받지 못하고 계속적으로 대기하게 되는 상황

 

- 세마포어

세마포어 s

- 사용 가능한 자원의 수 또는 잠김/열림 등의 상태를 나타내는 값을 저장하는 정수형 공용변수

- 세마포어 s는 두 표준단위 연산 P와 V에 의해서만 접근됨

 

동기화 문제해결


정답 : 4
4. 분산 메모리 구조에서도 병행 프로세스 처리 가능
정답 : 2
1. 상호배제 공유 자원을 액세스하는 코드 여역
정답 : 1
1. 임계 영역 해결을 위한 도구
정답 : 2
정답 : 2
정답 : 3
정답 : 1
정답 : 2
정답 : 4
정답 : 3

 


01 프로세스의 상호협력

병행 프로세스 : 공통 작업을 수행하기 위해 서로 협동하는 경우

판독기/기록기의 문제 (=> 상호배제 필요)

- 우선순위에 따른 문제의 변형

- 제1판독기/기록기 문제(판독기 우선) : 기록기의 기아상태 유발 가능

- 제2판독기/기록기 문제(기록기 우선) : 판독기의 기아상태 유발 가능

 

02 프로세스 간의 통신

병행 프로세스 사이의 통신을 위한 방법 (단일 운영체제 내에서 동시에 사용 가능) 

공유기억장치 기법 메시지 시스템 기법
고속통신 가능 소량의 데이터 교환
책임 : 응용 프로그래머 책임 : 운영체제
프로세스 간에 공유 변수를 이용해 정보를 교환 메시지 교환방식으로 정보를 교환, send/recive 연산자

 

메시지 시스템 기법의 예외조건 처리

프로세스 종료 메시지 상실 메시지 혼합

 


정답 : 4
정답 : 1
2, 3, 4는 메시지 시스템 기법에 대한 설명
정답 : 4
반응형
Comments