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

(2014-11-14)
1. 병행 프로세스 (Concurrent Process)

  ㅇ 동시에 실행중인 2 이상의 프로세스
     - 다중처리 시스템, 분산처리 시스템의 주요 요소


2. 병행성(Concurrency) 문제

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


3. 프로세스동기적,비동기적 수행 구분비동기적 수행 : 프로세스들 간에 협력을 통해서 만 어떤 기능을 수행
  ㅇ 동기적 수행   : 프로세스들 간에 공유 데이터를 올바로 공유/접근/조작할 수 있도록 함


4. 병행 프로세스 구분

  ㅇ 독립적 프로세스 (단일처리 시스템에서의 병행 프로세스)
     - 실행중인 타 프로세스들에 영향을 주거나 받지 않음
     - 타 프로세스들과 데이터를 공유하지 않음
        . 단일 프로세스 내에서도 병행성 문제 해결 필요
           .. 병행문
           .. 우선순위 그래프(선행 그래프)
           .. Fork/Join 구조

  ㅇ 협력적 프로세스 (비동기프로세스)
     - 다중처리 시스템 내 타 프로세스의 실행에 영향을 주거나 받는 경우
        . 데이터 공유 방식 / 공유 데이터 접근 방식
           .. 논리 주소 공간을 통해 공유 (스레드 등)
           .. 파일 또는 메세지를 통해 데이터를 공유 (프로세스간 통신,IPC)


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


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


[프로세스] 1. 프로세스 2. 선점형 3. 병행 프로세스 4. 멀티 태스킹 5. 스레드

 
        최근수정     요약목록(시험중)     참고문헌