[OS] 3-1. 기억장치 관리

공부 스파이럴·2024년 3월 12일
0

운영체제

목록 보기
16/27

개요

  • 다중프로그래밍 환경에서 여러 프로세스가 처리장치를 공유함으로써 CPU 이용률 및 사용자 작업의 처리 속도를 향상시켰는데, 이를 위해서는 기억장치 속에 여러 개의 프로세스들이 적재되어 있어야 함
  • 초기 컴퓨터 시스템에서는 주기억장치가 매우 비싼 장치였으므로 효율적으로 이용하고 관리하고자 하는 노력
    -> 기억장치의 효율적인 사용을 위한 관리 기법
  • 프로그램과 데이터는 직접 실행되거나 참조되기 위하여 주기억장치 내에 있어야 함
  • SSD(Solid State Drive)
    • 자기 디스크가 아닌 반도체 메모리 내장함
    • 처리 속도 빠르고 소음이 없고 전력 소모량이 적은 플래시 메모리기반의 모델

주소 바인딩(Address binding)

  • 주소 바인딩(address binding)
    • 논리적 주소(logical address)를 가진 프로그램이 실행되기 위해서 물리적 주소사상(mapping)되는 것
      -> 기억장치관리기(Memory Management Unit)에 의해 수행
  • 주소 바인딩 종류(바인딩 시점에 따라)
    1. 컴파일 시간(compile time) 바인딩
      • 프로세스가 적재될 기억장치의 위치를 미리 알 수 있다면 컴파일러는 절대 코드를 생성
      • 실행 시 위치가 바뀌면 다시 컴파일 해야 함
    2. 적재 시간(load time) 바인딩
      • 적재될 위치를 컴파일러가 알지 못하면 컴파일러는 일단 이진 코드를 재배치 가능 코드로 만듦
      • 주소 바인딩은 프로그램이 기억장치에 적재되는 시간에 적재기(loader)에 의해 이루어짐
    3. 실행 시간(execution time) 바인딩
      • 프로세스가 실행되는 동안에 기억장치의 한 세그먼트에서 다른 세그먼트로 옮겨질 경우에 주소 바인딩은 실행시간에 이루어짐

논리적 주소와 물리적 주소

  • 중앙처리장치가 생성하는 주소를 논리적 주소(가상 주소)라 하며, 기억장치가 취급하는 주소를 물리적 주소(메모리의 실제 주소)라 한다.
  • 실행시간 바인딩 기법의 경우에는 논리적 주소와 물리적 주소가 다름
    • 이 때 논리적 주소를 가상주소(virtual address)라 함
  • 기억 장치 관리기(MMU : Memory Management Unit)
    • 재배치(relocation) 레지스터는 세그먼트의 시작 주소를 가지고 있으며, 논리적 주소가 들어올 때마다 모든 주소에 재배치 레지스터가 가지고 있는 값을 더해서 물리적 주소를 만듦
    • 논리적 주소 -> 물리적 주소

0개의 댓글