[운영체제] 메모리

2025. 1. 28. 00:51·CS/OS

 

컴퓨터 메모리

  • 메모리: 데이터와 프로그램을 저장하는 중요한 컴퓨터 구성 요소

메모리 설계 제약

  • 용량: 메모리 용량이 충분해야, 이에 맞는 애플리케이션 개발이 가능.
  • 비용 (비트당): 메모리 비용은 다른 구성 요소들과 합리적으로 균형을 맞춰야 함.
  • 액세스 시간: 빠른 액세스 시간으로 최상의 성능을 얻어야 함.

현대 메모리 기술

  • 더 작은, 더 비싼 (비트당 비용이 높은), 더 빠른 메모리와
  • 더 크고, 더 저렴한 (비트당 비용이 낮은), 더 느린 메모리
  • 메모리 계층: 여러 메모리 기술을 계층적으로 사용하는 것이 중요!

메모리 계층구조 (Memory Hierarchy)

메모리 계층구조 참고사진

  • 계층화: 작은, 빠른, 비싼 메모리는 크고 느린, 저렴한 메모리로 보충됨.
  • 프로세서와의 동기화: 효율적인 메모리 계층구조는 프로세서 속도에 맞춰야 한다.
  • ⭐⭐⭐⭐상위 계층 메모리는 자주 참조되는 데이터를 저장하여 하위 계층 메모리 접근을 최소화.

참조의 지역성 (Locality of Reference)

  • 프로그램은 메모리의 상대적으로 작은 부분만을 자주 참조.
    • 시간적 지역성 (Temporal locality): 같은 데이터를 곧 다시 참조할 가능성.
    • 공간적 지역성 (Spatial locality): 인접한 데이터를 곧 참조할 가능성.


평균 액세스 시간 (Average Access Time)

  • 히트(Hit): 데이터가 상위 레벨에서 검색된 경우.
    • 적중률 (H): 상위 레벨에서 찾은 모든 메모리 액세스의 비율.
    • 상위 레벨 액세스 시간 (T1).
    • 하위 레벨 액세스 시간 (T2).
  • 미스(Miss): 데이터가 하위 레벨에서만 검색된 경우.
    • 미스률 (M) = 1 - 적중률.
  • 공식:
  • T = H*T1 + (1- H)(T1 + T2)
  • T = - T2 H + (T1 + T2)

예제 1 - 평균 시간 계산

  • 레벨 1 액세스 시간 = 0.1 μs, 레벨 2 액세스 시간 = 1 μs, 95%의 액세스가 레벨 1에서 발생한다고 가정. 바이트에 액세스하는 평균 시간?
  • T = (0.95)(0.1 us) + (0.05)(0.1 us + 1 us) = 0.095 + 0.055 = 0.15 us

예제 2 - 99%의 적중률이 97%의 적중률의 두 배라고 믿을 수 있는가?

  • 고려: 캐시 적중 시간은 1 사이클 미스 페널티는 100 사이클
  • 평균 액세스 시간: 97% 적중: 약 4 사이클 99% 적중: 약 2 사이클


캐시 메모리 (Cache Memory)

동기 및 해결책

  • 프로세서와 메모리 속도의 차이로 인해 프로세서가 메모리 액세스 시간을 기다리야 하는 문제 발생.
  • 캐시 메모리: 빠르고 작은 메모리로, 자주 참조되는 데이터를 저장하여 성능 향상.

캐시 메모리 구성 (Cache Organization)

  • 공간적 지역성: 더 큰 캐시 블록을 사용하고, 미리 데이터를 가져오는 방식.
  • 시간적 지역성: 최근에 사용된 데이터를 캐시에서 유지.

캐시 설계 (Cache Design)

  • 연관성(Associativity): 캐시의 유연성이 커지면 회로가 더 복잡해짐.
  • 캐시 크기(Cache Size): 캐시 크기가 클수록 적중률이 증가하지만, 구현의 어려움이 따름.
  • 블록 크기(Block Size): 블록 크기를 크게 하면 처음에는 적중률이 증가하지만, 너무 크면 성능 저하가 발생할 수 있음.

