Everyday Dev System

CS : CPU와 메모리 본문

백엔드 개발자 필수 요소

CS : CPU와 메모리

chaeyoung- 2023. 8. 17. 15:56

스케줄링 

  • 선점형 메모리 : 우선순위 스케줄링, 라운드 로빈, 다단계 큐
  • 비선점형 메모리 :
    • FCFS (먼저 도착한 작업을 먼저 처리)
    • SJF (수행 시간이 짧은 작업 먼저 처리)
    • HRN (SJF 단점을 보완) → (대기시간 + 실행시간) / 실행시간

 

메모리 종류

  • 레지스터 : CPU 내에 작은 메모리로, 휘발성, 속도가 빠르고 용량이 적다. (CPU 연산을 위한 저장소이다)
  • 캐시 : L1(CPU 내에 존재) L2(메모리 영역에 존재), L3, 휘발성, 속도가 빠르고, 용량이 적은 편
  • 주기억 장치 : 휘발성, DRAM, 속도 및 용량이 보통
  • 보조기억장치 : HDD, SSD, 속도가 느리고, 용량이 크다.

 

캐시란?

Data를 미리 복사해놓은 임시 저장소이다.

빠른 장치와 느린 장치 속도 차이에 따른 병목 현상을 줄이는 메모리이다.

 

1) 프로그램 실행 시 디스크를 읽어 메인 메모리에 복사

2) CPU가 메인 메모리에서 Data를 읽어오며 작업을 처리

3) 캐시가 중간에서 한번 더 메인 메모리의 Data를 복사

 

 

레지스터는 메모리와 CPU의 속도 차이를 해결,

주기억장치는 캐시 메모리와 보조기억장치의 속도 차이를 해결.

 

캐시의 지역성 이란? 자주 사용자흔 데이터의 특성을 의미한다.
캐시 히트는 캐시에 원하는 데이터를 참조하는 것이고,
캐시 미스는 캐시에서 조회를 시도하였으나, 캐시에 저장되어 있지 않아 메인 메모리를 통해 참조하는 것이다.

 

메모리 할당

  1. 연속 할당
    • 고정분할 방식에서는 내부단편화가 발생
    • 가변분할 방식에서는 외부단편화가 발생 
      • 내부 단편화란? 메모리를 나눈 크키보다 프로그램이 작아서 들어가지 못하는 공간이 많이 발생
      • 외부 단편화란? 메모리를 나눈 크기보다 프로그램이 커서 들어가지 못하는 공간이 많이 발생
        • 즉, 들어갈 공간보다 들어갈 것이 더 커서 들어가지 못하고 남는 것이다.
        • 외부에서 기다리는 의미로 기억하면 편하다.
  2. 불연속 할당
    • 단점 :
      • 메모리 공간 할당 과 해제 시에 오버헤드 발생
      • 메모리 공간이 분산되어 있어, 프로세스의 페이지 교체 작업이 복잡하다.

1) 페이징

- 동일한 크기의 페이지 단위 나누어 메모리의 서로 다른 위치에 프로세스를 할당
- 빈데이터(홀)의 크기가 균일하지 않은 문제가 없어지지만 주소 변환이 복잡

2) 세그멘테이션

- 의미 단위인 세그먼트로 나누는 방식
- 코드와 데이터 등을 기반으로 나눌 수 있으며, 함수 단위로 나눌 수도 있음을 의미합니다.
- 공유와 보안 측면에서 좋습니다.
- 빈데이터(홀) 크기가 균일하지 않는 문제 발생

3) 페이지드 세그멘테이션

- 공유나 보안은 세그먼트로 나누고
- 물리적 메모리는 페이지로 나누는 방식

 

페이지 교체 알고리즘

'백엔드 개발자 필수 요소' 카테고리의 다른 글

JPA와 Spring Data JPA 차이  (0) 2023.06.29
REST 하다는 것  (0) 2023.06.21