병행 프로세스
[TOC]
병행프로세스란?
병행프로세스 개념
프로세스들이 독립적으로 작업을 수행하거나 또는 다른 프로세스와 협력하며 특정 기능 수행
상호작용 필요 - 제한된 자원을 공유하지 위해서는 프로세스는 서로 동기화되어야 함
비동기 병행 프로세스 : (비동기) 다른 프로세스들의 진행상태를 전혀 모르고 각기 독립적으로 수행하면서 (병행) 다수의 프로세스들이 동시에 존재하며 공유자원에 접근할 수 있는 프로세스
-> 프로세스들이 동시에 자원 및 데이터에 접근할 수 있으므로 동기화 알고리즘이 필요
병행프로세스 과제
- 공유자원을 서로 베타적으로 사용
- 병행프로세스 사이에는 협력 또는 동기화가 이루어져야 한다.
- 두 프로세스 사이에는 데이터 교환을 위한 통신이 이루어져야 한다.
- 프로세스는 동시에 실행되는 프로세스의 속도와 관계없이 일정한 실행 결과가 보장되어야 한다.
- 교착상태를 해결하고 병행프로세스의 병행능력을 극대화해야 한다.
- 병행프로세스를 수행하는 과정에서 상호배제를 보장해 주어야한다.
병행 프로세스 표현
선행 그래프
비 순환적이어야 한다. -> 순환 선행 그래프는 모순 발생
- 두 프로세스 간 존재하는 선행관계를 규칙적으로 표현한 것
- 선행그래프를 이용하여 병행성을 확인할 수 있다.