Operating System Concepts - Swapping
Operating System Concepts -
Swapping
Swapping
프로세스가 실행되기 위해서는 메모리에 존재해야 하지만 필요에 따라 실행 도중 임시로 보조 메모리로 교체되어 나갔다가 되돌아올 수 있다.
이를 Swapping이라고 하며 Swapping의 변형을 roll-in, roll-out이라고도 부른다.
Swapping은 단순히 스케줄링에 의해 프로세스의 time quantum이 다 되었을 때 다른 프로세스를 준비시킬 때 사용할 수도 있지만 우선순위를 고려하여 실행될 수도 있다. (roll in, out)
Swapping을 구현하기 위해선 보조 메모리가 필요한데, 보통 Disk를 사용한다.
시스템은 실행 준비된 프로세스를 ready queue에 보관하며 이들은 스케줄러에 의해 관리된다.
Dispatcher
CPU 스케줄러는 다음 프로세스를 선택할 때 dispatcher를 호출하는데, Dispatcher는 ready queue에 있는 다음 프로세스가 메모리에 올라가있는지 확인하고 만약 없다면 메모리로 올려야 한다.
그런데 이 때 메모리에 충분한 공간이 없다면 공간을 만들기 위해 메모리에 올라가 있는 다른 프로세스를 Swap out하고 실행할 프로세스를 올린다. (Swap in)
Context-switch time
이런 Swapping system에서는 문맥 교환 시간(Context-switch time)이 상당히 오래 걸리게 된다.
Context-switch time이란?
사용자 프로세스의 크기 100MB, Disk는 초당 50MB의 전송률을 가진다.
100MB/50MB = 2초
평균 8ms의 회전 지연 시간을 가정했을 때 Swap시간은 2008ms가 된다. (디스크 헤더 탐색 시간은 고려하지 않았다)
그런데 우리는 Swap out을 실행하고 Swap in을 실행해야 하므로 총 Swap 시간은 4016ms가 된다.
Swap 시간을 줄이기 위해서는 실제로 사용하는 부분만을 스왑하는 것인데, 이를 위해선 메모리 요구사항의 변화가 있을 때 마다 시스템에게 이를 알려주어야 한다.
(request memory, release memory와 같은 system call)
실제로 사용되는 수정된 Swapping
표준 Swapping 방식은 거의 사용되지 않는다.
너무 많은 시간을 필요로 하고, 실행 시간이 너무 작아지기 때문이다.
수정된 Swapping은 많은 UNIX 버전에서 사용되며 보통 때는 Swap을 하지 않지만, 많은 프로세스가 실행되고 메모리 부족이 일어나면 Swapping이 시작된다.
'Operating system' 카테고리의 다른 글
| Operating system concepts - Paging (0) | 2013.06.08 |
|---|---|
| Operating System Concepts – Contiguous Memory Allocation (0) | 2013.06.08 |
| Operating System Concepts - Chapter8. 메모리 관리 전략 2 (0) | 2013.06.07 |
| Operating System Concepts - Chapter8. 메모리 관리 전략 1 (0) | 2013.06.07 |
