2021. 2. 25. 18:34ㆍComputer(인강)/운영체제
안녕하세요 bannavi 입니다^ㅅ^
오늘은 가상메모리 개념에 대해서 다뤄볼거에요
그럼 바로 시작해보겠습니다!
가상 메모리
실제 각 프로세스마다 충분한 메모리를 할당하기에는 메모리 크기가 한계가 있음.
예) 리눅스는 하나의 프로세스가 4GB임.
- 통상 메모리는 8GB? 16GB?
폰노이만 구조 기반이므로, 코드는 메모리에 반드시 있어야함
가상 메모리가 필요한 이유
* 하나의 프로세스만 실행 가능한 시스템(배치 처리 시스템 등)
1. 프로그램을 메모리로 로드(load)
2. 프로세스 실행
3. 프로세스 종료(메모리 해제)
* 여러 프로세스 동시 실행 시스템
1. 메모리 용량 부족 이슈
2. 프로세스 메모리 영역간에 침범 이슈
가상 메모리
가상 메모리: 메모리가 실제 메모리보다 많아 보이게 하는 기술
* 실제 사용하는 메모리는 작다는 점에 착안해서 고안된 기술
* 프로세스간 공간 분리로, 프로세스 이슈가 전체 시스템에 영향을 주지 않을 수 있음
가상 메모리(Virtual Memory System)
* 가상 메모리 기본 아이디어
- 프로세스는 가상 주소를 사용하고., 실제 해당 주소에서 데이터를 읽고/쓸때만 물리 주소로 바꿔주면 된다.
- virtual address(가상주소) : 프로세스가 참조하는 주소
- physical address(물리주소) : 실제 메모리 주소
-> 가상주소가 실제 어느 물리주소에 들어가 있는지를 알아야하잖아요?
그래서 가상주소를 물리주소로 바꿔주는 메커니즘이 시스템 안에 들어가 있습니다.
이 변환시간이 좀 오래걸릴거 같죠?
그래서 이 시간을 짧게 하기 위해 아래처럼 MMU가 나오게 된 것입니다.
* MMU(Memory Management Unit)
- CPU에 코드 실행시, 가상 주소 메모리 접근이 필요할 때, 해당 주소를 물리 주소값으로 변환해주는 하드웨어 장치
가상메모리(Virtual Memory System)
- 메인 메모리에 실제 각 프로세스의 데이터가 조각으로 씌여 있다.
- CPU는 가상 메모리를 다루고, 실제 해당 주소 접근 시 MMU 하드웨어 장치를 통해 물리 메모리 접근
* 하드웨어 장치를 이용해야 주소 변환이 빠르기 때문에 별도 장치를 둠
'Computer(인강) > 운영체제' 카테고리의 다른 글
다중 단계 페이징 시스템과 페이징 시스템 장점 (0) | 2021.02.25 |
---|---|
페이징 시스템 (0) | 2021.02.25 |
deadlock과 starvation (0) | 2021.02.25 |
세마포어 (0) | 2021.02.25 |
스레드 동기화 문제 (0) | 2021.02.25 |