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. 런타임 메모리  

  1. Top (분류 펼침)      :     1,591개 분류    6,514건 해설

"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"
     [정보통신기술용어해설]       편집·운영 (차재복)          편집 후원          편집 이력