Двойной пейджинг - что содержит таблица корневых / внешних страниц? - PullRequest
0 голосов
/ 14 декабря 2018

Я прочитал три разных справочника по ОС (Stallings, Tanenbaum и Silberschatz), но ни один из них, насколько я понял, четко не указывает тип содержимого внешней страницы в схеме двойной подкачки.В общем, таблица внешних страниц заставляет нас «найти» таблицу внутренних страниц.Но содержит ли он необработанный физический адрес или что-то еще?

В настоящее время я иду в университетский курс ОС, и для упражнения мне нужно вычислить размер (в байтах) внешней таблицы страниц из 16 элементов,единственный способ, которым я вижу внешнюю таблицу страниц, чтобы мы могли найти внутреннюю таблицу страниц, - это дать нам физический адрес (в данном случае физический адрес длиной 12 бит), поэтому я вычитаю таблицу внешних страниц размером 16 * (12).+1) битов (+1 для бита достоверности), но исправление гласит, что размер фактически равен 16 * (4 + 1), потому что внешняя страница возвращает номер таблицы страниц (я, честно говоря, не знаю, как числостраницы позволили бы нам получить его любым способом, и я не мог получить значимое объяснение).

1 Ответ

0 голосов
/ 15 декабря 2018

Я получил ответ от профессора университета: есть несколько способов сделать это, в моем упражнении было предложено, чтобы таблица внешних страниц была бы «массивом массивов», это просто реализовать, но нереально как массивмассив может быть слишком большим для эффективного хранения.Поэтому более реалистичный способ сделать это - сохранить физические адресные указатели на внутренних таблицах страниц.Так как ОС не может предсказать, где эти адреса будут сохранены заранее, она должна использовать системную зарезервированную память, которая будет исправлена ​​заранее («мало памяти», я не знаю правильной терминологии на английском языке для этого),и таким образом он сможет использовать необработанные физические адреса.

...