Home 병행프로세스
Post
Cancel

병행프로세스

병행 프로세스

[TOC]

병행프로세스란?

병행프로세스 개념

  1. 프로세스들이 독립적으로 작업을 수행하거나 또는 다른 프로세스와 협력하며 특정 기능 수행

  2. 상호작용 필요 - 제한된 자원을 공유하지 위해서는 프로세스는 서로 동기화되어야 함

  3. 비동기 병행 프로세스 : (비동기) 다른 프로세스들의 진행상태를 전혀 모르고 각기 독립적으로 수행하면서 (병행) 다수의 프로세스들이 동시에 존재하며 공유자원에 접근할 수 있는 프로세스

    -> 프로세스들이 동시에 자원 및 데이터에 접근할 수 있으므로 동기화 알고리즘이 필요

병행프로세스 과제

  1. 공유자원을 서로 베타적으로 사용
  2. 병행프로세스 사이에는 협력 또는 동기화가 이루어져야 한다.
  3. 두 프로세스 사이에는 데이터 교환을 위한 통신이 이루어져야 한다.
  4. 프로세스는 동시에 실행되는 프로세스의 속도와 관계없이 일정한 실행 결과가 보장되어야 한다.
  5. 교착상태를 해결하고 병행프로세스의 병행능력을 극대화해야 한다.
  6. 병행프로세스를 수행하는 과정에서 상호배제를 보장해 주어야한다.

병행 프로세스 표현

선행 그래프

비 순환적이어야 한다. -> 순환 선행 그래프는 모순 발생

  • 두 프로세스 간 존재하는 선행관계를 규칙적으로 표현한 것
  • 선행그래프를 이용하여 병행성을 확인할 수 있다.

언어적 표현과 병행 문장

  1. fork와 join구조

    • fork : 단일 연산을 2개의 독립적인 연산으로 분할

    병행 프로세스와 상호배제

    • join : 2개의 병행 연산을 하나로 결합하는 방법 제공

    img

  2. 병행 문장

    병렬 프로세스를 나타내는 고급언어 구조 (예 - 다익스트라가 제안한 parbegin/parend 구조)

    병행 프로세스와 상호배제

This post is licensed under CC BY 4.0 by the author.