반도체 그 다음 학문/운영체제 (OS)

운영체제 Swapping ( page in, page out )

전컴반 2022. 6. 8. 17:12
반응형
Swapping 

 

여러 프로그램을 메모리상에서 돌리다 보면 메모리가 부족할 수밖에 없다.

이런 메모리 부족을 해결하기 위해서 나온 방법이 Swapping이다. 더 많은 프로세스가 메모리에 존재할 수 있도록 하는 것이다. swapping을 사용하면 프로세스를 다시 실행할 때 처음부터 메모리에 올리는 것이 아니라 더 빨리 할 수 있기 때문이다. 

 

 

Swapped은 backing store를 만들어서 프로세스 단위로 swap in, swap out을 동작한다. ( backing store는 임시저장소로 하드디스크나 NVM처럼 여러 하드웨어가 될 수 있다. 즉 Secondary Storage다.)

프로그램이 실행되면 Bakcing store에 있는 필요한 page 정보를 메모리에 올린다.  

 

이렇게 프로세스 단위로 왔다 갔다 하는 걸, standard swapping이라 한다. 하지만 요즘에는 standard swapping을 사용하지 않는데 그 이유는 아래와 같다.

 


 

만약에 다음에 실행할 프로세스가 메모리에 없다면, 메모리에 올라가 있는 하나의 프로세스를 swap out 하고 내가 실행시킬 프로세스를 swap in 한다.

이때 conext swich time이 오래 걸린다. 예를 들어 100MB 프로세스를 1초당 50MB씩 전송할 수 있다면, swap out 하는데 2초, swap in 하는데 2초. 즉, 총 4초가 걸린다.

사람의 입장에서는 4초면 짧지만 CPU 입장에서는 엄청나게 긴 시간이다.  

 

이렇기 때문에 프로그램 단위로 swap in, out 하는 것이 아니라 page 단위로 옮긴다.

아래 그럼에서 왼쪽은 프로그램 단위로 왔다 갔다 하는 것이고 오른쪽은 page 단위로 왔다 갔다 하는 것이다. 

 

왼: standard swapping       오: page swapping

 

 

반응형