- •1. Віртуальна пам’ять. Види віртуальної пам’яті.
- •3 Види вірт.Памяті:
- •2. Перетворення лінійної адреси у фізичну при сторінковій організації пам’яті.
- •3. Визначення ос наявності або відсутності сегмента у пам’яті.
- •4. Визначення ос наявності або відсутності сторінки у пам’яті.
- •5. Механізм включення віртуальної пам’яті.
- •6. Плоска модель пам’яті.
- •9. Дескриптор сегменту. Види дескрипторів....
- •10. Таблиця сегментів переривань та її призначення.
- •11. Виключення. Види виключень.
- •12. Структури даних.Опис структур
- •13. Доступ до примірників структур даних.
- •14. Записи даних. Застосування записів даних.
- •15. Доступ до примірників записів даних. Див. Пункт 14.
- •16. Порядок виконання команд після повернення з обробки відмови.
- •17. Структура tss та її призначення. Бітова карта введення/виведення, її призначення.
- •18. Перемикання задач. Умови повернення в основну задачу.
- •19. Дескриптор сегменту. Види дескрипторів.
- •20. Класифікація дескрипторів користувача.
- •21. Шлюзи. Призначення шлюзів. Види шлюзів
- •22. Байт доступу. Його структура та призначення.
- •23. Система привілеїв та її застосування.
- •24. Захист пам’яті.
- •25. Рівні привілеїв дескриптора.
3. Визначення ос наявності або відсутності сегмента у пам’яті.
Прерывание по обращению к отсутствующему сегменту позволяет операционной системе посредством механизма сегментации реализовать виртуальную память. Когда сегмент помечается как ''отсутствующий'', это означает, что он перемещен из оперативной памяти на диск. Прерывание 0B генерируется, когда приложение требует доступа к такому сегменту.
4. Визначення ос наявності або відсутності сторінки у пам’яті.
Прерывание по ошибке страницы позволяет операционной системе реализовать виртуальную память на базе запросов страниц. Прерывание 0Eh обычно генерируется припопытке доступа к разделу каталога страниц или таблице страниц, когда бит существования (страницы) установлен в 0 (значение "не существует"). Операционная система делает страницу существующей (обычно считывает страницу из виртуальной памяти) и снова выполняет вызвавшую ошибку инструкцию, которая теперь может осуществить доступ к сегменту. Ошибка страницы также происходит при нарушении правила защиты при обращении к страницам (когда возникает сбой при считывании страницы, или получены неправильные данные, или приведший к ошибке код нарушил правило защиты для процессора). В этих случаях ответственность за выполнение необходимых действий принимает на себя операционная система.
5. Механізм включення віртуальної пам’яті.
Виртуальная память позволяет очень большим программам или группам программ работать в сравнительно малом объеме физической оперативной памяти.
Системы с виртуальной памятью могут строиться на сегментах или страницах. ОС с виртуальной памятью запоминает сегменты или страницы в большой области дисковой памяти, называемой "swapping area" ("область обмена"). Физическая оперативная память содержит только наиболее используемые сегменты (страницы). Пока сегменты или страницы, находящиеся на диске, используются редко, система ведет себя так же хорошо, как и система с большой оперативной памятью.
В 80386 присутствуют архитектурные средства, необходимые для реализации виртуальной памяти:
бит присутствия для каждого сегмента или страницы, который говорит процессору, находится ли страница в памяти или на диске.
механизм особых ситуаций, при помощи которого процессор может указать ОС на необходимость загрузки в память отсутствующего сегмента или страницы.
перезапускаемые команды, позволяющие процессору заново выполнить команду после того, как ОС загрузила страницу в память и пометила ее как присутствующую.
Далее будем рассматривать страничный механизм реализации, так как сегментный реализуется совершенно аналогично. Когда в процессе трансляции логического адреса процессор получает линейный адрес, ссылающийся на элемент таблицы страниц со сброшенным битом присутствия, возникает особая ситуация, условно называемая "страничная ошибка". Следствием этого является вызов процедуры ОС, для обработки особой ситуации.
При входе в обработчик регистр CR2 содержит линейный адрес, вызвавший ошибку. Путем трансляции этого адреса обработчик должен найти элемент каталога, связанный с отсутствующей страницей. Все биты, кроме бита присутствия, могут быть определены ОС, например, для запоминания положения страницы в swapping area. Обработчик должен найти эту страницу на диске, загрузить ее в память, изменить адрес и бит присутствия в элементе каталога страниц и вернуть управление прерванной программе. При этом процессор заново обратится к команде, в ходе выполнения которой возникла особая ситуация, и теперь ее результат будет таким, как если бы страница находилась в памяти при первом исполнении.
Кроме того ОС должна поддерживать свободные страничные кадры для того, чтобы их мог заполнять обработчик страничных ошибок. Для увеличения их количества система должна знать, какой кадр можно освободить. Перед освобождением кадра, если он был модифицирован, нужно сохранить его на диске. Для этих целей в элементе таблицы страниц есть биты доступа (он устанавливается, если производились чтение или запись в страницу) и модификации (устанавливается при записи); процессор изменяет эти биты автоматически для всех имеющихся в памяти страниц. Путем периодического просмотра и сброса битов доступа ОС может определить страницы, которые давно не использовались. Кадры, содержащие такие страницы, являются хорошими кандидатами на освобождение. При освобождении страница записывается на диск, только если установлен бит модификации.
