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

(2023-11-19)

Concurrency, 동시성, 병행성, 병렬성 병행성 비교


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

  ㅇ 독립적 프로세스 실행
     - 단일처리 시스템에서, 각각 독립적으로, 여러 프로세스들이 병행 수행되는 것
        . 이 경우, 실행중인 각 프로세스는 타 프로세스들에 영향을 주거나 받지 않음
        . 즉, 타 프로세스들과 데이터를 공유하지 않음

     - 단, 단일 프로세스 내에서 병행성 가능
        . 병행문
        . 우선순위 그래프(선행 그래프)
        . Fork/Join 구조

  ㅇ 협력적 프로세스 실행
     - 다중처리 시스템에서, 프로세스들 간에, 서로 실행에 영향을 주거나 받는 경우 임

     - 데이터 공유 방식 / 공유 데이터 접근 방식 에 의함
        . 논리 주소 공간을 통해 공유 (스레드 등)
        . 공유 변수, 공유 파일 통해 공유
        . 메세지 전달을 통해 데이터를 공유 (프로세스간 통신,IPC)

     - 협력적 수행 방식의 구분
        . 비동기적 수행 : 프로세스들 간에 정교한 협력을 통해서 만 어떤 기능을 수행
        . 동기적 수행 : 프로세스 동기화 (Process Synchronization)
           . 여러 독립 프로세스 간에 처리 순서를 결정하는 것
           . 즉, 여러 프로세스 간 협력시, 누가 먼저 작업할 지, 언제 끝날 지 등을 알려주는 것
           . 또한, 공유 데이터에 대한 올바른 공유/접근/조작할 수 있도록 해야 함


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


3. 병행성 / 동시성 (Concurrency), 병행 프로세스 (Concurrent Process)

  ㅇ 필요한 모든 프로세스들을 동시 실행, 상호 작용이 가능토록 지원하는 것
     - 다중처리 시스템, 분산처리 시스템 등의 필수 요소
        . 프로세스 데이터상태를 다른 프로세스와 공유할 수 있게 하는 등

  ※ 병렬성, 병행성(동시성) 비교
     - 병렬성  :  2 이상의 작업을 동시 수행
        . 여러 프로세스(스레드)가 동시 진행
     - 병행성  :  2 이상의 작업을 동시 지원
        . 여러 프로세스(스레드)가 진행 가능

     * 만일, 
        . 단일 프로세서가, 시분할 처리로, 여러 프로세스들을 동시 수행하는 것 처럼 할 수 있지만,
           .. 이는, 병행하게 실행하지만, 병렬로 실행하는 것은 아님
        . 여러 프로세서가, 각각 분담 처리함으로써, 동시에 병렬로 수행하면, 
           .. 이는, 병행성과 병렬성을 동시 만족하는 것임


4. 병행성 문제

  ㅇ 한정된 자원(CPU,메모리,디스크,I/O 등)의 동시 사용 상의 문제들
     - (주로, 사용 순서의 문제)

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


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


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

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

병렬처리
   1. 병렬 컴퓨팅   2. 대칭형 다중 프로세싱   3. 클러스터링   4. 병행 프로세스  
프로세스
   1. 프로세스   2. 선점형   3. 병행 프로세스   4. 멀티 태스킹   5. 스레드   6. 런타임 메모리  


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