suspension 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

[운영체제] 2-3. 프로세스 상태도

이번 글에서는 프로세스의 상태도 대표적인 5가지와, 추가적인 2가지까지 해서 총 7가지를 알아보겠습니다. 우선, 이전 글에서 첨부했던 사진을 다시 떠올려봅시다. 여기서 대표적으로 Not Running과 Running 상태를 나타냈었는데, 우선 먼저 Not Running의 세부 상태에 대해서 설명하겠습니다. Not Running Ready - 실행되기를 기다리는 상태입니다. 뒤에 설명한 대기 큐에서 실행을 기다립니다 Blocked(= wait, sleep) - 이벤트가 발생되기를 기다리는 상태입니다. 대표적으로 이 때, 사용자의 입력을 기다리는 상태를 Block이라고 할 수 있습니다. 대기큐(Ready Queue)라는 단어를 잠깐 꺼냈는데, dispatcher(이 개념은 전에 설명했습니다.)가 항상 대기 ..

CS/OS 2023.09.11