본문 바로가기

CS/운영체제

메모리(RAM) 구조

메모리(RAM) 구조란?

  • 메모리 공간 종류
    • Code (코드 영역)
      • 실행할 프로그램의 코드
    • Data (데이터 영역)
      • 전역 변수 , 정적 변수
    • Heap (힙 영역)
      • 사용자의 동적 할당
      • 런 타임에 크기가 결정됨
    • Stack (스택 영역)
      • 지역 변수, 매개 변수
      • 컴파일 타임에 크기가 결정됨

컴파일 타임 과 런타임

컴파일 (Compiletime)
- 프로그램을 생성하기 위해 개발자는 첫째로 소스코드를 작성하고 컴파일이라는 과정을 통해 기계어코드로 변환 되어 실행 가능한 프로그램이 되며, 이러한 편집 과정을 컴파일 타임이라고 합니다.

컴파일 타임 에러 (Compile time error)
- 소스코드가 컴파일 되는 과정 중에 발생하는 문제들로 인해 컴파일이 방해되어 발생하는 오류들을 의미합니다.

  • Syntax error ( 구문 에러 )
  • Type check error ( 변수나 매개변수가 유효한 유형이 아닐때 발생하는 에러 )

런타임 (Runtime)
- 컴파일 과정을 마친 프로그램은 사용자에 의해 실행되어 지며, 이러한 응용 프로그램이 동작되어지는 때를 런타임 (Runtime) 이라고 합니다.

런타임에러 (Runtime error)
- 이미 컴파일이 완료되어 프로그램이 실행중임에도 불구하고, 의도치 않은 예외상황으로 인하여 프로그램 실행 중에 발생하는 오류 형태를 의미합니다.

  • 0 나누기 오류
  • Null 참조 오류
  • 메모리 부족 오류 등

 


* 메모리 구조에는 4가지의 종류인 Code, Data, Heap, Stack 이 있습니다.
Code 는 소스코드가 들어가는 부분이고
Data는 전역변수, 정적변수가 할당되는 부분입니다.
Heap 은 사용자가 직접 관리하는 영역으로 데이터가 동적으로 할당되는 부분이고,
Stack 은 함수의 호출정보, 지역변수, 매개변수들이 저장되는 곳입니다.

 

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

가상 메모리  (0) 2022.12.26
CPU 스케줄러  (0) 2022.12.26
프로세스와 스레드  (0) 2022.12.26
운영체제  (0) 2022.12.26