Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
report (1).doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
945.66 Кб
Скачать

1.10.4 Оверлейна структура

Так як розмір логічного адресного простору процесу може бути більше, ніж розмір виділеного йому розділу (або більше, ніж розмір самого великого розділу), іноді використовується техніка, звана оверлей (overlay) або організація структури з перекриттям (рис. 1.3). Основна ідея – тримати в пам’яті тільки ті інструкції програми, які потрібні в даний момент.

Потреба в такому способі завантаження з’являється, якщо логічний адресний простір системи малий, наприклад 1 Мбайт (MS–DOS) або навіть всього 64 Кбайта (PDP–11), а програма відносно велика. На сучасних 32–розрядних системах, де віртуальний адресний простір вимірюється гігабайтами, проблеми з нестачею пам’яті вирішуються іншими способами.

Рис. 1.3 – Організація структури з перекриттям. Можна по черзі завантажувати в пам’ять гілки A–B, A–C–D і A–C–E програми

Коди гілок оверлейной структури програми знаходяться на диску як абсолютні образи пам’яті і зчитуються драйвером оверлеїв при необхідності. Для опису оверлейной структури зазвичай використовується спеціальна нескладний мова (overlay description language). Сукупність файлів виконуваної програми доповнюється файлом (зазвичай з розширенням .odl), що описує дерево викликів всередині програми.

Оверлеї можуть бути повністю реалізовані на рівні користувача в системах з простою файлової структурою. ОС при цьому лише робить дещо більше операцій введення–виведення. Типове рішення – породження лінкером спеціальних команд, які включають завантажувач кожен раз, коли потрібно звернення до однієї з гілок програми що перекриваються.

Ретельне проектування оверлейної структури забирає багато часу і вимагає знання устрою програми, її коду, даних і мови опису оверлейної структури. З цієї причини застосування оверлеїв обмежено комп’ютерами з невеликим логічним адресним простором. Проблема оверлейних сегментів, контрольованих програмістом, відпадає завдяки появі систем віртуальної пам’яті.

Зауважимо, що можливість організації структур з перекриттями багато в чому зумовлена ​​властивістю локальності, що дозволяє зберігати в пам’яті тільки ту інформацію, яка необхідна в конкретний момент обчислень.

1.10.5 Стопінг

Свопінг, або підкачка сторінок — один з механізмів віртуальної пам’яті, при якому окремі фрагменти пам’яті (зазвичай неактивні) переміщуються з ОЗП на жорсткий диск, звільняючи оперативну пам’ять для завантаження інших фрагментів пам’яті. Такими фрагментами в сучасних ЕОМ є сторінки пам’яті.

Тимчасово вивантажені з пам’яті сторінки можуть зберігатися на зовнішніх запам’ятовуючих пристроях як у файлі, так і в спеціальному розділі на жорсткому диску, звані відповідно swap–файл і swap–розділ. У разі відкачування сторінок, що відповідають вмісту будь–якого файлу вони можуть вилучатися. При запиті такої сторінки вона може бути прочитана з оригінального файлу.

Коли програма звернеться до відкачаної сторінки, відбудеться виняткова ситуація PageFault. Оброблювач цієї події повинен перевірити, чи була раніше відновлено запитана сторінка, і, якщо вона є в свопі, завантажити її назад в пам’ять.

Так як при використані свопінгу частина даних зберігається в енергонезалежній пам’яті, і відповідно не стирається, зловмисники можуть скористатися цим, проаналізувавши swap–файл і витягнути з нього цінну інформацію, наприклад паролі. Тому слід або відмовитись від свопінгу взагалі, або повністю шифрувати розділ жорсткого диску де зберігається swap–файл.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]