Direct Mapped vs. Set-Associative

  • Direct Mapped: 세트 당 한 줄로 구성된 캐시.
  • 2-way Set-Associative: 세트 당 두 줄로 구성된 캐시.


캐시 읽기 연산 (Cache Read Operation)

  1. 프로세서는 읽을 주소(RA)를 생성.
  2. 만약 주소가 캐시에 있으면, 바로 데이터를 반환.
  3. 캐시에 없다면, 해당 블록을 먼저 로드하고, 그 후 데이터를 반환.




캐시 쓰기 연산 (Cache Write Operation)

  • 쓰기 히트 (Write Hit) 시:
    • Write-through: 데이터가 캐시에 쓰여질 때마다 메모리에도 즉시 반영.
    • Write-back: 데이터가 변경되면, 캐시에서만 변경하고, 후에 메모리에 반영.
  • 쓰기 미스 (Write Miss) 시:
    • Write-allocate: 데이터가 캐시에 로드되고, 그 후 쓰기가 이루어짐.
    • No Write-allocate: 메모리로만 쓰고, 캐시에는 저장되지 않음.

다중 프로세서 환경에서의 문제

  • 메모리 일관성 문제 (Memory Coherence):
    • 여러 프로세서가 동일한 메모리 위치를 캐시할 때, 서로 다른 값을 가질 수 있음.
    • 예시:
      • 프로세서 1이 메모리 값을 변경하고, 프로세서 2는 구버전 값을 갖고 있을 수 있음.

저작자표시 비영리 동일조건 (새창열림)

'CS > OS' 카테고리의 다른 글

[운영체제] 프로세스  (0) 2025.01.28
[운영체제] 오퍼레이팅 시스템 개요  (0) 2025.01.28
[운영체제] virtual box에서 ubuntu 설치 및 터미널 명령어 실행하기  (0) 2023.07.09
운영체제 - 생산자 소비자 문제 semaphore을 활용하여 해결하기  (0) 2023.05.31
가상머신에서 우분투 설치하는 법  (0) 2023.05.26
'CS/OS' 카테고리의 다른 글
  • [운영체제] 프로세스
  • [운영체제] 오퍼레이팅 시스템 개요
  • [운영체제] virtual box에서 ubuntu 설치 및 터미널 명령어 실행하기
  • 운영체제 - 생산자 소비자 문제 semaphore을 활용하여 해결하기
abyss-s
abyss-s
프론트엔드 공부합니다.
  • abyss-s
    abyss-s의 블로그입니다.
    abyss-s
  • 전체
    오늘
    어제
    • 분류 전체보기 (188)
      • Web (16)
        • JavaScript (6)
        • TypeScript (1)
        • React (5)
        • Vue (0)
        • Storybook (1)
        • Next.js (1)
      • Backend & Infra (8)
        • Database (3)
        • Node.js (2)
        • SpringBoot (1)
      • PS (71)
      • CS (30)
        • OS (13)
        • Structure & Algorithm (5)
        • Network (10)
        • 정보처리기사 (2)
      • Language (18)
        • OOP (1)
        • JAVA (13)
        • C++ (4)
      • Activities (12)
        • 멋쟁이 사자처럼 (2)
        • OSSCA (3)
        • LG U+ URECA (3)
        • Project (2)
      • AI (0)
      • Git & Github (5)
      • Notion (1)
      • IT (4)
      • Statistics (11)
      • Book (4)
      • Diary (1)
      • Game (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
    • 백준
    • 트위터
  • 공지사항

    • abyss-s의 티스토리에 오신 것을 환영합니다.
  • 인기 글

  • 태그

    자바스크립트
    github
    Python
    Java
    운영체제
    React
    BFS
    생활코딩
    JavaScript
    C++
    자바기반응용프로그래밍
    백준
    네트워크
    통계학
    파이썬
    OS
    DP
    BAEKJOON
    코드트리
    그리디
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
abyss-s
[운영체제] 메모리
상단으로

티스토리툴바