Philosophers ) Philosophers - Process Synchronization 2 Semaphores Semaphore S 변수 S는 정수값 (자원의 개수) Critical Section에 Semaphores 사용 Block & Wakeup 방식 (=sleep lock) 그래서 CPU를 얻을 수 있는 권한 자체가 없어진다. 그 프로세스는 해당하는 작업만 할 수 있으며 작업이 끝나면 다시 CPU에 접근이 가능한 ready queue로 돌아올 수 있는 권한이 생긴다. 마찬가지... PhilosophersOperation System42Seoul42Seoul ) Philosophers - Implement 1 또한 동시에 접근을 한다면 어떤 스레드가 값을 업데이트 하는 도중 다른 스레드가 그 값에 접근하더라도 변화된 값을 읽지 못하게 되는 상황이 발생할 수 있다. 이처럼 여러 개의 스레드가 공유된 자원에 접근 할 때 데이터의 신뢰성을 보장받을 수 없는 경우를 스레드 동시성(Concurrency) 문제라고 한다. 스레드 : 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위 프로그램 -> 프로세스... mutexThreadPhilosophers42Seoulprocess42Seoul
) Philosophers - Process Synchronization 2 Semaphores Semaphore S 변수 S는 정수값 (자원의 개수) Critical Section에 Semaphores 사용 Block & Wakeup 방식 (=sleep lock) 그래서 CPU를 얻을 수 있는 권한 자체가 없어진다. 그 프로세스는 해당하는 작업만 할 수 있으며 작업이 끝나면 다시 CPU에 접근이 가능한 ready queue로 돌아올 수 있는 권한이 생긴다. 마찬가지... PhilosophersOperation System42Seoul42Seoul ) Philosophers - Implement 1 또한 동시에 접근을 한다면 어떤 스레드가 값을 업데이트 하는 도중 다른 스레드가 그 값에 접근하더라도 변화된 값을 읽지 못하게 되는 상황이 발생할 수 있다. 이처럼 여러 개의 스레드가 공유된 자원에 접근 할 때 데이터의 신뢰성을 보장받을 수 없는 경우를 스레드 동시성(Concurrency) 문제라고 한다. 스레드 : 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위 프로그램 -> 프로세스... mutexThreadPhilosophers42Seoulprocess42Seoul