CS/정보처리산업기사

운영체제 기초 활용 - 병행 프로세스

jjh0119 2025. 3. 21. 16:45

01. 병행 프로세스

  • PCB를 가진 두 개 이상의 프로세스가 동시에 실행되는 것을 의마한다
  • 병행 프로세스의 고려 사항
    • 공유자원을 상호 배타적으로 사용해야 한다
    • 병행 프로세스들 사이에는 협력 또는 동기화가 이루어져야 한다.
    • 교착상탤흘 해결해야 하며 병렬 처리도를 극대화해야 한다.

02. 임계 구역

  • 두 개 시상의 프로세스가 운영될 때 서로 공유하게 되는 자원 중에서 상호 배제시켜야 하는 일정 부분의 영역을 의미한다.
  • 문제를 해결하기 위한 조건 : 상호배제, 진행, 한계 대기

03. 상호 배제

  • 병행 중인 프로세서들 간에 공유 변수를 엑세스하고 있는 하나의 프로세스 이외에는 다른 모든 프로세스들이 공유 변수를 엑세스하지 못하도록 제어하는 기법이다.
  • 여러개의 병렬 프로세스가 공통의 변수 또는 자원에 접근한 때, 그 조작을 정단하게 실행하기 위하여 접근 중인 임의의 시점에서 하나의 프로세스만이 그 접근을 허용하도록 제어하는 기법이다.
  • 상호배제를 구현하는 기법으로 데커 알고리즘, 피터슨 알고리즘, Test and set 기법, Lamport의 빵집 알고리즘, swap 명령어 등이 있다.

1) 세마포어

  • 상호 배제의 원리를 보장하는 것이다.
  • 반드시 상호 배제의 원리가 지켜져야 하는 공유 역역에 대해 각각의 프로세스들이 접근하기 위하여 사용되는 두개의 연산 P(Wait)와 V(Signal)를 통해서 프로세스 사의 동기를 유지한다
  • 세마포어의 종류
    • 이진 세마포어 : 오직 0과 1의 두가지 값을 가진다.
    • 산술 세마포어 : 0과 양의 정수를 값으로 가질 수 있다.

2) 모니터

  • 병행 다중 프로그래밍에서 상호재베를 구현하기 위한 특수 프로그램 기법이다.
  • 구조적인 면에서 공유 데이터와 이 데이터를 처리하는 프로심저의 집합이라 할 수 있다.
  • 자료 추상화와 정보 은폐개념을 기초로 한다.
  • 공유 데이터와 이 데이터를 처리하는 프로시저로 구성된다.
  • 모니터 외부의 프로세스는 모니터 내부의 데이터를 직접 액세스 할 수 없다.

05. 교착상태

  • 두 개 의상의 프로세스가 서로 상대방이 사용하고 있는 자원의 사용을 위해 기다리는 현상을 의미한다

교착 상태 발생의 필요 충분 조건

  • 상호 배제(Mutual Exclusion) : 한 번에 한 개의 프로세스만이 공유 자원을 사용할 수 있어야 함
  • 점유와 대기(Hold and Wait) : 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용되고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 함
  • 비선점(Non-Preemption) : 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야 함
  • 환형 대기(Circular Wait) : 공유 자원과 공유 자원을 사용하기 위해 대기하는 프로세스들이 원형으로 구성되어 있어야 함