본문 바로가기
public void static main()/Etc

[OS] 메모리 영역

by 햄리뮤 2022. 2. 1.
반응형

운영체제 관련 제대로 배워본적이없어서 설날이고 시간도 많으니까 운영체제 관련해서 공부를 시작!

남에게 알려줄 수 있는 정도로 열심히 공부해보자!

 


메모리 구조

프로그램이 실행되기 위해서는 먼저 프로그램이 메모리에 로드 되어야 한다!

또한, 프로그램에서 사용되는 변수들을 저장할 메모리도 필요함!

 

프로그램이 운영체제로부터 할당받는 대표적인 메모리 공간은 4개정도이다!

 

1. 코드(code) 영역

2. 데이터(data) 영역

3. 스택(stack) 영역

4. 힙(heap) 영역


코드(code) 영역

메모리의 코드(code) 영역은 실행할 프로그램의 코드가 저장되는 영역으로 텍스트 영역이라고도 부른다.

CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리하게 된다.


데이터(data) 영역

  • 메모리의 데이터(data) 영역은 프로그램의 전역 변수화 정적(static)변수가 저장되는 영역이다.
  • 데이터 영역을 프로그램의 시작과 함께 할당되고, 프로그램이 종료되면 소멸된다.

스택(stack) 영역

  • 메모리의 스택(stack) 영역은 함수의 호출과 관계되는 지역 변수와 매개 변수가 저장되는 영역이다.
  • 스택 영역은 함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸한다.
  • 스택 영역에 저장되는 함수의 호출 정보를 스택 프레임(stack frame)이라고 한다.
  • 푸시(push) 동작으로 데이터를 저장하고, 팝(pop)동작으로 데이터를 인출한다.
  • 이런 스택은 후입선출(LIFO, Last-In First-Out)방식에 따라 동작하므로, 가장 늦게 저장된 데이터가 가장 먼저 인출된다.
  • 스택 영역은 메모리의 높은 주소에서 낮은 주소의 방향으로 할당된다.

힙(heap) 영역

  • 메모리의 힙(heap) 영역은 사용자가 직접 관리할 수 있는 "해야만 하는" 메모리 영역이다.
  • 힙 영역은 사용자에 의해 메모리 공간이 동적으로 할당되고 해제 된다.
  • 메모리의 낮은 주소에서 높은 주소의 방향으로 할당된다.

 

아주 좋은 예시를 써주신 블로거님 발견!

나는 Java를 다루지만 C언어로 예시를 들어주셨다.

[출처] https://st-lab.tistory.com/198

새해 복 많이 받으세요! 오늘도 공부하시느라 수고많다요!

2022년도 좋은일만 가득하기를!!

 

 

 

https://st-lab.tistory.com/198

 

메모리 구조 [Memory Structure]

안녕하세요. 오늘은 제목에서 밝혔듯 메모리 구조에 대해 알아보려 합니다. 흔히 메모리라고 하면 RAM을 지칭하는데요, 보통 컴퓨터 구조에 대해 학습하시거나 배우셨던 분들은 알겠지만 메모리

st-lab.tistory.com

http://www.tcpschool.com/c/c_memory_structure

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

** 그냥 하루하루 개인 공부한 것을 끄적 거리는 공간입니다.

이곳 저곳에서 구글링한 것과 강의 들은

내용이 정리가 되었습니다.

그림들은 그림밑에 출처표시를 해놓았습니다.

문제가 될시 말씀해주시면 해당 부분은 삭제 하도록하겠습니다. **

반응형

'public void static main() > Etc' 카테고리의 다른 글

[OS] 프로그램과 프로세스  (0) 2022.02.21
[OS] 멀티 프로그램, 프로세싱  (0) 2022.02.01
[Swagger] 스웩! 췤!  (0) 2022.01.29
[Redis] Redis란?  (0) 2021.11.18
[npm] npm이란  (0) 2021.05.05

댓글