[OS] 15장: 주소 변환의 원리

2024. 6. 27. 01:25·🖥️ Computer Science/Operating System

15장: 주소 변환의 원리

개요

어떻게 메모리를 가상화 하여
효율성과 제어를 달성할 것인가 ?

효율성: 가상 주소 → 물리주소 변환의 속도

제어권: 접근 가능한 메모리 위치 제한

유연성: 프로그래밍 편의

메모리 가상화

  • 하드웨어 지원이 필요함
    • 빠른 주소 변환
    • MMU, TLB, Cache ..
  • OS 역할
    • 빈 공간 관리 및 할당
    • 관리 효율 및 접근 제어
    • 가상 공간의 동적 운영

메모리 사용 예

void func() {
        int x = 3000;
        x = x + 3;
}

어셈블리어 변환

  1. 128 번지 명령어 인출
  2. 명령 실행
  3. 132 번지 명령어 인출
  4. 명령 실행
  5. 135 번지 명령어 인출
  6. 명령 실행

가상 주소와 물리 주소

물리적 주소

  • 물리 메모리에 그대로 올리면 안됨
    → OS 재배치 작업 필요
  • 메모리 접근 시마다 실제 주소로 변환 작업

Base/Bounds Register

  • Base Register = 재배치된 위치의 시작 주소
  • Bound Register = 재배치된 위치의 상한점

실제 물리주소 = 가상주소 + Base

Bound 레지스터는 범위 벗어났는지 등의 무결성 검사

Base/Bounds 문제점

  • Stack과 Heap 사이 공간이 낭비됨 = 내부 단편화
  • 프로세스마다 요구하는 주소 공간의 크기가 다르면 ?
  • 물리 메모리가 가상 주소 공간보다 작으면 ?

운영체제의 역할

메모리 접근 시 주소 변환은 하드웨어가 실행함
OS는 뭘 할까 ?

운영체제 할 일

  1. 빈공간 관리
    • 물리공간에서 적절한 위치를 찾아 할당
    • 사용 완료된 공간은 빈 공간으로 회수
  2. Context Switch
    • Base/Bounds 레지스터의 값 저장 및 복원
      PCB에 저장하여 관리함 (커널 모드 필요)
    • 필요 시 프로세스 재배치
  3. 프로세스 실행 시
    • 메모리 예외 발생처리

만약 할당되는 크기가 다르다면 ?
연속되는 빈 공간을 따로 관리 ?

저작자표시 (새창열림)

'🖥️ Computer Science > Operating System' 카테고리의 다른 글

[OS] 17장: Free-Space Management  (0) 2024.06.29
[OS] 16장: Segmentation  (0) 2024.06.28
[OS] 13장: Memory Virtualization  (0) 2024.06.26
[OS] Cuncurrency: 동시성 개요  (0) 2024.05.06
[OS] 멀티 프로세서 스케줄링  (1) 2024.05.05
'🖥️ Computer Science/Operating System' 카테고리의 다른 글
  • [OS] 17장: Free-Space Management
  • [OS] 16장: Segmentation
  • [OS] 13장: Memory Virtualization
  • [OS] Cuncurrency: 동시성 개요
kyxxn
kyxxn
컴퓨터공학을 좋아하는 대학생의 공부 일기
  • kyxxn
    컴공 학부생의 공부 일기
    kyxxn
  • 전체
    오늘
    어제
    • 분류 전체보기 (156)
      • 📱 iOS (64)
        • Xcode (10)
        • Swift (17)
        • Swift Concurrency (12)
        • UIKit (21)
        • SwiftUI (0)
      • 🖥️ Computer Science (57)
        • 🏛️ Software Architecture Pa.. (2)
        • 👨🏻‍🎨 Design Pattern (3)
        • Data Structure (4)
        • Algorithm (10)
        • Computer Architecture (4)
        • Operating System (19)
        • Network (15)
      • ✍🏻 회고록 (9)
      • 🎸 기타 (25)
        • 해커톤 (1)
        • git (6)
        • 세미나 (1)
        • 책을 읽고 (1)
        • AOS, Kotlin (6)
        • Reinforcement Learning (9)
  • 블로그 메뉴

    • 링크

      • 깃허브
      • 일상 블로그
    • 공지사항

    • 인기 글

    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.0
    kyxxn
    [OS] 15장: 주소 변환의 원리
    상단으로

    티스토리툴바