[운영체제/OS] IPC, Race Condition, Critical Region

HAEN·2022년 12월 20일

CS/OS

목록 보기
3/5

1. IPC(InterProcessCommunication)의 쟁점

  • 프로세스가 어떻게 다른 프로세스에게 정보를 전달하는가
  • 중요한 활동에 참여할 때 어떻게 두 개 이상의 프로세스가 서로 방해하지 않도록 보장하는가
  • 프로세스간 종속성이 존재할 때 어떻게 적절한 순서를 정하는가

2. Race Condition(경쟁 조건)

(1) 개념: 둘 이상의 프로세스가 동시에 공유 데이터를 읽거나 기록할 때, 최종 결과는 어떤 프로세스가 언제 수행되느냐에 따라 달라지는 상황

(2) print spooler 예시: print spooler 프로세스 A와 B가 거의 동시에 파일을 프린트 하려는 상황

  • 프로세스 A가 먼저 접근하여 지역 변수에 7을 기록
  • 프로세스 B가 다음에 접근하여 지역변수에 7을 기록하고 프린트 할 파일 이름을 슬롯 7에 저장
  • 프로세스 A가 슬롯 7에 자신의 파일 이름을 덮어씀
    -> 프로세스 B가 요청한 파일은 프린트 불가


3. Critical Region(임계 구역)

(1) 개념: 공유 메모리를 접근하는 프로그램의 부분
(2) critical region 문제를 해결하기 위한 조건

  • 두 개의 프로세스가 동시에 각각의 critical region에 존재하지 않아야 함
  • CPU의 속도나 개수에 어떠한 가정도 하지 않아야 함
  • critical region 외부에서 실행하고 있는 프로세스는 다른 프로세스를 block 시키면 안 됨
  • critical region에 진입하기 위해 무한히 기다리는 프로세스가 없어야 함
profile
핸수

0개의 댓글