Clock algorithm에서 페이지를 교체할 때 자주 사용되지 않는 페이지 (0)이라 버릴려고 할 때 해당 페이지를 사용하려고 한다면 어떻게 되는가? mutex를 걸어야 하지 않을까?
Answer
Clock algorithm은 spinlock을 이용하여 다른 프로세스나 스레드가 공유 자우너에 접근하려고 할 때 접근이 가능할 때까지 반복적으로 체크를 수행한다. 즉, 페이지 교체 작업을 수행하는 동안 다른 프로세스나 스레드가 해당 페이지에 접근하지 못하도록 보장한다. 따라서 페이지를 교체하기 위해 spinlock을 얻은 프로세스나 스레드가 해당 페이지에 접근할 때까지, 다른 프로세스나 스레드는 spinlock을 얻기 위해 대기한다.
Explain about unknown concept
spinlock은 busy waiting의 특징을 갖는다. 다른 프로세스나 스레드가 공유 자원을 사용할 때까지 대기하는 동안, spinlock을 보유한 프로세스나 스레드는 계속해서 반복적으로 체크를 수행한다.
이러한 busy waiting의 단점으로는 다른 프로세스나 스레드가 공유 자원을 해제할 때까지 계속해서 CPU를 사용하기 때문에, 다른 작업을 수행하는 동안 CPU 자원을 낭비할 수 있다.
Question
Clock algorithm에서 페이지를 교체할 때 자주 사용되지 않는 페이지 (0)이라 버릴려고 할 때 해당 페이지를 사용하려고 한다면 어떻게 되는가? mutex를 걸어야 하지 않을까?
Answer
Clock algorithm은 spinlock을 이용하여 다른 프로세스나 스레드가 공유 자우너에 접근하려고 할 때 접근이 가능할 때까지 반복적으로 체크를 수행한다. 즉, 페이지 교체 작업을 수행하는 동안 다른 프로세스나 스레드가 해당 페이지에 접근하지 못하도록 보장한다. 따라서 페이지를 교체하기 위해 spinlock을 얻은 프로세스나 스레드가 해당 페이지에 접근할 때까지, 다른 프로세스나 스레드는 spinlock을 얻기 위해 대기한다.
Explain about unknown concept