[운영체제] 공룡책(Operating System Concepts) 연습문제 풀기: 9장

참고도서: Operating System Concepts (10/E) Abraham Silberschatz, Peter B. Galvin, Greg Gagne

9장 - 메인 메모리

9.1 내부 단편와와 외부 단편와 사이의 차이점을 설명하라.

  • 외부 단편화는 프로세스가 메모리에 연속적인 공간에 적재되고 방출 되면서 생기는 사용 가능한 공간의 분산 때문에 생기는 문제이다. 메모리의 전체 사용 가능한 공간은 프로세스를 수용할 수 있지만, 이 공간이 메모리 곳곳에 분산되어 있어 프로세스를 메모리에 적재할 수 없게 된다. 내부 단편화는 프로세스의 크기가 페이지 크기의 배수보다 작아서 프로세스에 할당된 페이지가 최대 페이지 크기-1 만큼 사용하지 않는 공간으로 할당되는 문제이다.

9.2 페이지의 크기가 항상 2의 거듭제곱인 이유는 무엇인가?

  • 페이지의 주소는 2진수 비트로 나타내서, 이를 다시 둘로 나눠 주소값과 offset값으로 나눈다. 페이지의 크기 역시 2의 거듭제곱으로 설정해야 페이지 주소와 오프셋을 표현하기에 용이하다.

9.3

  • 프로그램을 코드와 데이터 두 부분으로 나누어서 저장할 수 있다면, 코드영역은 항상 읽기전용으로 사용될 수 있고 reentrance code 가 되어 여러 프로세스에 해당 페이지를 공유할 수 있게 된다. 이 코드를 필요로 하는 각 프로세스의 페이지 테이블에 이 페이지의 주소를 기입하면 여러 프로세스가 읽기전용으로 하나의 페이지를 함께 공유할 수 있게된다.

9.4 1024개의 워드 크기 페이지를 사용하고 총 64페이지로 구성된 논리 주소 공간을 고려하자. 이 논리 주소 공간은 32프레임의 물리 메모리로 사상된다.

  • 논리 주소는 몇 비트로 구성되는가?

    • 페이지의 갯수는 64개이고, 페이지의 크기는 1024 워드이다. 논리 주소의 크기는 페이지 갯수 X 페이지 크기로 구할 수 있기 때문에 26(64) X 210(1024) = 216 이라는 것을 알 수 있다. 따라서 논리 주소는 총 16비트로 구성된다.
  • 물리 주소는 몇 비트로 구성된느가?

    • 위와 비슷한 맥락에서 프레임의 개수는 32개이고, 프레임의 크기는 페이지의 크기와 같기 때문에 1024 워드가 된다. 계산해보면 25(64) X 210(1024) = 215 가 되기 때문에 물리 주소는 총 15비트로 구성된다.

9.5

  • 페이지 테이블의 두 항목이 하나의 페이지 프레임을 가리키도록 하면, 프로세스마다 코드영역의 데이터를 각각 사본으로 가지고 있는 것이 아니라, 하나의 페이지를 가지고 여러 프로세스에서 사용할 수 있게 되기 때문에 메모리 공간을 아낄 수 있다. 또, 한 장소에서 다른 장소로 메모리를 복사할 때도 이 영역에 해당하는 페이지는 항상 같은 프레임을 가리키도록 하면 되기 때문에 시간을 아낄 수 있다.

9.6 300KB, 600KB, 350KB, 200KB, 750KB 및 125KB의 6개의 메모리 파티션을 고려할 때, 115KB, 500KB, 358KB, 200KB, 375KB 크기의 프로세스를 최초 적합 최적 적합 및 최악 적합 알고리즘을 사용하여 할당하는 과정과 결과를 설명하라

  • 최초 적합: 최초 적합 알고리즘은 대상 프로세스를 적재할 수 있는 가용가능한 공간을 만나면 곧바로 프로세스를 적재시킨다. 딸라서 5개의 프로세스는 다음과 같이 적재된다.

    1. 115KB -> 300KB(185KB 남음)
    2. 500KB -> 600KB(100KB 남음)
    3. 358KB -> 750KB(392KB 남음)
    4. 200KB -> 200KB(0KB 남음)
    5. 375KB -> 392KB(17KB 남음)
  • 최적 적합: 최적 적합 알고리즘은 전체 가용메모리 공간을 모두 확인한 뒤 대상 프로세스를 적재할 수 있는 가장 작은 공간에 프로세스를 적재한다.

    1. 115KB -> 125KB(10KB 남음)
    2. 500KB -> 600KB(100KB 남음)
    3. 358KB -> 750KB(392KB 남음)
    4. 200KB -> 200KB(0KB 남음)
    5. 375KB -> 392KB(17KB 남음)
  • 최악 적합ㅣ 최악 적합 알고리즘은 전체 가용메모리 공간을 모두 확인한 뒤 대상 프로세스를 적재할 수 있는 가장 큰 공간에 프로세스를 적재한다.

    1. 115KB -> 750KB(635KB 남음)
    2. 500KB -> 635KB(135KB 남음)
    3. 358KB -> 600KB(242KB 남음)
    4. 200KB -> 242KB(42KB 남음)
    5. 적재 불가

9.7 1-KB 페이지 크기를 가정할 때 다음 주소 참조에 대한 페이지 번호 및 오프셋은 무엇인가

  • 1KB는 1024 바이트 이므로 페이지 오프셋은 하위 10비트임을 알 수 있다. 이를 기준으로 페이지 번호와 오프셋을 구하면

    • 3085 -> 번호:11 오프셋: 0000001101
    • 42095 -> 번호: 110000001101101001 오프셋: 0001101111
    • 215201 -> 번호: 110000001101101001000110111111010010 오프셋: 0010100001

9.8 BTV 운영체제는 21비트 가상 주소를 사용하지만 특정 임베디드 장치에는 16비트 물리 주소만을 사용할 수 있다. 또한 2KB 페이지 크기를 사용한다. 다음 테이블에는 각각 몇개의 항목이 존재하는가?

  • 기존의 단일 레벨 페이지 테이블: 페이지의 개수 X 페이지의 크기를 구하면 논리주소 크기를 구할 수 있는데 이미 우리는 페이지의 개수가 21개이고 페이지 크기가 2048바이트, 즉 211 비트임을 알고 있기 때문에 페이지 테이블의 항목 갯수는 221 / 211 = 210 이 된다.
  • 역 페이지 테이블: 역페이지 테이블의 항목 개수는 물리주소공간 / 페이지 사이즈를 구하면 얻을 수 있다. 따라서 216 / 211 = 25 가 된다.

9.9 64KB 의 물리 메모리에 맵핑된 4KB 페이지 크기의 256 페이지의 논리 주소공간을 고려하자.

  • 논리 주소에 몇 비트가 필요힌가? 논리주소의 크기는 페이지 갯수 X 페이지 크기로 구해진다. 따라서 256 X 4KB = 28 X 212 = 220 이므로 논리주소에는 총 20비트가 필요하다.
  • 물리주소에는 몇 비트가 필요한가? 물리주소의 크기는 프레임 갯수 X 프레임 크기로 구해진다. 따라서 64 X 4KB = 26 X 212 = 218 이므로 물리 주소에는 총 18비트가 필요하다.

9.10 생략


전여훈
Written by@전여훈 (Click Me!)
고민이 담긴 코드를 만들자, 고민하기 위해 공부하자.