-
스와핑운영체제/메모리 관리 전략 2018. 2. 4. 15:46
프로세스는 실행 도중에 임시로 보조 저장장치로 내보내어졌다가 다시 메모리로 돌아올 수 있다.
모든 프로세스의 크기의 총합이 실제 물리 메모리 크기보다 큰 경우에도 스와핑을 이용하면
동시에 실행하는 것이 가능하게 되어 다중 프로그래밍의 정도를 증가시킨다.
기본 스와핑
기본 스와핑은 메인 메모리와 예비 저장장치 사이에서 프로세스를 이동시킨다.
이런 스와핑 시스템에 경우 문맥 교환 시간이 상당히 오래 걸린다.
스와핑에는 제약이 따르는데 한 프로세스를 스왑 하기를 원한다면 그 프로세스는 완전히 휴지 상태에 있음을 확인해야 한다.
프로세스가 입출력 장치에 어떤 신호를 주고받는 동안이라면 그 동안은 스왑 하면 안된다.
이러한 문제의 해결책은 두 가지가 있다. 입출력이 종료되지 않은 프로세스를 스왑 하지 말거나 입출력은 항상 운영체제의 버퍼와만 하게 하는 것이다.
두 번째 방법에서 사용되는 이중 버퍼링은 오버헤드를 발생시킨다.
모바일 시스템에서의 스와핑
모바일 시스템은 어떠한 형태의 스와핑도 지원하지 않는 것이 일반적이다.
일반적으로 모바일장치들은 영구 저장장치로 하드디스크 대신 플래시메모리를 사용하고 이 결과 저장 공간이 줄어들게 된다.
IOS는 자유 메모리의 양이 부족해지면 프로세스에게 할당된 메모리를 자발적으로 반환하도록 요청하고
충분한 메모리를 반환하지 못한 프로세스는 운영체제에 의해 종료될 수 있다.
Android는 IOS 방식과 유사하나 프로그램의 상태를 플래시 메모리에 저장하여 나중에 빠르게 재 시작 할 수 있게 한다.
댓글