더북(TheBook)


6.1가상 메모리


오늘날의 운영체제는 대부분 멀티태스킹을 할 수 있습니다. 프로세스 여러 개를 동시에 실행할 수 있습니다. 앞서 프로세스를 실행하면 한 프로세스당 4GB를 할당한다고 했습니다. 이 말은 메모리 용량이 4GB인 컴퓨터에서는 단 하나의 프로세스만 실행할 수 있다는 말입니다. 하지만 실제로는 그렇지 않습니다. 인터넷 검색도 하고 음악도 틀고 영화도 보고 게임을 실행해도 여러 개의 프로세스가 잘 작동합니다. 이게 어떻게 된 일일까요?

프로세스는 메인 메모리에서 데이터를 가져옵니다. 용량이 큰 하드디스크를 사용하면 좋겠지만 하드디스크에서 데이터를 가져오려면 굉장히 느립니다. 메인 메모리에서 데이터를 가져올 때는 20~100사이클이 걸리는 반면 하드디스크에서 가져올 때는 500,000~5,000,000사이클이 걸립니다. 하지만 하드디스크에도 데이터 ‘저장’ 기능이 있으므로 하드디스크를 메인 메모리처럼 사용할 수 있다면 정말 좋을 것 같습니다. 이러한 아이디어에서 나온 개념이 가상 메모리(virtual memory)입니다.

가상 메모리란 메인 메모리를 확장하기 위해 페이지 파일(page file)로 불리는 하드디스크의 일정 부분을 메인 메모리처럼 사용하는 것을 말합니다. 메인 메모리(RAM)와 하드디스크의 페이지 파일을 합쳐 물리 메모리(physical memory)라고 합니다.

가상 메모리 관리 기법은 가상 주소 공간을 쪼개는 기준에 따라 세그먼테이션(segmentation) 기법과 페이징(paging) 기법으로 나눌 수 있습니다. 오늘날의 운영체제는 대부분 두 가지를 함께 사용합니다. 이를 segmentation with paging이라고 하는데 이렇게 하면 두 가지 기법의 단점을 서로 보완하고 장점을 모두 포함할 수 있습니다. 이 책에서는 페이징 기법만 다룹니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.