[운영체제] Chapter4. 병행 프로세스와 상호배제

DongHyeon·2022년 7월 31일
0

운영체제

목록 보기
4/8

Chapter4. 병행 프로세스와 상호배제


1 병행 프로세스


1-1 병행 프로세스의 개념

  • 메모리 자원은 공유 영역에서 병렬로 사용. 반면, 입출력장치 일부나 프로세서는 한 번에 프로세스 하나만 사용할 수 있는 공유 자원
  • 프로세서 하나는 한 번에 프로세스 하나만 실행할 수 있다. 하지만 운영체제가 프로세서를 빠르게 전환하여 프로세서 시간을 나눠 프로세스 여러 개를 동시에 실행하는 것처럼 보이게 하는것이 병행 프로세스 이다.
  • 프로세스는 독립 프로세스, 협력 프로세스로 구분
  • 독립 프로세스
    • 단일 처리 시스템에서 수행하는 병행 프로세스로 다른 프로세스에 영향을 주고받지 않으면서 독립적으로 실행
    • 다른 프로세스, 데이터와 상태를 공유하지 않고 동작을 재현할 수 있음
    • 주어진 초기값에 따라 항상 동일한 결과를 보여 주고, 중지했다가 변동 사항 없이 다시 시작 가능
    • ex) 단일 프로그래밍, 다중 프로그래밍, 다중 처리
  • 협력 프로세스
    • 다른 프로세스와 영향을 주고받음, 즉 상호작용하며 특정 기능을 수행하는 비동기적 프로세스
    • 효율성 증대, 계산 속도 향상, 모듈적 구성 강화, 작업 동시 수행
  • 프로세스의 상호작용 형태
    • 프로세서는 서로 인식 하지 못하는 경쟁 관계 유지
    • 입출력 버스를 비롯한 개체를 공유하는 단계에서 간접적으로 서로의 관계를 인식
    • 서로를 인식하고 프로세스끼리 통신할 수 있는 기본 함수가 있음

1-2 병행 프로세스의 해결 과제

  • 공유 자원을 상호 배타적으로 사용해야 한다.
  • 병행 프로세스 간에는 협력이나 동기화가 되어야 한다.
  • 두 프로세스 사이에서는 데이터를 교환할 수 있도록 통신이 되어야 한다.
  • 동시에 수행하는 다른 프로세스의 실행 속도와 관계없이 항상 일정한 실행 결과를 보장하도록 결정성을 확보해야 한다.
  • 교착 상태를 해결하고 병행 프로세스들의 병렬 처리 능력을 극대화해야 한다.
  • 실행 검증 문제를 해결해야 한다.
  • 병행 프로세스를 수행하는 과정에서 발생하는 상호배제

2 상호배제와 동기화


2-1 상호배제의 개념

  • 상호배제란 병행 프로세스에서 프로세스 하나가 공유 자원을 사용할 때 다른 프로세스들이 동일한 일을 할 수 없도록 하는 방법
  • 공유 자원을 동시에 사용하지 못하게 실행을 제어하는 방법을 동기화라고 한다.
  • 동기화로 상호배제를 보장할 수 있지만, 이 과정에서 교착 상태와 기아 상태가 발생할 수 있는 가능성 발생
  • 두 프로세스가 동시에 사용할 수 없는 공유 자원을 임계 자원이라 한다. 또한 이 임계 자원에 접근하고 실행하는 프로그램 코드 부분을 임계 영역이라 부른다.(프로세스가 공유 데이터에 접근할 때 '임계영역에 있다' 라고 한다.)

2-2 임계 영역

  • 다수의 프로세스가 접근할 수 있지만, 어느 한순간에는 프로세스 하나만 사용
  • 임계 영역은 실행 구간에 해당하므로 작업을 빠르게 수행하고, 특정 프로세스가 임계 영역에 오래 머물거나 무한 루프 등에 빠지지 않도록 관리

2-3 상호배제 방법들

  • 데커 알고리즘, TestAndSet, 세마포, 모니터

0개의 댓글