Locality 2

[운영체제] Trashing

오늘은 Demand Paging의 부작용으로 발생하는 Trashing에 대해서 알아보겠습니다. Trashing Demand Paging을 사용하면 메모리에 많은 프로세스를 올릴 수 있다는 장점이 있습니다. 하지만 메모리에 공간이 없으면 페이지를 swap하는 과정이 필요하였고, 이 과정에서 불필요하다고 판단되는 페이지는 swap out되는 것을 알고 있습니다. 만약, 이러한 page replacement 과정으로 인해서 다음 단계에 필요한 페이지가 page fault를 일으켰다면 다시 page를 load해야할 것이고, 이 과정에서 CPU는 I/O device에게 load 명령을 내린 뒤 다른 작업을 처리할 것입니다. 하지만 너무도 많은 프로세스들이 I/O에 의해서 load되는 과정에 있다면 결국 CPU는 ..

CS/OS 2023.12.09

[운영체제] Virtual Memory

오늘은 메모리를 효율적으로 관리할 수 있도록 해주는 아주 중요한 개념인 가상 메모리. Virtual Memory에 대해서 다뤄보겠습니다. Virtual Memory 가상 메모리 방법이란 프로세스가 메모리와 디스크를 하나의 장치로 인식하여 필요할 때, 메모리에 로드하고, 그렇지 않을 때는 보조 기억 장치에 저장하는 방식입니다. 이러한 기법을 메모리를 조금 더 효율적이게 사용할 수 있습니다. 우리가 정말 예전에 들었던 우체국 예시를 들어보려고 합니다. 우체국 직원은 프로세서 즉 CPU를 의미합니다. 우체국에서 자신의 차례가 되길 기다리거나, 현재 서비스를 받고 있는 고객을 프로세스라고 합시다. (a)에서는 가상 메모리를 사용하지 않는 환경입니다. (b)는 가상메모리를 활용합니다. 고객들이 자신의 머리만 내밀..

CS/OS 2023.12.08