가상 메모리 시스템(1)
- Virtual ≒ Logical = S/W → 소프트웨어적으로 메모리를 구성 = 가상 메모리
- 가상 메모리의 주소 공간은 페이지(Page)라는 단위로 일정 크기 분할되어 있다.
- Page 라는 조각 단위를 HDD와 RAM 사이를 왔다갔다 하면서 공간 이동 → Paging
- Page = 약 4KB
Paging(페이징) 예시
- RAM(8GB) = 10개 프로그램 실행 가능
- 필요에 의해 15개 프로그램을 실행해야 하는 경우
- HDD 영역의 일부 용량을 가져와서 RAM인것처럼 사용한다.
- 속도는 느려지지만 15개 프로그램이 실행된다.
가상 메모리 시스템(2)
- 운영체제에서 프로세스가 실행되는 경우, 메모리 공간을 할당해준다. = VMS(Virtual Memory Space)
- 가상 메모리를 사용하게 되면 RAM이 부족해도 프로세스가 동작하게되고, 각 프로세스가 보호되지만 속도가 느려진다.
- 프로세스가 작동 중 오류로 인해 죽어버린 경우, 운영체제에서 해당 메모리 공간을 강제로 회수한다.
가상 메모리 할당 방법 (운영체제가 할당)
- Chrome 브라우저를 실행하여(프로세스 실행) 메모리 공간이 할당됨.
- 추가로 MS Word를 실행하게 되면(프로세스 실행) 부족한 메모리 공간을 확보해야함.
- 기존의 Chrome 브라우저의 메모리 공간을 HDD로 이동 시킴 → Page-Out = Swap-Out
- MS Word가 Chrome 브라우저가 사용했던 메모리 공간을 사용
주기억장치에서 보조기억장치로 Page가 이동 → Page-Out = Swap-Out
보조기억장치에서 주기억장치로 Page가 이동 → Page-In = Swap-In
가상 메모리 시스템을 사용하는 이유
- 각 프로세스 공간을 완벽하게 분리하고 통제할 수 있다.
- 프로세스 오류가 운영체제에 까지 영향을 주지 못하도록 차단할 수 있다.
- 메모리가 부족해도 여러 프로그램들이 작동하는 등 자원을 효율적으로 활용할 수 있다.
그림으로 표현하는 가상 메모리 사용
그림3,4 출처:
https://cappleblog.tistory.com/247
결론
- 가상 메모리 = RAM과 HDD를 섞어서 하나의 논리적 메모리로 사용하는 것
참고
'IT 지식 > CS 기초' 카테고리의 다른 글
가장 큰 수 찾기 (0) | 2024.08.11 |
---|---|
프로그래밍이란? (0) | 2024.08.10 |
컴퓨터의 구성 요소 (H/W, User mode, Kernel mode) (0) | 2024.08.08 |
컴퓨터의 구성 요소 및 프로그램, 프로세스, 스레드 (0) | 2024.08.07 |
원자성, 동기화, 교착상태(Deadlock) (0) | 2024.08.06 |