운영 체제 7 장 숙제

다중 선택

  1. 다음 중 올바른 설명 ()은 무엇입니까?
    A. 하드웨어 또는 운영 체제 지원에 의해 제한되며, 메모리 끝에있는 공간에 액세스 할 수없는 상황이 있습니다.
    B. 물리적 주소는 실제 주소를 참조하고 상대 주소는 참조 (시작) 주소에 상대적인 주소입니다.
    C. 주소 공간은 컴퓨터 아키텍처와 주소 인코딩 길이에 따라 다릅니다.
    D. 주소 공간은 무한 할 수 있습니다.
    E. 프로그램이 실행 중일 때 상대 주소를 실제 주소로 변환하여 필요한 콘텐츠의 실제 위치를 확인해야합니다.

  2. 재배치 명세서와 관련하여 다음 중 올바른 ()은?
    A. 재배치의 목적은 프로그램이 실행 중일 때 필요한 콘텐츠의 실제 주소를 확인하여 필요한 콘텐츠를 얻을 수 있도록하는 것입니다.
    B. 실제 주소를 미리 결정할 수있는 경우 정적 재배치를 사용하여 모든 상대 주소를 미리 실제 주소로 직접 변환 할 수 있습니다.
    C. 재배치에는 일반적으로 사용되는 두 가지 방법이 있습니다 : 정적 재배치 및 동적 재배치
    D. 동적 재배치는 프로그램 명령이 실제로 실행될 때 상대 주소를 변환하는 것입니다.

주관적인 질문

  1. 특정 시점에서의 메모리 상태는 다음과 같으며 음영 부분은 여유 공간과 할당되지 않은 공간을 나타내고 해당 접합의 물리적 주소는 왼쪽에 표시되어 있습니다.
    다음 적응 알고리즘을 할당에 사용하면 작업 시퀀스 P1 (길이 3K), P2 (길이 10K), P3 (길이 15K), P4 (길이 10K), 최종 분포를 그립니다.
    여기에 사진 설명 삽입

대답:
여기에 사진 설명 삽입

  1. 컴퓨터의 주 메모리는 바이트 단위로 지정되고 논리 주소와 실제 주소는 모두 32 비트이며 페이지 테이블 항목 크기는 4 바이트입니다. 다음 질문에 답해주십시오.

(1) 첫 번째 수준 페이지 테이블의 페이징 저장 관리 방법을 사용하는 경우 논리 주소 구조는 다음과 같습니다.
여기에 사진 설명 삽입
페이지 크기는 몇 바이트입니까? 페이지 테이블은 몇 바이트를 차지합니까?

(2) 2 차 페이지 테이블의 페이징 스토리지 관리 모드를 사용하는 경우 논리적 주소 구조는 다음과 같습니다
여기에 사진 설명 삽입
. 논리적 주소를 LA로 설정하고 해당 페이지 디렉토리 번호와 페이지 테이블 인덱스의 표현식을 각각 제공하십시오.

(3) (1)의 페이징 저장 관리 방법을 사용하면 코드 세그먼트 시작 논리 주소는 0000 8000H, 길이는 8KB이며 물리 주소 0090 0000H부터 시작하여 연속적인 메인 메모리 공간에로드됩니다. 페이지 테이블은 아래 그림과 같이 주 메모리 0020 0000H에서 시작하는 물리적 주소부터 연속적으로 저장됩니다 (주소 크기는 아래에서 위로 증가). 코드 세그먼트에 해당하는 두 페이지 테이블 항목의 물리적 주소, 두 페이지 테이블 항목의 페이지 프레임 번호 및 코드 페이지 2의 시작 물리적 주소를 계산하십시오.
여기에 사진 설명 삽입

답 : [이 질문은 바이트로 주소 지정됩니다.]
(1) 페이지의 오프셋이 12 비트이므로 페이지 크기는 2 12 = 4KB이고
페이지 테이블 항목 수는 2 32 / 4K = 2 20입니다. 그리고 페이지 테이블 항목 크기가 4 바이트이므로 첫 번째 수준 페이지 테이블의 최대 크기는 2 20 × 4 B = 4MB입니다.
(2) 페이지 카탈로그 번호는 (((unsigned int) (LA)) >> 22) & 0x3FF로 표현할 수 있습니다. (페이지 테이블 인덱스와 페이지 내의 오프셋을 짜내십시오)
[((unsigned int) (LA)) >> 22는 LA의 데이터가 부호없는 숫자로 취급되고 숫자가 비트 단위임을 의미합니다. 오른쪽 시프트 연산, 오른쪽 시프트 22 비트. 22 & (및) 0을 보완하되 페이지 디렉토리 번호 (11, 1111, 1111 = 3FF)의 10 비트를 유지합니다. 즉, 결과와 0x3FF 사이에 비트 AND (&) 연산을 수행합니다.
페이지 테이블 인덱스는 (((unsigned int) (LA)) >> 12) & 0x3FF. (페이지에서 오프셋을 짜내십시오)
(3) 코드 페이지 1의 논리 주소는 0000 8000H이며, 이는 페이지 테이블의 8 번째 페이지 테이블 항목에 해당하는 8 번째 페이지에 있음을 나타내므로 8 번째 페이지 항목의 물리적 주소 = 페이지 테이블의 시작 주소 + (8 × 페이지 테이블 항목의 바이트 수), 즉 0020 0000H + (8 × 4) = 0020 0020H.
[(3)은 (1)의 페이징 저장 관리 방식을 채택했기 때문에 페이지 프레임 번호는 20 자리 인 페이지 번호이고, 16 진수로 변환하면 5 자리가되며, 물리적 주소의 처음 5 자리를 가로 챈다. 페이지 프레임 번호이며 페이지 내 오프셋은 12 자리, 16 진수로 변환시 3 자리, 페이지 크기는 4KB = 2 12입니다., 16 진법으로 환산하면 0001 0000 0000 0000 = 1000H이므로 0090 0000H + 0000 1000H = 0090 1000H;】
이로부터 아래 그림과 같은 답을 얻을 수 있습니다.
여기에 사진 설명 삽입

추천

출처blog.csdn.net/Jessieeeeeee/article/details/109222972