critical section

agnusdei·2024년 11월 9일
0

Hardware & Software

목록 보기
113/136

임계구역(Critical Section) 문제는 다중 프로세스 환경에서 공유 자원을 안전하게 사용하기 위한 문제입니다. 임계구역 문제를 제대로 해결하려면 세 가지 조건을 만족해야 합니다: 상호 배제(mutual exclusion), 진행(progress), 그리고 한정된 대기(bounded waiting)입니다. 각 조건이 의미하는 바를 쉽게 설명하겠습니다.

  1. 상호 배제 (Mutual Exclusion)

상호 배제는 하나의 프로세스만 임계구역에서 실행될 수 있도록 보장하는 것입니다. 임계구역은 프로세스가 공유 자원을 접근하거나 수정하는 영역이기 때문에, 여러 프로세스가 동시에 진입하면 데이터가 손상될 위험이 있습니다.
• 예를 들어, 프로세스 A가 임계구역에서 작업하고 있다면, 프로세스 B는 A가 끝날 때까지 기다려야 합니다.
• 목적: 두 프로세스가 동시에 임계구역에 들어가지 않도록 하여, 충돌이나 데이터 오류를 방지하는 것입니다.

  1. 진행 (Progress)

진행 조건은 임계구역에 들어가려고 대기하는 프로세스가 있으면, 누가 다음으로 임계구역에 들어갈지를 결정할 수 있어야 한다는 것입니다. 이때 중요한 점은, 이미 임계구역을 사용하고 있는 프로세스는 그 결정에 관여하지 않는다는 것입니다.
• 예를 들어, 현재 임계구역에 진입한 프로세스가 없고, 프로세스 A와 B가 모두 임계구역에 들어가기를 원한다고 합시다. 이때, 다른 프로세스들이 참여하지 않고, A와 B 중에서 누가 먼저 들어갈지 결정해야 합니다.
• 목적: 자원이 놀지 않도록 하고, 원하는 프로세스가 빨리 임계구역에 들어가게 하여 시스템 자원 효율성을 높입니다.

  1. 한정된 대기 (Bounded Waiting)

한정된 대기 조건은 임계구역에 진입하려는 프로세스가 무한정 대기하지 않도록 보장하는 것입니다. 즉, 어떤 프로세스가 임계구역에 들어가려고 요청했을 때, 다른 프로세스들이 일정 횟수 내에서 임계구역에 들어가도록 제한하는 것입니다. 이를 통해 특정 프로세스가 너무 오래 기다리지 않도록 합니다.
• 예를 들어, 프로세스 A가 임계구역에 진입하려고 요청했을 때, 프로세스 B와 C가 임계구역에 몇 번 들어갈 수 있도록 허용하는 횟수를 제한해 A가 기다리는 시간이 길어지지 않게 합니다.
• 목적: 특정 프로세스가 지나치게 오래 기다리지 않도록 하여, 공정성을 유지합니다.

요약

1.	상호 배제: 한 번에 한 프로세스만 임계구역에서 실행되어야 합니다.
2.	진행: 임계구역에 들어가려는 프로세스가 있으면 다음 진입자를 결정할 수 있어야 하고, 이미 임계구역에 있는 프로세스는 그 결정에 관여하지 않습니다.
3.	한정된 대기: 임계구역에 들어가고자 하는 프로세스가 무한정 기다리지 않도록 다른 프로세스가 임계구역에 진입할 수 있는 횟수를 제한합니다.

이 세 조건을 모두 충족해야, 다중 프로세스 환경에서 안전하고 공정하게 임계구역 문제를 해결할 수 있습니다.

0개의 댓글