본문/내용
01. Test-and-Set
Test-and-Set은 운영체제에서 상호 배제를 구현하기 위해 사용하는 동기화 기법 중 하나이다. 이 기법은 프로세스들이 공유 자원에 접근할 때 상호 배제를 보장하기 위해 사용된다. Test-and-Set은 원자적 연산을 기반으로 하며, 이 연산은 두 개의 작업을 하나로 묶어 원자적으로 수행되도록 한다. 즉, 어떤 프로세스가 Test-and-Set 연산을 수행하는 동안 다른 프로세스는 이 연산에 간섭할 수 없다. 이로 인해 여러 프로세스가 동시에 코드의 특정 영역에 접근하는 것을 방지할 수 있다. Test-and-Set은 일반적으로 다음과 같은 방식으로 동작한다. 먼저, 공유 변수가 정의된다. 그 변수는 동기화를 위한 플래그 역할을 하며, 일반적으로 boolean 형식으로 되어 있다. 이 플래그는 프로세스가 임계 영역에 접근하고자 할 때 사용된다. Test-and-Set 연산이 호출되면, 현재의 플래그값을 읽고, 플래그를 true로 설정한다. 이 과정에서 만약 플래그가 이미 true였다면, 다른 프로세스가 이미 임계 영역에 들어가 있는 것이므로, 호출한 프로세스는 임계 영역에 진입하지 못하게 된다. Test-and-Set 연산은 다음과 같이 이루어진다. 먼저, 현재 플래그의 …