티스토리 뷰

정보보호

메모리 구조

ljy98 2021. 8. 26. 14:35
  • 메모리(Memory) 정의

- 프로그램 실행을 위한 데이터 및 코드가 들어있는 영역

 

  • 메모리 구조 개요

- 가장 효율성 있게 정보를 저장하고 검색할 수 있도록 데이터 저장소를 구현하는 방법

- 같은 프로그램일지라도 메모리 관리에 따라 성능 차이 발생

- 메모리 관리가 되지 않은 경우 성능 저하 발생

 

  • 선형 주소 공간(Linear Address Space) - 분할된 메모리 모델의 핵심

- 주로 가상 메모리로 불리며, 디버깅 할 때 볼 수 있는 주소

- 최대 4GB로 구성 (32비트 CPU에서만 선형 주소 공간을 쓰기 때문)

- 낮은 주소부터 높은 주소로 표현

- 하나의 프로그램의 커널, 힙, 스택, 텍스트 등 영역들로 분할

- 커널과 사용자 영역의 크기는 일정한 규칙을 가짐

  (일반 모드) 커널 : 사용자 = 2GB : 2GB

  (4GT 모드) 커널 : 사용자 = 1GB : 3GB

- 4GT는 4-Gigabyte Turning의 약자로 응용프로그램 메모리 터닝 또는 /3GB 스위치로 불림

- 무조건 4GB가 좋다고 할 수는 없음 (운영체제 운영에 메모리가 부족할 수 있음)

- 운영체제에 따라 CPU 아키텍처에 따라 설정(PAE)에 따라 커널과 유저의 크기는 달라질 수 있음

 

  • 메모리 구조 영역
텍스트(text) 영역 실행할 프로그램의 코드가 저장되는 영역
데이터(Data) 영역 전역 변수, 정적(static) 변수 등이 저장되는 영역
초기화된 데이터 영역과 초기화되지 않은 데이터 영역 구분(BSS)
힙(Heap) 영역 메모리 동적 할당 시 데이터가 저장되는 영역
높은 주소 방향으로 데이터 증가
스택(Stack) 영역 지역 변수, 매개변수 등의 임시 데이터가 저장되는 영역
후입선출(LIFO, Last In First Out)
낮은 주소 방향으로 데이터 증가

 

[그림 1] 메모리 구조

'정보보호' 카테고리의 다른 글

메모리 보호 기법과 우회 기법  (0) 2021.08.26
버퍼 오버플로우  (0) 2021.08.26
소프트웨어 취약성 개요  (0) 2021.08.26
보안 솔루션 종류와 이해  (0) 2021.08.16
8/3 과제 - IP Spoofing 공격 및 대응 방안  (0) 2021.08.03
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/09   »
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
글 보관함