임계 구역, 상호 배제 개념 정리는 이 링크에 더 자세히 되어 있다!
⚠️ 임계 구역
동시에 실행하면 문제가 발생하는 자원에 접근하는 코드 영역
두 개 이상의 프로세스가 임계 구역에 진입하고자 하면 둘 중 하나는 대기를 해야 한다!
→ 먼저 진입한 프로세스의 작업이 마무리되면 그제서야 비로소 기다렸던 프로세스가 임계 구역에 진입한다
하지만 잘못된 실행으로 인해 여러 프로세스가 동시 다발적으로 임계 구역의 코드를 실행하여 문제가 발생하는 경우가 있는데, 이를 레이스 컨디션이라고 한다.
➡️ 데이터의 일관성이 깨지는 문제가 발생!
🔆 임계 구역의 문제를 해결할 세 가지 원칙
운영 체제는 임계 구역의 문제를 아래 세 가지 원칙 하에 해결한다.
상호 배제
😀 한 프로세스가 임계 구역에 진입했다면 다른 프로세스는 임계 구역에 들어올 수 없다.
진행
😀 임계 구역에 어떤 프로세스도 진입하지 않았다면 임계 구역에 진입하고자 하는 프로세스는 들어갈 수 있어야 한다
유한 대기
😀 한 프로세스가 임계 구역에 진입하고 싶다면 그 프로세스는 언젠가는 임계 구역에 들어올 수 있어야 한다