«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Recent Posts
Link
관리 메뉴

log.Sehee

메모리 (Memory) 본문

CS

메모리 (Memory)

Sehe_e 2023. 11. 7. 12:31

메모리 계층 구조

운영체제(Operating System) | 메모리(Memory)

레지스터 (Register)

  : CPU의 데이터 처리 속도를 높이기 위해 도입한 CPU 내부의 작은 메모리.

  휘발성이며 속도가 가장 빠르고 기억 용량이 가장 작다.

 

캐시 (Cache)

  : CPU의 처리 속도와 주 기억장치의 접근 속도 차이를 줄이기 위해 사용. L1 / L2 / L3 캐시 등 여러 단계로 나누어진다.

  휘발성이며 속도가 빠르고 기억 용량이 작다.

+) L1 / L2 / L3 : 숫자가 작을수록 용량이 작고 빠르며 숫자가 클 수록 용량이 크고 느리다.

 

주기억장치 (RAM, Random Access Memory)

 : 주 기억 장치는 주로 DRAM을 의미한다.

  CPU가 현재 처리중인 데이터나 명령만을 일시적으로 저장하는 휘발성 메모리

 

하드 디스크 (HDD, Hard Disk Driver)

  : 보조 기억 장치, 전원을 꺼도 데이터나 정보가 없어지지 않는 비휘발성 메모리

 

 

운영체제의 캐시 & 웹브라우저의 캐시 / Cache-Control

웹 브라우저의 캐시 전략

 

운영체제의 캐시

운영체제의 캐시는 주기억장치에서 사용하는 프로그램과 데이터를 하드디스크에서 가져오는데 걸리는 시간을 줄이기 위한 기능이다.

임시 저장소에 적재 후 빠르게 액세스함으로 처리 성능을 높인다는 개념은 웹에서도 적용이 가능하다.

 

웹브라우저의 캐시 / Cache-Control

웹 브라우저는 서버와 HTTP 프로토콜을 통해 서버에게 요청을 하여 리소스를 가져온다.

통신 과정을 거치면서 클라이언트는 네트워크를 거치는 시간이 소비되며, 서버는 요청을 처리하는데 시간이 소비된다.

클라이언트가 똑같은 데이터를 서버에 재요청 시 통신 과정이 반복되는 과정은 비효율적이며 이 과정을 단축시키기 위해 캐시의 개념을 적용한 것이 Cache-Control이다.

 


가상 메모리

메모리가 실제 메모리보다 많아 보이게 한다.

가상 주소 공간은 메모리 관리 장치 (MMU, Memory Management Unit)에 의해 물리 주소로 변환된다.

메모리의 가상 주소를 물리적 주소로 일일이 번역한다면 작업 부하가 높아지니 MMU가 RAM을 페이지로 나누어 (Paging)독립된 항목으로 처리한다.

 


메모리 할당

[운영체제] 메모리 할당

: 프로그램이나 데이터를 주 기억 장치에 할당하는 기법

  연속 로딩 기법 (단일 / 다중 분할 할당) & 분산 로딩 기법 (페이징(Paging), 세그먼테이션(Segmentation))


단일 분할 할당

  : 한 번에 하나만 주 기억 장치의 USER 영역을 사용하는 기법

  1. 오버레이 (Overlay) : 프로그램의 메모리가 주 기억장치보다 클 때 프로그램을 분할 후 필요한 부분을 순서대로 주 기억장치에 적재하여 프로그램을 실행한다. 실행 중 주 기억장치의 메모리가 부족할 시 중첩하여 적재한다.
  2. 스와핑 (Swapping) : 주 기억장치에 적재한 하나의 프로그램과 보조기억장치에 적재한 다른 프로그램의 메모리를 교체한다.
    • Swap Out : 주 기억장치 -> 보조기억장치
    • Swap In : 보조기억장치 -> 주 기억장치

 


다중 분할 할당

1. 다중 분할 할당 (고정 분할 할당) / 정적 할당 기법

  : USER영역을 여러 개의 고정 크기로 분할하여 사용하는 기법. 프로그램 전체가 주 기억장치에 적재

  프로그램이 분할 영역보다 클 때, 분할 영역을 사용할 수 없어서 빈 공간으로 남은 전체 영역을 사용하는 외부 단편화 발생

  분할 영역보다 크기가 작은 프로그램 적재 시 내부 단편화 발생

 

2. 가변 분할 할당 (동적 분할 할당)

  : 프로그램을 주 기억장치에 적재할 때 필요한 크기로 영역을 분할하는 기법

  고정 분할 기법의 단편화를 줄이기 위해 고안되었으며 영역 사이 단편화는 발생할 수도 있다.

 

+

내부 단편화 : 메모리에 프로세스가 적재되었을 때 발생하는 빈 공간

외부 단편화 : 메모리에 남아있는 공간의 합이 프로세스의 크기보다 크지만 작업을 받아들이지 못하는 경우

 


페이징 (Paging)

페이지 (Page) : 가상 메모리(논리 주소)를 일정한 크기로 나눈 블록 단위

프레임 (Frame) : 물리 메모리(물리 주소)를 일정한 크기로 나눈 블록 단위

 

  : 논리 주소의 메모리를 동일한 크기의 페이지로 나누어 적재하는 기법

  페이지 테이블을 이용해 논리 주소에서 프레임을 가르키는 물리 주소로 매핑한다.

  외부 단편화는 발생하지 않지만 내부 단편화는 발생한다.

  고정 분할 분산 할당

 

페이지 테이블 (Page Table)

  : 논리 주소의 페이지를 물리 주소의 프레임으로 매핑할 정보를 가진 테이블

  per-process 데이터 구조로 모든 프로세스가 페이지 테이블을 가지고 있다.

 


세그먼테이션 (Segmentation)

세그먼트 (Segment) : 프로세스를 일정하지 않은 크기로 나눈 논리적인 블록 단위

 

  : 논리적 단위로 나뉘어 메모리에 배치, 미리 분할하는 것이 아닌 메모리를 사용할 시점에 할당된다.

  세그먼트 테이블을 사용하여 매핑하며 세그먼트는 크기가 일정하지 않기 때문에 limit 정보가 주어진다.

  내부 단편화는 발생하지 않지만 외부 단편화는 발생한다.

  가변 분할 분산 할당

 

세그먼트 테이블 (Segment Table)

  : 세그먼트 번호, 시작 주소, 세그먼트 크기(limit)를 갖고있다.

  CPU에서 해당 세그먼트의 크기를 넘어서는 주소가 들어오면 프로세스를 강제로 종료시킨다.

 


페이징과 세그먼테이션의 차이점

페이징 (Paging) 세그먼테이션 (Segmentation)
고정된 영역의 페이지 가변적 영역의 세그먼트
고정 분할 분산 할당 가변 분할 분산 할당
내부 단편화 O 내부 단편화 X
외부 단편화 X 외부 단편화 O

 

 

Comments