본문 바로가기

공부/IT

IT_메모리(Memory)

가상 메모리(Virtual Memory)

- 메모리 관리 기법중 하나

- 기계에 실제로 이용 가능한 기억 자원을 이상적으로 추상화 -> 유저에게 매우 큰 메모리로 보이게 만드는 것

- 실제 메모리 주소가 아닌 가상의 메모리 주소를 주는 방식

 

가상적으로 주어진 주소

- 가상 주소(Virtual Address) 또는 논리 주소(Logical Address)라고 함

 

실제 메모리 상에서 유효한 주소

- 물리 주소(Physical Address) 또는 실주소(Real Address)라고 함

 

가상 주소 공간(Virtual Address Space)은 메모리 관리 장치(MMU : Memory Management Unit)에 의해서 물리 주소로 변환됨

-> 프로그래머는 가상 주소 공간에서 작업을하여 프로그램의 데이터가 주메모리상에 어떻게 존재하는지를 의식할 필요가 없다

 

 

가상 메모리의 주소는 실제 메모리의 주소와 연결 되어있다

 

MMU를 통해 가상 메모리 주소와 실제 메모리 주소를 매칭하여 사용한다

 

가상 메모리 주소 표기를 16진수로 한다

 

 

 

메모리 영역 구분

프로그램은 Instruction(명령)과 Data(정보)로 구분

 

 

 

Code 영역

코드 자체(Text)를 구성하는 메모리 영역 Hex파일, BIN파일 메모리

프로그램 명령이 위치하는 곳

기계어로 제어되는 메모리 영역

 

Data 영역

전역변수(Global), 정적변수(Static), 배열(Array), 구조체(Structure) 등이 저장되는 영역

1. 초기화 된 데이터는 Data영역에 저장

2. 초기화 되지 않은 데이터는 BSS (Block Stated Symbol)영역에 저장

프로그램 실행시 시작 - 프로그램 종료시 시스템에 반환

함수 내부에서 선언된 Static 변수는 프로그램이 실행시 공간만 할당, 초기화는 해당 함수가 실행될 때

 

Heap 영역

필요에 의해 동적으로 메모리를 할당할 때 사용되는 영역(동적 데이터 영역)

메모리 주소 값에 의해서만 참조되고 사용되는 영역

 

Stack 영역

프로그램이 자동으로 사용하는 임시 메모리 영역

지역(Local) 변수, 매개변수(Parameter), 리턴 값 등 일시적으로 사용되었다가 소멸하는 데이터를 저장하는 영역

함수 호출시 생성 - 함수 종료시 반환

각 프로세스마다 스택 영역이 할당 됨, 프로세스가 메모리에 로드 될 때 스택 사이즈가 고정되어 있어 런타임에 스택 사이즈를 수정할 수 없음

명령 실행시 자동으로 증가/감소 하기에 보통 메모리의 마지막 번지를 지정함

 

 

- Code(text), Data, Stack 영역은 컴파일러가 자동으로 메모리 영역을 결정

- Heap 영역은 프로그래머에 의해 프로그램 실행중에 결정

- Code, Data, Heap 영역은 하위 메모리 부터 할당

- Stack 영역은 상위 메모리 부터 할당

- SMA(Static Memory Allocation) : 정적 메모리(Data 영역, Stack 영역을 사용)

  • Data 영역 : 프로그램 시작과 동시에 할당되며 프로그램이 종료되면 OS에 반환
  • Stack 영역 : 함수 시작과 동시에 할당되며 함수 종료시 OS에 반환

- DMA(Dynamic Memory Allocation) : 동적 메모리(Heap 영역을 사용)

  • Heap 영역 : Stack에서 Pointer 변수할당, Pointer변수로 Heap 영역의 원하는 크기만큼 할당해서 사용

 

 

 

 

 

 

 

주기억장치(Main Memory Unit)

RAM(Random Access Memory)

- 읽기, 쓰기 가능하고 컴퓨터 전원이 꺼지면 모든 내용이 사라짐(휘발성 메모리)

- 접근할 수 있는 메모리 여영역인데 직접접근이 아닌 가상 메모리를 통한 접근이다

- 가상 메모리는 운영체제가 관리함

- 프로그램을 실행하면 실제 실행되는 데이터가 로드 되는 곳

- 변수는 주기억장치(Main Memory Unit)에 저장 된다

 

 

ROM(Read Only Memory)

- 읽기만 가능하고 컴퓨터 전원이 꺼지더라도 내용이 보존된다(비휘발성 메모리)

- ROM의 일부분에 쓰기도 가능하도록 플래시 메모리(Flash Memory)를 하는 경우도 있다

- 중요한 정보를 저장 : BIOS, Firmware 등

- 프로그램 설치 파일들이 저장되는 곳

'공부 > IT' 카테고리의 다른 글

IT_정수와 실수 표현  (0) 2023.03.22
IT_진법 변환  (0) 2023.03.20
IT_ASCII(아스키)  (0) 2023.03.18
IT_CS 용어  (0) 2023.03.17
IT_프로그램 실행  (0) 2023.03.13