Skip to content

[11. 가상메모리] Clock algorithm의 spinlock #44

@Yunhee000

Description

@Yunhee000

Question

Clock algorithm에서 페이지를 교체할 때 자주 사용되지 않는 페이지 (0)이라 버릴려고 할 때 해당 페이지를 사용하려고 한다면 어떻게 되는가? mutex를 걸어야 하지 않을까?

Answer

Clock algorithm은 spinlock을 이용하여 다른 프로세스나 스레드가 공유 자우너에 접근하려고 할 때 접근이 가능할 때까지 반복적으로 체크를 수행한다. 즉, 페이지 교체 작업을 수행하는 동안 다른 프로세스나 스레드가 해당 페이지에 접근하지 못하도록 보장한다. 따라서 페이지를 교체하기 위해 spinlock을 얻은 프로세스나 스레드가 해당 페이지에 접근할 때까지, 다른 프로세스나 스레드는 spinlock을 얻기 위해 대기한다.

Explain about unknown concept

  • spinlock은 busy waiting의 특징을 갖는다. 다른 프로세스나 스레드가 공유 자원을 사용할 때까지 대기하는 동안, spinlock을 보유한 프로세스나 스레드는 계속해서 반복적으로 체크를 수행한다.
  • 이러한 busy waiting의 단점으로는 다른 프로세스나 스레드가 공유 자원을 해제할 때까지 계속해서 CPU를 사용하기 때문에, 다른 작업을 수행하는 동안 CPU 자원을 낭비할 수 있다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions