Concurrent Process   병행 프로세스, 협력 프로세스

(2021-06-28)

Concurrency, 동시성, 병행성


1. 병행 프로세스 (Concurrent Process)

  ㅇ 동시에 2 이상의 프로세스들이 실행되는 것
     - 다중처리 시스템, 분산처리 시스템 등의 필수 요소


2. 프로세스 간의 협력 이유정보 공유
  ㅇ 계산 속도 향상
  ㅇ 모듈적 구성 강화
  ㅇ 편의성 증대
     - 例) 한 사용자가 편집,인쇄 등 여러 태스크를 병렬로 수행


3. 프로세스의 구분운영체제에서 실행되는 프로세스는 크게 다음 둘 중의 하나 임

  ㅇ 독립적 프로세스 
     - 단일처리 시스템에서, 각각 독립적으로 여러 프로세스들이 병행 수행되는 것
        . 이 경우, 실행중인 각 프로세스는 타 프로세스들에 영향을 주거나 받지 않음
        . 즉, 타 프로세스들과 데이터를 공유하지 않음
     - 단, 단일 프로세스 내에서 병행성 가능
        . 병행문
        . 우선순위 그래프(선행 그래프)
        . Fork/Join 구조

  ㅇ 협력적 프로세스 
     - 다중처리 시스템 내 타 프로세스의 실행에 영향을 주거나 받는 경우 임
     - 데이터 공유 방식 / 공유 데이터 접근 방식 에 의함
        . 논리 주소 공간을 통해 공유 (스레드 등)
        . 공유 변수, 공유 파일 통해 공유
        . 메세지 전달을 통해 데이터를 공유 (프로세스간 통신,IPC)
     - 협력적 수행 방식의 구분
        . 비동기적 수행 : 프로세스들 간에 정교한 협력을 통해서 만 어떤 기능을 수행
        . 동기적 수행 : 프로세스 동기화 (Process Synchronization)
           . 여러 독립 프로세스 간에 처리 순서를 결정하는 것
           . 즉, 여러 프로세스 간 협력시, 누가 먼저 작업할 지, 언제 끝날 지 등을 알려주는 것
           . 또한, 공유 데이터에 대한 올바른 공유/접근/조작할 수 있도록 해야 함


4. 병행성/동시성 (Concurrency) 문제

  ㅇ 한정된 자원(CPU,메모리,디스크,I/O 등)의 동시 사용 상의 문제들 (주로, 사용 순서의 문제)
     - 공유 자원(프린터,통신망 등)의 배타적 사용 문제 (한 순간에 한 프로세스 만 사용)
     - 하나의 기능(공유 데이터 조작)을 함께 수행함에 따른 동기화(Synchronization) 문제
     - 자료 교환을 위한 메세지 전달 방식 상의 통신(Communication) 문제
     - 교착상태(Deadlock) 문제
     - 실행순서와 관계없이 항상 같은 결과를 얻어야하는 결정성(Determinacy) 문제


5. 병행성/동시성 (Concurrency) 수준프로그램 실행 상에서, 동시성에 대한 4가지 다른 수준
     - 명령어 수준 (2 이상의 기계 명령어의 동시 실행)
     - 문장 수준 (2 이상의 문장을 동시 실행)
     - 단위 수준 (2 이상의 부프로그램 단위를 동시 실행)
     - 프로그램 수준 (2 이상의 프로그램을 동시 실행


6. 임계 구역, 상호 배제
  
  ㅇ 임계 구역 (Critical Section)
     - 어떤 프로세스가 공유 자원에 접근하고 있는 동안 그 프로세스는 임계구역에 있다고 함

  ㅇ 상호 배제 (Mutual Exclusion)
     - 동시에 여러 프로세스들이 하나의 공유 자원을 사용할 수 없도록 하는 것
        . 한 프로세스가 임계구역에서 수행중일 때 타 프로세스가 그 공유 자원을 사용 못하게 하는 것



Copyrightⓒ written by 차재복 (Cha Jae Bok)       편집이력
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"