쉽게 배우는 운영체제 공유 자원과 임계구역 간단 정리
공유 자원과 임계구역
공유자원은 여러 프로세스가 공동으로 이용하는 데이터
- 공유 자원의 접근
누가 언제 데이터를 읽거나 쓰느냐에 따라 결과가 달라질 수 있음
- 경쟁 조건
2개 이상의 프로세스가 공유 자원을 병행적으로 읽거나 쓰는 상황
- 임계구역
공유 자원 접근 순서에 따라 실행 결과가 달라지는 프로그램의 영역
프로세스 실행 상황에서는 공유할 수 없는 매우 중요한 자원
- 생산자-소비자 문제
생산자 프로세스와 소비자 프로세스가 서로 독립적으로 작업을 하는 상황에서 전역 변수에 접근하는 타이밍을 서로 맞추지 않아 데이터에 문제가 생기는 상황
- 임계구역 해결 조건
상호 배제, 한정 대기, 진행의 융통성을 모두 만족해야 함
- 상호 배제
한 프로세스가 임계구역에 들어가면 다른 프로세스는 임계구역에 들어갈 수 없음
- 한정 대기
어떤 프로세스도 무한 대기하지 않아야 함
- 진행의 융통성
한 프로세스가 다른 프로세스의 진행을 방해하면 안 됨