본문 바로가기
pwnable/System Basic

메모리 정리

by Ryuuu 2018. 5. 8.

먼저 메모리를 보면 항상 커널이 사용하는 부분이 할당되어 있다. 운영체제를 켜면 로딩창이 나오는데 그 과정이 커널이 로딩되는 과정이라 할 수 있다. 그래서 작업관리자를 보면 항상 메모리 사용량이 0퍼가 아닌것이다.

따라서 메모리는 커널부분과 사용자가 사용할 수 있는 부분으로 나눌 수 있다.


또한 프로세스를 메모리에 올리는데 컴퓨터는 가상 메모리라는 개념을 사용하는데 가상메모리란 보조기억장치를 활용해 기존의 메모리보다 더 큰 작업을 원활히 이뤄지게 하는 것이다. 

예를 들어 내 메모리는 4GB인데 6GB만큼 사용하는 프로세스를 실행 시키면 너무 커서 메모리에 올릴 수 없다. 설사 올린다 하더라도 그 작업만 할 수 있고 다른 작업은 하나도 못하는 것이다. 그래서 프로세스의 일부만 주기억장치에 로딩되고 나머지는 보조기억장치(ssd, hdd)에 올라가게 된다.


또한 그렇게 올라간 메모리를 관리하는 기법에는 페이징 기법과 세그멘테이션 기법이 있다.


페이징 기법 : 고정된 크기로 메모리를 나누어 관리하는 것이다.


세그멘테이션 기법 : 각 세그멘테이션의 기능, 권한 등을 분류해 서로 크기가 다른 논리적인 분할로 메모리를 나누는 것이다.


8086 메모리는 세그멘테이션 기법을 이용해 전체 레이아웃을 분할하고 프로세스가 요구하는 작업을 할때는 페이지 단위를 이용해  동일한 크기로 실행시킨다.

'pwnable > System Basic' 카테고리의 다른 글

How to use pwntools  (2) 2018.06.08
리눅스 디렉토리 구조  (0) 2018.05.02
리눅스 구조  (0) 2018.05.02

댓글