첫 번째 문제 ---------------------- 6번
문. 주기억장치의 용량이 512KB인 컴퓨터에서 32비트의 가상 주소를 사용하는데, 페이지의 크기가 1K워드이고 1워드가 4바이트라면 실제 페이지 주소는 ()비트이고, 가상 페이지 주소는 ()비트이다.
풀이.
페이지 주소 크기:
기억장치 용량 / 페이지 크기 = 실제 페이지 주소 크기
(2^9 * 2^10) / (2^10 * 2^2) = 2^7
> 7 비트
가상 페이지 주소 크기:
가상장치 용량 / 페이지 크기 = 가상 페이지 주소 크기
2^32 / (2^10 * 2^5) = 2^17
> 17 비트 (교재 답: 20비트)
실제 답안에서는 가상 페이지 주소 크기가 20비트이네요. (2^32 / 2^12)
가상 페이지 주소의 경우 비트 단위이기 때문에 페이지 크기의 1워드 4바이트를 32비트(4*8)로 계산해서 풀어야 하는 게 아닌지요.
페이지 주소는 주기억장치 용량과 페이지 크기 모두 바이트 단위이므로 2^2(바이트 단위)가 맞지만, 가상 페이지 주소는 가상장치 용량이 비트 단위로 구해졌으므로 페이지 크기도 비트 단위로 구하는 것이 맞는 것으로 보여 질문 드립니다.
두 번째 문제 ---------------------- 9번
문. 32비트의 가상 주소, 4KB 페이지, 페이지 테이블 엔트리당 4바이트로 된 페이지 테이블에 대해 전체 페이지 테이블의 크기는 얼마인가?
질문. 페이지 수를 구하기 위해 '가상장치 용량 / 페이지 크기'를 구하고 거기에 페이지 테이블 엔트리 크기를 곱하는데, 여기서 페이지 크기와 페이지 테이블 엔트리 크기의 의미 구분을 못하겠네요. 이에 대한 설명 부탁드립니다.
안녕하세요.
32비트 가상 주소를 사용한다는 것을
주기억장치의 용량이 512KB라는 것처럼 표현하면
가상기억장치의 용량이 2^32승으로 2^12*2^10 = 4096KB라는 의미입니다.
그러므로
실제 페이지수를 구할 때 512KB/4KB = 2^19 / 2^12 = 2^7인 것이고
가상 페이지수를 구할 때 4096KB/4KB 대신에 2^32/2^12 = 2^20인 것입니다.
오늘도 즐거운 하루 되세요.
-
*2018-02-27 09:37:32
안녕하세요.
32비트 가상 주소를 사용한다는 것을
주기억장치의 용량이 512KB라는 것처럼 표현하면
가상기억장치의 용량이 2^32승으로 2^12*2^10 = 4096KB라는 의미입니다.
그러므로
실제 페이지수를 구할 때 512KB/4KB = 2^19 / 2^12 = 2^7인 것이고
가상 페이지수를 구할 때 4096KB/4KB 대신에 2^32/2^12 = 2^20인 것입니다.
오늘도 즐거운 하루 되세요.