실제 우리가 사용하고 있는 운영체제에서 가상 메모리를 사용하고 있기 때문에 개발자는 가상 메모리를 이해하는 것이 중요하다. 운영체제에 의해 메모리 관리가 어떻게 이루어지는지, 또 page fault, page 교체 알고리즘은 어떤 것인지에 대해서 알아보자. 가상 메모리 (virtual memory) 가상 메모리는 실제 물리 메모리 개념과 개발자 입장의 논리 메모리 개념을 분리한 것이다. 이렇게 함으로써 개발자는 메모리 크기를 전혀 신경쓰지 않고, 손 쉽게 프로그램을 작성할 수 있게 된다. 운영체제는 가상 메모리 기법을 통해 프로그램의 논리적 주소 영역에서 필요한 부분만 물리적 메모리에 적재하고, 직접적으로 필요하지 않은 메모리 공간은 디스크(Swap 영역)에 저장하게 된다. 요구 페이징 (demand p..
Paging을 알아보기에 앞서 간단하게 논리적 주소와 물리적 주소의 차이에 대해 살펴보자. 논리적 주소 (logical address) 프로세스가 메모리에 적재되기 위한 독자적인 주소 공간인 논리적 주소가 생성된다. 논리적 주소는 각 프로세스마다 독립적으로 할당되며, 0번지부터 시작된다. 물리적 주소 (physical address) 물리적 주소는 프로세스가 실제로 메모리에 적재되는 위치를 말한다. 주소 바인딩 (address binding) CPU가 기계어 명령을 수행하기 위해 프로세스의 논리적 주소가 실제 물리적 메모리의 어느 위치에 매핑되는지 확인하는 과정을 말한다. Paging paging기법은 프로세스의 메모리 공간을 동일한 크기의 page 단위로 나누어 물리적 메모리의 서로 다른 위치에 pag..
- Total
- Today
- Yesterday
- 릿코드
- leetcode
- 김영한
- 노마드코더
- 문자열
- webflux
- 데이터베이스
- 북클럽
- mysql 8.0
- 자료구조
- Spring
- Real MySQL
- 코틀린
- 정렬
- 그리디
- kotlin
- 코테
- 스프링부트
- 스프링
- 구현
- Algorithm
- 스프링 부트
- 인프런
- 노마드
- spring boot
- MySQL
- 리팩토링
- 알고리즘
- 파이썬
- 백준
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |