스핀 잠금에서 프로세스는 다른 프로세스로부터 신호(잠금)를 받거나 해제(잠금)될 때까지 루프에서 잠금을 계속 기다립니다. 이로 인해 바쁜 대기가 발생하여 CPU 주기가 낭비됩니다.
내 의심은 CPU가 루프에서 잠금 변수의 값을 계속 확인하는 경우 어떻게 다른 프로세스가 임계 섹션을 완전히 실행하고 잠금을 해제할 수 있는지입니다. 임계 섹션을 실행하려면 CPU도 필요하고 CPU는 잠금을 확인하느라 바쁘기 때문입니다. 다른 프로세스의 잠금 값은 무엇입니까?
답변1
프로세스가 잠금 상태에서 회전 중이더라도 작업 스케줄러는 여전히 활성 상태이며 다른 작업을 예약합니다. 단일 CPU 시스템에서는 회전 작업이 일시 중지되고 다중 CPU 시스템에서는 다른 작업이 대신 실행됩니다. 정확한 동작은 실행 중인 작업 수에 따라 달라집니다.