ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 메모리 관리
    Computer Science/Operating System 2021. 1. 14. 01:26

    질문

    9.1 배경

    • 심볼릭 주소를 실제 물리 주소로 바인딩 하는 작업은 어느 시점에 일어나나요?
      • 컴파일 시간
      • 적재 시간
      • 실행 시간
    • 논리 주소와 물리 주소, 가상 주소는 무엇인가요?
      • 논리 주소 : CPU가 생성하는 주소
      • 물리 주소 : 메모리가 취급하게 되는 주소
      • 가상 주소 : 논리 주소와 물리 주소가 다를 때 논리 주소
    • MMU(Memory Management Unit)이 하는 역할은 무엇인가요?
      • 가상 주소를 물리 주소로 변환시켜 줍니다
    • 재배치 레지스터란 무엇인가요?
      • 가상 주소를 물리 주소로 변환시킬 때 기준이 되는 레지스터입니다
      • 일반적으로 논리 주소 + 재배치 레지스터의 값이 물리 주소가 됩니다

    9.2 연속 메모리 할당

    • 운영체제와 다른 사용자 프로그램을 현재 수행중인 사용자 프로그램의 접근으로부터 보호하는 방법은 어떤 것이 있나요?
      • 상한 레지스터와 재배치 레지스터의 값을 참조하여 지정한 범위 내에 없다면 다른 프로그램에 접근한 것이기 때문에 중지합니다
    • 최초 적합이란?
      • 첫 번째 사용 가능한 가용 공간에 할당합니다
    • 최적 적합이란?
      • 사용 가능한 공간 중에 가장 작은 것을 택합니다. 리스트가 크기 순으로 되어 있지 않다면 모든 리스트를 검색해야합니다.
    • 최악 적합이란?
      • 가장 큰 가용 공간을 택합니다. (다른 두 개에 비해 효율이 안좋음)
    • 외부 단편화란 무엇인가?
      • 프로세스를 메모리에 적재하고 제거하다보면 어떤 가용 공간은 작은 조각이 되어버립니다. 이런 조각들이 여러 곳에 분산되어 있어 프로세스를 적재할 수 없을 때 발생합니다
    • 내부 단편화란 무엇인가?
      • 프로세스를 메모리에 할당할 때 요구된 공간보다 조금씩 더 크게 할당합니다. 이 때 실제 할당 크기와 프로세스 크기의 차이만큼 사용하지 못하는 메모리가 발생합니다.
    • Compaction(압축)이란?
      • 메모리 모든 내용을 한군데로 몰고 모든 가용 공간을 다른 한군데로 몰아서 큰 블록을 만드는것

    9.3 페이징

    • 프레임과 페이지는 무엇인가요?
      • 프레임 : 물리 메모리를 이루는 같은 크기의 블록
      • 페이지 : 논리 메모리를 이루는 같은 크기의 블록
    • 페이지 테이블이란 무엇인가요?
      • 페이지 번호와 페이지 오프셋으로 구성되어 있음
      • 페이지 번호는 물리 메모리의 각 프레임의 시작 주소를 저장하고 있으며 페이지 오프셋은 참조되는 프레임 안에서의 위치입니다.
    • CPU에 의해 생성된 논리주소를 물리주소로 변환하는 방법은?

      1. 페이지 번호 p를 추출하여 페이지 테이블의 인덱스로 사용
      2. 페이지 테이블에서 해당 프레임 번호 f를 추출
      3. 논리 주소의 페이지 번호 p를 프레임 번호 f로 바꿈
    • 프레임 테이블이란 무엇인가요?

      • 운영체제는 물리 메모리를 관리하기 위해 물리 메모리의 자세한 할당에 대해 파악하고 있어야 합니다
      • 어느 프레임이 할당되어 있고, 어느 프레임이 사용 가능한지, 총 프레임이 몇 개나 되는지 같은 정보들이 저장되어 있습니다.

    TLB(Translation Look-Aside Buffer)

    • TLB는 어떻게 동작하나요?
      • TLB가 없다면 페이지 테이블에서 물리 주소를 찾아서 메모리에 접근해야되기 때문에 2번의 메모리 액세스가 필요합니다.
      • TLB는 매우 빠른 연관 메모리로 구성되어 있기 때문에 TLB에 페이지를 찾아달라고 요청이 들어오면 찾고자 하는 페이지를 동시에 여러 개의 내부 키와 비교합니다.
      • 페이지 번호가 같은 것이 발견되면 그에 대응하는 프레임 번호를 알려줍니다.
      • 메모리 액세스를 한 번만 해도 됩니다.
    • TLB 미스가 일어났을 때 하는 일은?
      • TLB에서 찾지 못했기 때문에 페이지 테이블에서 프레임 번호를 찾아서 메모리에 액세스합니다.
    • Hit Ratio(적중률)은 무엇인가요?
      • 접근하려는 메모리의 페이지 번호가 TLB에서 발견되는 비율입니다
    • 실질 메모리 접근 시간은 어떻게 계산하나요?
      • hit ratio * 메모리 접근 시간 + (1 - hit ratio) * 메모리 접근 시간

    스와핑

    • 스와핑이란 무엇인가?
      • 프로세스가 실행되기 위해서는 메모리에 있어야 합니다. 하지만 프로세스의 일부분을 백업 저장장치에 저장했다가 실행을 계속하기 위해 다시 메모리로 돌릴 수 있습니다.
      • 모든 프로세스의 물리 주소 공간의 크기의 총합이 시스템의 실제 물리 메모리 크기보다 큰 경우에도 스와핑을 이용하면 동시에 실행할 수 있습니다.

    요약

    • 메모리는 각각 고유한 주소를 가진 큰 바이트 배열로 구성됩니다
    • 각 프로세스에 주소 공간을 할당하는 한 가지 방법은 기준 레지스터와 상한 레지스터를 사용하는 것입니다
    • 심볼릭 주소 참조를 실제 물리 주소에 바인딩 하는 작업은 컴파일 시간, 적재 시간, 실행 시간에 발생할 수 있습니다.
    • 연속 메모리 파티션을 할당할 때는 최초 적합, 최적 적합, 최악 적합 등의 방법이 있습니다.
    • 물리 메모리는 프레임이라는 고정 크기 블록으로, 논리 메모리는 페이지라는 같은 크기의 블록으로 나뉩니다

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

    대용량 저장장치 구조  (0) 2021.01.14
    가상 메모리  (0) 2021.01.14
    교착 상태  (0) 2021.01.14
    동기화 도구들  (0) 2021.01.10
    CPU 스케줄링  (0) 2021.01.10

    댓글

Designed by Tistory.