세마포어 2

Critical Section / 세마포어(Semaphore) / 뮤텍스(Mutex)

임계 영역(Critical Section)임계 구역(Critical Section)은 공유 자원(Shared Resource)에 여러 스레드나 프로세스가 동시에 접근할 경우 문제가 발생할 수 있는 프로그램의 코드 영역을 의미한다.❗문제 발생 공유 자원은 여러 프로세스/스레드가 동시에 접근할 경우 임계 구역 안에서 데이터 불일치 또는 경쟁 상태(Race Condition)를 초래할 수 있다.임계 구역 문제를 해결하려면 한 번에 하나의 스레드만 해당 코드 영역에 진입하도록 제한해야 한다.🛠️ 해결 방법뮤텍스(Mutex), 세마포어(Semaphore) 등의 동기화 메커니즘을 사용하여 한 번에 하나의 스레드만 임계 구역에 접근하도록 보장한다.💡 이해하기 쉬운 예시은행 계좌에서 두 개의 ATM 스레드가 동시에..

CS/Operating System 2025.01.15

[Pintos : 동기화] 세마포어(Semaphore)

https://jinsang-2.tistory.com/115요걸 보시라요 Critical Section / 세마포어(Semaphore) / 뮤텍스(Mutex)임계 영역(Critical Section)임계 구역(Critical Section)은 공유 자원(Shared Resource)에 여러 스레드나 프로세스가 동시에 접근할 경우 문제가 발생할 수 있는 프로그램의 코드 영역을 의미한다.❗문제 발생jinsang-2.tistory.com 세마포어(Semaphore)비동기적으로 실행되는 여러 스레드나 프로세스 간의 **동기화(synchronization)**를 위해 사용하는 중요한 도구이다.세마포어의 두 가지 연산 Down 또는 P 연산: 세마포어 값이 양수일 때까지 대기하고, 양수가 되면 그 값을 1 감소시킵..