Виртуальная память, виртуальный адрес

Я просмотрел различные онлайн-документы / видео, чтобы понять «Виртуальный адрес, виртуальное адресное пространство (VAS)» и так далее, но все же некоторые сомнения, упомянутые ниже, еще не прояснены.

1) Когда программа считывается с жесткого диска, ЦП генерирует «виртуальный адрес». Итак, где находится этот виртуальный адрес? Находится ли он на жестком диске / в ОЗУ / в виртуальной памяти?

2) Для выполнения программа должна быть загружена в ОЗУ, а ЦП генерирует для нее виртуальный адрес. Эти действия (создание VA и загрузка в RAM) происходят одновременно или последовательно? Если есть, то как ядро ​​/ MMU узнает, какой конкретный виртуальный адрес необходимо сопоставить с каким физическим адресом в ОЗУ?

3) Пейджинг - это метод виртуальной памяти. Являются ли страницы выходящими / входящими и заменяемыми / входящими одинаковыми или разными? Если другое, то как?

4) pmap cmd на linux - это VA для представления физического адреса?

5) Если нет, как проверить VA & PA процесса на linux?

Это будет действительно здорово и поможет, если мои сомнения прояснятся.


person Rahul    schedule 30.01.2018    source источник


Ответы (1)


Вы сбились с пути. ЦП не генерирует виртуальные / логические адреса. Операционная система определяет таблицы страниц, которые преобразуют логические адреса в физические адреса. ЦП интерпретирует эту таблицу.

Пейджинг и свопинг - это разные вещи. При подкачке отдельные страницы процесса могут перемещаться между памятью и вторичным хранилищем. При подкачке весь процесс перемещается между памятью и вторичным хранилищем.

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

person user3344003    schedule 31.01.2018
comment
Спасибо. кто генерирует VA / PA? А где находится этот (VA / LA)? это (VA / LA) часть RAM / VM / HDD? Кроме того, как ОС узнает, какое виртуальное устройство должно быть сопоставлено с PA? - person Rahul; 31.01.2018
comment
Операционная система определяет перевод в таблицах страниц. Операционная система РЕШАЕТ, куда будет отображаться виртуальный адрес (физическая память, вторичное хранилище). Управление этим - одна из основных функций операционной системы. - person user3344003; 31.01.2018
comment
Большое спасибо. Я только что прошел через некоторые операции с памятью. PPT автора (Зильбершатц, Гальвин), представленный в местоположении - codex.cs.yale.edu/avi/os-book/OS9/slide-dir/index.html. Здесь говорят, что VA / LA генерируется CPU. - person Rahul; 31.01.2018
comment
Это худшая книга, которую можно прочитать для изучения операционных систем. Это единственный величайший источник путаницы, приводящий к появлению вопросов на этой доске. - person user3344003; 01.02.2018