씬디의 블로그

[운영체제] 메모리 구조 - 코데힙스 본문

CS/운영체제

[운영체제] 메모리 구조 - 코데힙스

cyndi 2024. 5. 18. 23:57

프로그램이 실행되면 운영체제(OS)는 4가지 영역으로 공간을 할당한다

 

프로그램의 정보를 메모리에 로드해야 하고

프로그램이 실행되는 동안 CPU가 코드를 처리하기 위해서는

메모리가 명령어와 데이터들을 저장해야 한다

 

메모리를 그냥 사용하면 비효율적이기 때문에, 어느정도 구분을 시켜서 사용하는 것이 효율적이다

그래서 메모리의 구역을 논리적으로 나눈 영역이 -> 코데힙스 이다

 

코드 영역

  • 우리가 작성한 코드를 저장하는 영역이다
  • 프로그램이 시작하고 끝날 때 까지 메모리에 계속 남아 있다

데이터 영역

  • 우리가 코드에 작성한 변수(전역변수, 타입변수)들을 저장한다
  • 프로그램의 시작과 함께 할당되며, 프로그램이 종료되면 소멸한다

힙 영역

  • 클래스의 인스턴스, 클로저 등을 저장한다
  • 할당시 스택처럼 차곡차곡 쌓는게 아니라, 스캔 후 비어있는 메모리를 찾아서 할당하기에 느리고 관리가 필요하다
  • 관리를 안하면 할당해제가 안되고, 그러면 메모리 누수가 발생한다
  • 그래서 사용자가 직접 관리할 수 있고, 관리해야만 하는 영역이다

스택 영역

  • 프로그램이 자동으로 사용하는 임시 메모리 영역이다
  • 함수 내부 혹은 함수 호출 시 사용되는 값들을 저장한다
  • 함수의 호출과 함께 할당되며, 함수의 호출이 종료되면 메모리에서도 해제가 된다

'CS > 운영체제' 카테고리의 다른 글

[운영체제] Copy-On-Write(COW)  (1) 2023.12.24