공유자원과 임계영역

고장난 고양이·2022년 7월 15일
0

운영체제

목록 보기
10/21
post-custom-banner

공유자원

공유자원은 여러 프로세스가 공동으로 이용하는 변수, 메모리, 파일 등을 말합니다.

공유 자원은 공동으로 이용되기 때문에 누가 언제 데이털르 읽거나 쓰느냐에 따라 그 결과가 달라질 수 있다.

따라서 프로세스들의 공유 자원 접근 순서를 정하여 예상치 못한 문제가 발생하지 않도록 해야한다.

경쟁조건

  • 2개이상의 프로세스가 공유자원을 병렬적으로 읽거나 쓰는 상황
  • 경쟁 조건이 발생하면 공유 자원 접근 순서에 따라 실행 결과가 달라질 수 있다.

임계영역(임계구역)

공유 자원 접근 순서에 따라 실행결과가 달라지는 프로그램의 영역을 임계영역(Critical section)이라고 한다.

  • 임계영역에서는 프로세스들이 동시에 작업하면 안된다.
    -> 어떤 프로세스가 먼저 임계영역에 들어가면 다른 프로세스는 기다려야하며 임계 구역의 프로세스가 나와야 들어갈 수 있다.
  • 전역 변수 뿐만 아니라 하드웨어 자원을 이용할때도 마찬가지이다.

임계영역 해결조건

  1. 상호 배제(mutual exclusion)
    한프로세스가 임계영역에 들어가면 다른 프로세스는 임계구역에 들어갈수 없다.

  2. 한정 대기(bounded wating)
    어떤 프로세스도 무한대기하지 않아야한다. 특정 프로세스가 임계구역에 진입하지 못하면 안된다.

  3. 진행의 융통성(progress flexibility)
    한 프로세스가 다른 프로세스의 진행을 방해해서는 안된다.

profile
개발새발X발일지
post-custom-banner

0개의 댓글