더북(TheBook)

여기서 화장실은 공유 자원을 포함한 임계 영역을, 열쇠는 락을, A와 B는 공유 자원에 접근하려는 프로세스를 의미한다. 임계 영역에 먼저 접근한 프로세스가 임계 영역에 락을 걸면 다른 프로세스들은 해당 프로세스가 락을 해제하기 전까지 대기해야 한다. 이처럼 임계 영역에 접근한 프로세스가 임계 영역에 락을 건다고 해서 락킹 매커니즘(locking mechanism)이라고도 한다.

임계 영역에 접근하지 못한 프로세스는 락을 얻기 위해 기다리는 동안 락이 풀렸는지 반복문을 돌면서 확인한다. 이를 바쁜 대기(busy waiting)의 한 종류인 스핀락이라고 한다. 즉, 스핀락(spinlock)은 락을 얻기 위해 프로세스가 반복문을 돌면서 기다리는 것을 의미한다. 프로세스가 대기 상태가 되지 않고 반복문을 돌면서 자원의 사용 가능 여부를 확인하므로 프로세스가 빠르게 교체될 수 있다.

 

용어사전 

바쁜 대기(busy waiting): 프로세스가 공유 자원에 접근할 수 있는 권한을 얻을 때까지 확인하는 과정을 일컫는다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.