본문으로 바로가기

가상 기억장치 구현&관리

category Study/system 2018. 4. 21. 15:17


가상 기억장치란?


다중 프로그래밍 기법은 주기억장치에 다수의 프로그램을 적재시켜 구현할 수 있다. 그러나 이는 유한한 시스템 자원이라는 한계가 있다. 이렇듯 크기가 매우 큰 프로세스를 주기억장치에 적재시켜 실행하는것은 시스템에 부담을 줄 수 있다. 이를 해결할 수 있는 방법이 가상기억장치이다. 





가상 기억장치 구현


보조기억장치에서 실행에 필요한 일부분만 주기억장치에 적재하여 구현할 수 있다. 이른 작은 용량으로도 큰 프로그램을 실행할 수 있다는 장점이 있다.





주기억장치 관리(비연속 할당 방식)


페이징 기법

처리할 작업을 동일한 크기의 페이지로 나누어 처리하는 기법이다. 프로세스마다 페이지에 대한 정보를 가진 페이지 테이블을 가짐으로써 공간을 효율적으로 사용하게 되며, 프로그램이 아무리 커도 외부 단편화를 제거할 수 있다는 장점이 있다. 그러나 하나의 프로그램이 분할되어 여러 위치에 적재되다보니 여러군데에 있는 운영체제의 부담이 커지게된다. 또한, 크기가 동일하게 정해져있기 때문에 내부 단편화 문제가 생길 수 있다. 페이지의 고정 크기가 크면 클수록 내부 단편화 문제가 생기지만 관리해야할 페이지 정보가 많아지므로 운영체제에 부담이 된다.


세그멘테이션 기법

처리할 작업을 사용자 입장에서 용도에 따라 논리적 단위에 의한 가변적인 크기로 세그먼트(데이터 블록) 생성하는 기법이다. 이렇게 생성된 세그먼트는 동일 동작에 관해서는 연속적이지만 인접하지는 않다. 즉, 하나의 프로세스가 적재될 때, 규칙성 있게 적재된다는 뜻이다. 프로그램 코드나 자료의 공유가 용이하며, 모듈처리, 공유와 보호의 지원이 편리하다. 그러나 이 기법은 가변적인 크기로 프로세스를 받아들이다보니 외부단편화 문제가 발생한다. 



'Study > system' 카테고리의 다른 글

주기억장치 관리 기법  (0) 2018.04.20
스케줄링(Scheduling)  (0) 2018.04.20
프로세스 제어 블록(PCB)  (0) 2018.04.20
프로세스(Process)  (0) 2018.04.20
부팅(Booting)  (0) 2018.04.20