cs

OS - 병행 프로세스

joepasss 2022. 5. 15. 13:37

병행 프로세스


 * 상호 간 제어 없이 동시에 실행상태에 있는 두 개 이상의 프로세스를 의미
 * 한정된 자원에 대한 사용순서 등 여러가지 문제가 발생할 수 있는 데 이 때 임계영역, 상호배제 기법, 동기화 기법 이용

1. 단일 프로세스 내의 병행수행


  1. 우선순위 그래프 (선행 그래프)
    • 제약을 규칙적(논리적)으로 표현한 것
    • 어떤 계산의 일부에 대한 우선순위 제약조건을 정의하는 데 유용한 방법이지만 2차원이므로 프로그래밍 언어에 사용하기는 어렵다

 

우선순위 그래프

 

  1. Fork, join 구조
    • 병행을 언어적 표현으로 명시함으로써 프로그램을 구성하는 여러 문장의 선행관계를 표현할 수 있도록 함
    • Fork
      • 프로그램에서 두 개의 병행수행을 만드는 명령어
      • 단일연산을 두 개의 독립적인 연산으로 분할
    • join
      • 병행하는 여러 개의 연산을 하나로 재결합
      • join할 연산의 수를 명시하는 매개변수를 가진다

 

fork-join

 

  1. 병행문 (concurrent statement)
    • 프로세스 하나가 여러 개의 병렬 프로세스 단위로 나누어졌다가 다시 하나로 모아지는 것을 나타내는 고급언어구조
    • parbegin/parend 등이 있다
      • parbegin S1; S2; ... ... Sn; parend;
      • 각각의 Si는 단일명령 문장이고 parbegin과 parend 사이에 있는 모든 명령문은 병행으로 수행가능

 

병행문

 

단일 프로세서 병행수행 정리

종류 내용
우선순위 그래프 제약(선행관계)을 그래프로 표현
fork, join fork 로 연산 분기 join으로 연산 합침
병행문 parbegin - parend
parbegin과 parend 사이에 있는 모든 명령은 병행수행 가능

 

2. 멀티프로세싱 환경


 * 다수의 프로세서를 이용한 동시 수행 과정을 통해 시스템의 성능을 향상
 * 각각의 프로세서는 자체 계산능력과 공유 기억장소를 통해 주변장치를 공동으로 이용
 * 프로세스가 두 개 이상 존재하며 하드웨어적 관점에서의 병행처리
  1. Master/Slave 환경
    • 다수의 프로세서 중 하나의 프로세서가 '주(Master)'으로 지정되어 운영체제를 실행하고 연산과 입출력 수행
    • 나머지 프로세서들은 사용자 수준의 프로그램을 실행할 수 있는 '종(slave)'으로 지정되어 연산만 수행
    • 구현하기 가장 쉬우나 프로세서들이 동등한 입장이 아니여서 (master에 종속되어 수행되기 때문에) 하드웨어를 최적으로 사용할 수 없다

 

Master / Slave

 

  1. 연식결합 시스템
    • 약결합 (loosely coupled), 느슨한 결합
    • 2개 이상의 독립된 컴퓨터시스템이 각각 독립적으로 운영, 통신선을 이용해 연결되어 있는 형태
    • 분산처리 시스템 구조

 

연식결합

 

  1. 경식결합 시스템
    • 강결합 (tightly coupled)
    • 2개 이상의 프로세서들이 메모리와 클록을 공유하는 시스템
    • 다중 프로세서 구조

 

강식결합

 

  1. 대칭 다중처리 구조
    • 모든 프로세서가 동등한 입장의 대칭성을 가지는 구조
    • 구현 및 수행이 매우 복잡하지만 가장 강력한 시스템
    • 여러 프로세서가 한 운영체제를 동시에 수행할 수 있어 재진입 코드와 상호배제가 필요하며 대칭적이므로 다른 기법보다 작업부하를 효과적으로 분산 가능하다

 

대칭 다중처리

 

4. 분리 수행

  • 각 프로세서들이 독립적으로 자원을 가지는 단일 프로세서 시스템 처럼 독자적인 운영체제와 기능을 가지는 형태
  • 각 프로세서 운영체제는 독립적으로 자신의 테이블을 가지고 있어 자원에 대한 경쟁이 적다

 

분리 수행

멀티 프로세싱 병행 프로세스 정리

종류 내용
Master / Slave * 프로세서들이 주종관계를 이룬다
* 주 = 운영체제, 종 = 사용자 프로그램
연식결합 * 각 컴퓨터시스템이 네트워크 (통신선)으로 연결
경식결합 * 2개 이상의 프로세서들이 메모리와 클록을 공유
대칭 다중처리 구조 * 모든 프로세서가 동등한 입장의 대칭성을 가짐
분리 수행 * 프로세서마다 독자적인 운영체제를 가짐