공부기록

메모리 관리 요구 조건 본문

CS/OS

메모리 관리 요구 조건

코타쿠 2021. 5. 17. 14:08
  • 메모리 관리 요구 조건
    • 재배치 (Relocation)
      • 처리기의 효율을 극대화 하기 위해 수행준비된 프로세스들은 주기억 장치로 스왑 인, 또는 스왑 아웃 된다.
      • 스왑 아웃되서 스왑 인 될때, 그 프로세스는 이전과 동일한 주기억장치로 적재되지 않을 수 있다.
      • 따라서 스와핑시에 주기억장치에서 프로그램의 위치가 변경 될 수 있어야 한다.
      • 프로그램 주기억장치에서의 위치가 변경되어도, OS와 처리기 하드웨어는 프로그램 코드의 메모리 참조 부분을 실제 물리주소로 변환할 수 있어야한다.  
      • 이 실제 물리주소는 메인 메모리에서의 프로그램의 현재 위치이다.
    • 보호
      • 프로세스는 다른 프로세스에 의한 간섭으로 부터 보호되어야 한다.
      • 따라서 다른 프로세스에 속한 프로그램은 허가없이 다른 프로세스의 메모리를 접근해서는 안된다.
      • 이 것은 재배치에 의해 난이도가 올라간다.
        • 컴파일 타임에 프로세스의 위치를 확정 지을 수 없다. 
        • 따라서 프로세스들에 의한 모든 메모리 참조는 런타임에 적절한 메모리 참조인지 확인되어야 한다.
      • 메모리 보호는 처리기에 의해 만족되어야 한다.
        • OS는 모든 메모리 참조를 예측할 수 없기 때문이다.
        • 따라서 메모리 참조하는 명령이 실행될 때 만이 메모리를 참조할 수 있는지 확인할 수 있다.
        • 이를 위해, 처리기는 이러한 능력을 가져야만 한다.
    • 공유
      • 모든 보호 정책은 몇 개의 특정한 프로세스가 메인메모리의 특정부분에 접근하는 것을 허용해야 한다.
      • 주기억장치 관리 시스템은 필수적인 보호 정책은 유지하면서 공유자원에 대한 제한된 접근은 허용해야 한다.
    • 논리적 구성
      • 주기억장치와 보조기억장치는 바이트의 연속으로 구성되어 선형 구조를 가진다.
      • 이 것은 프로그램들이 구성되는 방식과 대응하지 못한다. 프로그램들은 module로써 구성되기 때문이다.
      • OS와 하드웨어가 모듈로 구성된 사용자 프로그램들을 효과적으로 처리할 경우, 다음의 이점이 생긴다.
        • 각 모듈의 작성과 컴파일은 독립적으로 이루어 질 수 있으며, 서로 다른 모듈간에 이루어지는 참조는 수행시간에 시스템에 의해 해결된다.
        • 비교적 적은 비용으로, 모듈간의 다른 레벨의 보호정책이 가능하다.
        • 모듈들이 프로세스들 간에 공유되는 메카니즘이 가능해진다. 모듈 레벨로 공유하는 것은 사용자가 프로그램을 바라보는 방식과 상응한다. 따라서 사용자가 원하는 대로 공유를 명시하기가 쉽다.
      • 이러한 요구조건을 만족하는 방식은 세그멘테이션이다.
    • 물리적 구성
      • 주기억 장치와 보조기억 장치간의 데이터 흐름은 중대한 사안이다.
      • 이러한 흐름을 프로그래머에게 맞길 수 있지만 이것은 두 가지 이유에 의해 굉장히 실용적이지 못하다.
        • 메인 메모리는 부족하기에 프로그래머는 overlaying을 해야한다. (overlaying에서 프로그램은 프로그램의 모듈들이 주기억 장치의 같은 공간을 사용할 수 있도록 구성된다. 주 프로그램은 같은 공간을 사용하는 모듈들을 빼고 넣어야 하는 책임이 있다.) overlaying은 프로그래머의 시간을 낭비한다.
        • 다중프로그래밍환경에서, 프로그래머는 어느 공간이 얼마나 허용될지 모른다.
      • 따라서, swap-in, swap-out과 같은 데이터의 흐름은 시스템의 책임이 되어야 한다. 이것은 메모리 관리의 본질이다.

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

메모리 분할 - 동적 분할  (0) 2021.05.17
메모리 분할 - 고정 분할  (0) 2021.05.17
메모리 곤리의 개요  (0) 2021.05.17
교착상태 회피  (0) 2021.05.14
교착 상태 예방  (0) 2021.05.14