감자튀김 공장🍟

[OS] 메모리(Memory)와 메모리 계층 구조 본문

Study/Operating System

[OS] 메모리(Memory)와 메모리 계층 구조

Potato potage 2022. 4. 9. 18:37
반응형

메모리(Memory)

  • 메모리는 CPU가 실행할 프로그램 코드와 데이터를 저장하는 물리적 장치이다.
  • 실행될 프로그램의 코드와 데이터는 메모리에 적재되고 프로그램의 실행 중 발생하는 데이터 역시 메모리에 저장된다.
  • CPU는 메모리에 있는 코드와 데이터를 CPU 내부로 읽어 와서 계산하고 필요에 따라 결과를 메모리에 저장한다.

 

메모리 계층 구조

  • CPU 레지스터 (CPU registers)
    • CPU는 현재 실행할 코드와 데이터, 혹은 다음에 실행할 몇 개의 코드와 데이터를 미리 저장하는 목적으로 레지스터를 가지고 있다.
  • 캐시 메모리 (cache memory)
    • 캐시 메모리는 주기억장치로 사용하고 있는 메인 메모리보다 더 빠른 메모리로서 CPU의 빠른 처리 속도에 맞추기 위해 도입되었다.
    • 캐시 메모리가 있는 컴퓨터에서는 CPU가 캐시 메모리에서 프로그램 코드와 데이터를 읽어 실행하므로, 코드와 데이터는 메인 메모리에서 캐시 메모리로 미리 복사되어야 한다.
  • 메인 메모리 (main memory)
    • 메인 메모리에는 현재 실행 중인 모든 프로세스의 코드와 데이터, 읽거나 쓰여지고 있는 파일들의 블록들뿐 아니라 운영체제의 커널 코드와 커널 데이터들이 저장된다.
  • 보조기억장치 (secondary memory)
    • 보조기억장치는 하드 디스크, SSD와 같이 전원을 꺼도 지워지지 않는 대용량 저장 장치이다.

 

프로그램 실행과 메모리 계층 구조

  • 프로그램의 실행은 운영체제가 보조기억장치에 저장된 실행 파일(executable file)을 메인 메모리에 로딩하는 것으로 시작한다.
  • 메인 메모리에 로딩된 실행 파일의 코드와 데이터 중 당장 실행할 부분이 L3 캐시로 복사되고
  • L3 캐시에서 당장 실행할 코드와 데이터의 일부분이 L2, L1캐시로 복사된다.
  • CPU 코어는 L1 캐시에 들어 있는 코드를 실행한다.

 

메모리 계층 구조 사용 이유

  • 참조의 지역성(locality of reference) 때문이다.
  • 참조의 지역성이란 코드나 데이터, 자원 등이 아주 짧은 시간 내에 다시 사용되는 프로그램의 특성이다.
  • 예시) 캐시 메모리의 크기가 작지만 CPU는 한동안 캐시 속에 들어 있는 코드와 데이터를 반복적으로 액세스하기 때문에 빠른 캐시를 사용함으로써 얻는 이득이 캐시를 다시 채우기 위해 CPU가 대기하는 실보다 훨씬 크다.

 

출처

운영체제(Operating system), 황기태 지음

반응형
Comments