ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [문제해설] 시스템의 실제 메모리의 용량이 512KB이고 가상주소공간이 32비트이다. 페이지의 크기가 1Kword일 때, 가상주소에서 페이지 번호에 할당되는 비트 수와 가상주소의 비트 수는 얼마인..
    전자계산기조직응용기사/실기 필답형 기출문제 해설 2021. 8. 20. 11:55
    반응형

    전자계산기조직응용기사 실기 필답형 기출문제 (운영체제-페이징) - 2018년3회


    시스템의 실제 메모리의 용량이 512KB이고 가상주소공간이 32비트이다. 페이지의 크기가 1Kword일 때, 가상주소에서 페이지 번호에 할당되는 비트 수와 가상주소의 비트 수는 얼마인가?(단, 1word는 4byte이다.)

     

     


    위 문제는 아래의 미완성 복원 자료를 FISHBONE에서 재복원한 문제입니다.

    실제 메모리 크기는 512KB이며, 가상 주소에 32비트를 사용하고, 페이지 크기가 1Kword 가짐.(, 1word 4바이트) , 페이지에 할당되는 실제주소의 비트갯수와 가상주소의 비트갯수를 묻는 문제.

    인터넷에 떠도는 자료라 원작성자를 추정할 순 없지만, 문제복원에 중요한 자료가 되었고, 많은 학습자에게 도움이 되는 자료이기에 진심으로 감사드립니다.

     

    그리고 복원에 참고한 유사 문제(출제자가 참고했을 것으로 추정되는 원문)는 다음과 같습니다. 페이징을 이해하는데 도움이 되는 문제이니, 한번 풀어보시고 연구해보시는 것도 권장합니다. 아래 문제의 해설은 출처 사이트에서 확인하실 수 있습니다(단... 영어입니다. ^^).

    1. Consider a machine with 64 MB physical memory and a 32-bit virtual address space. If the page size is 4KB, what is the approximate size of the page table? (GATE 2001)
    (a) 16 MB
    (b) 8 MB
    (c) 2 MB
    (d) 24 MB

    Answer: (c)

    자료출처 : www.geeksforgeeks.org

     

    - 문제 해설 -

    운영체제의 메모리 관리 기법인 페이징(Paging)에 관한 문제입니다. 관련 용어의 정의 위주로 정확히 이해하시며 학습하시기 바랍니다. 

    페이징이란 간단하게 말하면, '프로세스의 물리 주소 공간이 연속되지 않아도 되는 메모리 관리 기법'입니다. 페이징은 간단한 알고리즘으로 연속 메모리 할당의 외부 단편화 문제 등을 해결해 주기에 많은 시스템에서 다양한 형태로 사용되고 있습니다.(대표적으로 가상기억장치)

    페이징 하드웨어

    위 그림은 페이징의 매핑 구조를 간략하게 도식화한 자료입니다.

    CPU에서 나오는 모든 주소는 논리 주소(logical address)입니다. 가상기억장치 체제에서는 가상주소(virtual address)라는 용어로 주로 쓰이며, 이 둘은 동의어로 간주하셔도 됩니다. 실제 이 두 용어의 의미가 같다는 것을 인지하지 못하면 학습하시는데 어려움이 있습니다. 문제에서도 어떤 용어를 사용하게 될지 모르니 반드시 기억하셔야 합니다.

    위의 도식화 자료에서 보는 데로, 논리주소는 p와 d로 구성되어 있고, 페이지 테이블을 참조하여 p부분이 f로 변경이 되면 물리 주소가 되어, 실제 메모리에 액세스를 할 수 있는 것입니다. 이러한 과정이 매핑(mapping)입니다.

    논리주소

    논리주소를 자세히 들여다보면 위와 같습니다. p 부분은 페이지 번호를 가지고 있습니다. 즉, 페이지 테이블에 액세스 하기 위한 정보를 담고 있습니다. 그리고 d는 페이지 오프셋이라고 하는데, 쉽게 말하면 물리주소의 뒷부분을 담고 있고 맵핑하는 과정에서 불변하는 정보입니다. 

    p부분이 페이지 테이블을 참고하여 f로 대체되어 f와 d가 결합하면 물리 주소가 되는 것입니다.

     

    이 정도로 페이징에 대한 개념 설명을 마치고 문제를 풀어보겠습니다.(페이징에 대한 개념이 잘 안 세워지시면 유튜브에서 '피쉬본 조직응용기사 실기 필답형 강의 4. 시스템소프트웨어'를 참고하세요.)

    문제에서 묻는 것은 페이지 번호에 할당되는 비트 수와 가상주소의 비트 수를 묻고 있습니다.(실제 기출문제에선 어떤 용어를 사용하였는지는 불명확하나 '페이지 번호'의 개념을 뜻하는 용어를 사용했을 것이기에 전 이 용어를 사용하여 복원을 하였습니다.)

    그럼 우선 페이지 번호에 할당되는 비트 수란, 가상주소에서 p에 해당하는 부분의 비트수를 말합니다. 그리고 가상주소의 비트 수란 p+d를 말합니다.

    먼저 페이지 번호에 할당되는 비트수, 즉 p부분의 비트수를 구해보겠습니다.  p부분은 페이지 테이블에 액세스 하기 위한 정보를 저장해야 됩니다. 그래서 그 크기의 최솟값은 페이지 테이블의 항목 개수입니다.(메모리 구조에서 MAR 크기 구하는 것과 비슷한 개념입니다.) 

    가상주소공간

    가상주소공간은 위처럼 주기억장치에서 페이지의 정보를 담고 있습니다. 그럼 페이지 테이블의 항목수인 p를 구하려면 가상주소공간의 전체 용량에서 페이지 크기를 나누어 주면 됩니다. 위 그림에서 가상주소공간의 전체 용량은 사각형의 넓이가 되고, 페이지 크기는 가로가 되는 것이니 다음의 공식 아닌 공식이 등장합니다.

    메모리 관련해서는 절대 공식을 외우시며 공부하시면 안 됩니다. 저건 공식이 아닙니다. 구조를 이해하시면, 메모리 관련해서 알아야 될 공식은 사각형 넓이(가로 × 세로)뿐입니다.

    어쨌든 p를 구해보면,

    이렇게 p, 즉 페이지 번호에 할당되는 비트수는 17입니다.

     

    그다음 가상주소의 비트수(p+d)를 구해보겠습니다.

    처음 제시했던 도식 자료에서 물리 메모리 부분만 살펴보면, d(페이지 오프셋)의 크기는 하나의 프레임의 크기라는 것을 알 수 있습니다. 그리고 하나의 페이지는 하나의 프레임의 주소를 모두 표현할 수 있어야 있어야 합니다. 그러면 물리메모리의 전체 용량에서 페이지의 개수를 나누면, 하나의 프레임의 크기가 되고, 이것이 우리가 구해야 할 d(페이지 오프셋)의 비트수입니다. 문제에서 메모리의 용량 512KB와 페이지의 크기 1 Kword가 주어졌으니,

    d는 7비트입니다. 우리가 구해야 할 건 가상주소의 비트수이니,

    p + d = 17 + 7 = 24

    이렇게 가상주소의 비트수는 24입니다.

     

     

     

    https://youtube.com/playlist?list=PLboXycXmAIDt4ObBRPVj29BuD2d27oRnO

     

    전자계산기조직응용기사 실기 필답형

    국가기술자격증 전자계산기조직응용기사 실기 필답형 강의

    www.youtube.com

     

    반응형
Designed by Tistory.