본문 바로가기

gyub's 공부일기/그저 내 공부

[OS] 메모리 페이징

메모리 페이징이란?

: 컴퓨터 운영체제에서 메모리 페이징은 주 메모리에서 사용하기 위해 보조 저장소에서 데이터를 저장하고 검색하는 메모리 관리 체계이다.

 

메모리는 알겠지만,,,그래서 페이징한다는 것이 뭘까?

 

페이징: 논리 주소의 고정된 페이지라고 불리는 블록들로 분할 관리하는 기법이다.

(대충 논리 주소를 일정 크기(?)의 블록들로 분할하여 사용한다는 뜻 같다.)

 

그렇다면, 이 페이징 기법이 어떤 구조이고, 왜 쓰이는가를 알아보자.

 

프로세스를 연속할당하면 외부 단편화가 발생하고, 그로인해서 자투리 공간이 남아서 못 쓰는 부분이 생긴다.

위의 상황은 들어가려는 PROCESS가 빈 부분(HOLE)보다 커서 못 들어가는 것 같다.

그래서 이러한 경우를 없애기 위해 개발자들은 페이징 방법을 했다.

논리주소를 동일한 크기로 자른 후 물리 주소도 동일한 크기로 자르는 것이다.

그림 출처: https://jhnyang.tistory.com/290

​위와 같이 배치를 하게 되면 외부단편화가 발생하지 않는다.

 

단, 그렇다고 해서 논리주소와 물리주소가 동일한 크기로 잘랐을 때 위 그림처럼 딱 맞아 떨어지리라는 법은 없다.

그러므로 메모리를 100%를 다 쓰는 것이 목적이 아닌 100%에 최대한 가깝게 사용할 수 있는 방법이다.

반응형

'gyub's 공부일기 > 그저 내 공부' 카테고리의 다른 글

[Android] 프로세스 라이프사이클  (0) 2022.03.20
[Android] 프로세스  (0) 2022.03.20
배열 vs 리스트  (0) 2022.02.14
Synchronized  (0) 2021.04.08
Serialization  (0) 2021.04.08