일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 스택
- 릿코드
- 자바스크립트
- 브라우저
- 연결리스트
- 배열
- 해시테이블
- 자료구조
- vue3
- pytorch
- RT scheduling
- 타입스크립트
- 큐
- GraphQL
- 프론트엔드
- 컨테이너
- cors
- Machine Learning
- RxJS
- APOLLO
- 알고리즘
- alexnet
- 연결 리스트
- 이진탐색
- 코딩테스트
- 프로그래머스
- 프로세스
- 포인터
- 웹팩
- C
- Today
- Total
목록MMU (2)
프린세스 다이어리
1. 페이징 시스템이란 앞서 가상 메모리의 개념에 대한 글에서, CPU는 가상 메모리 주소만을 참조하고 필요할 때만 물리 메모리 주소를 참조한다고 정리했다. 그러면 어떤 단위로 물리 메모리를 활용하는지 궁금증이 생긴다. 왜냐하면 물리 메모리를 한 번에 4GB를 써 버리면 필요한 때만 물리 메모리를 쓴다는 의미가 없기 때문이다. 이 고민은 페이징 시스템(Paging System)으로 해결을 한다. 가상 메모리의 메커니즘은 다양한데, 페이징 시스템이 그중 가장 메이저 한 방식이라고 한다. 페이징 시스템은 물리 메모리에 크기가 동일한 사이즈로 페이지 단위를 만들어 올리는 방법이다. 리눅스 운영체제에서는 4KB 단위로 페이징을 한다. 이 의미는 물리 메모리인 0~4GB를 4KB 단위로 모두 주소를 쪼개서 페이지..
1. 가상 메모리란? 등장 배경과 개념 우리 PC는 대부분 폰 노이만 구조 기반으로, 프로그램의 코드는 무조건 메모리에 올려서 실행되어야 한다. 즉 프로세스가 실행되려면, 각 프로세스마다 충분한 메모리를 할당받아야 한다. 리눅스 프로세스는 하나에 4GB인데, 통상적인 메모리는 8GB 또는 16GB다. 멀티 프로세스로 프로그램을 실행시킨다고 가정했을 때 동시에 2개에서 4개 정도만 프로그램을 실행시킬 수 있다. 더 많은 프로세스를 동시에 실행하려면 메모리가 더 커져야 하는데 현실적으로 비용이 많이 든다는 한계가 있다. 따라서, 여러 프로세스를 돌릴 수 있는 구조가 필요해지면서 가상 메모리의 개념이 등장했다. 물리 메모리만 사용한다고 가정을 했을 때, 단순하게 생각해 보면 물리 메모리에 Process A와 ..