Можем ли мы когда-нибудь иметь процент ошибок на 0 страницах с бесконечным или абсурдным количеством? - PullRequest
1 голос
/ 14 апреля 2019

У меня есть задание для курса по операционной системе.Один из вопросов заставляет меня объяснить, почему возможно / невозможно иметь частоту сбоев в 0 страниц.Может ли реальная система иметь достаточно ОЗУ, чтобы на ней вообще не было сбоев страниц.

Я думал, что, возможно, если бы у нас было бесконечное количество ОЗУ, не потребовалась бы виртуальная память, поэтомуне быть ошибок страницы.Я пришел к этому предположению, потому что сбои страниц происходят, когда процесс запрашивает страницу памяти, которая находится в виртуальной памяти, а не в физической памяти.Может быть, с бесконечным количеством ОЗУ вся память, необходимая процессу, будет находиться в физической памяти, не будет необходимости в подкачке.

1 Ответ

0 голосов
/ 14 апреля 2019

Да, вы можете.Бывают случаи, когда мы не допускаем ошибок страниц, когда любая ошибка страницы обречена.Для начала, обработчики прерываний могут не вызывать ошибки страницы, потому что они не могут ждать.

Кроме того, иногда в спецификации читается «должен ответить в 1/60 секунды», когда последствием отсутствия ответа являются плохие вещи.В зависимости от серьезности последствий мы можем сделать все возможное, чтобы избежать сбоя страниц после инициализации.

Да, это означает наличие достаточного объема ОЗУ, но одного этого недостаточно.Существуют системные вызовы для блокировки страниц в ОЗУ, чтобы их невозможно было удалить, поскольку в противном случае ОС вернула бы неиспользуемую ОЗУ в пользу дискового кэша.Когда мы не можем терпеть такое поведение ...

Некоторые встроенные операционные системы не могут даже листать страницы.

...