Если вы используете Pure Demand Paging, как CPU узнает, где находится первая инструкция в исполняемом файле?

Я читаю главу 9 "Концепции операционной системы", и концепция подкачки по требованию описывается следующим образом:

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

Но если ни одна из страниц, особенно страницы, содержащие код, не находится в памяти, как ОС узнает, где находится счетчик программ? Установлен ли программный счетчик как часть процесса создания путем проверки образа программы на диске? Если это так, я предполагаю, что ОС знает формат двоичного образа и может напрямую обращаться к этой информации на диске. И это будет иметь смысл только в том случае, если эта информация каким-то образом будет сохранена в той части образа программы, которая не нужна во время выполнения программы, если ОС решит не переносить страницу, содержащую эту информацию, в память.

Подводя итог, я хотел бы знать:

  • Как установить счетчик программы для нового процесса, если используется подкачка по требованию?
  • Использует ли какая-либо настоящая ОС пейджинг по требованию и какая выгода от этого?
  • Как двоичный формат исполняемого файла (например, ELF, PE-форматы) помогает ОС требовать подкачки страниц (ОС должна знать, где находится хотя бы первая страница?)

0 ответов

Другие вопросы по тегам