Рубрики

ВОРОТА | GATE-CS-2003 | Вопрос 79

Процессор использует двухуровневые таблицы страниц для преобразования виртуальных адресов в физические. Таблицы страниц для обоих уровней хранятся в основной памяти. Виртуальные и физические адреса имеют ширину 32 бита. Память адресуется в байтах. Для преобразования виртуального в физический адрес 10 старших разрядов виртуального адреса используются в качестве индекса в таблице страниц первого уровня, а следующие 10 битов используются в качестве индекса в таблице страниц второго уровня. 12 младших битов виртуального адреса используются в качестве смещения на странице. Предположим, что записи таблицы страниц на обоих уровнях таблиц страниц имеют ширину 4 байта. Кроме того, процессор оснащен буфером просмотра в стороне (TLB) с частотой обращений 96%. Кэши TLB недавно использовали номера виртуальных страниц и соответствующие номера физических страниц. Процессор также имеет физически адресуемый кеш с частотой обращений 90%. Время доступа к основной памяти составляет 10 нс, время доступа к кэшу составляет 1 нс, а время доступа к TLB также составляет 1 нс.

Предположим, что процесс имеет только следующие страницы в своем виртуальном адресном пространстве: две смежные кодовые страницы, начинающиеся с виртуального адреса 0x00000000, две смежные страницы данных, начинающиеся с виртуального адреса 0 × 00400000, и страница стека, начинающаяся с виртуального адреса 0 × FFFFF000. Объем памяти, необходимый для хранения таблиц страниц этого процесса:
(А) 8 КБ
(Б) 12 КБ
(С) 16 КБ
(D) 20 КБ

Ответ: (с)
Объяснение:

Breakup of given addresses into bit form:-
32bits are broken up as 10bits (L2) | 10bits (L1) | 12bits (offset)

first code page:
0x00000000 = 0000 0000 00 | 00 0000 0000 | 0000 0000 0000

so next code page will start from
0x00001000 = 0000 0000 00 | 00 0000 0001 | 0000 0000 0000

first data page:
0x00400000 = 0000 0000 01 | 00 0000 0000 | 0000 0000 0000

so next data page will start from
0x00401000 = 0000 0000 01 | 00 0000 0001 | 0000 0000 0000

only one stack page:
0xFFFFF000 = 1111 1111 11 | 11 1111 1111 | 0000 0000 0000

Now, for second level page table, we will just require 1 Page 
which will contain following 3 distinct entries i.e. 0000 0000 00,
0000 0000 01, 1111 1111 11.
Now, for each of these distinct entries, we will have 1-1 page
in Level-1.

Hence, we will have in total 4 pages and page size = 2^12 = 4KB.
Therefore, Memory required to store page table = 4*4KB = 16KB.

Тест на этот вопрос

Рекомендуемые посты:

ВОРОТА | GATE-CS-2003 | Вопрос 79

0.00 (0%) 0 votes