Работа с памятью в операционных системах nodirov Adham


Способы борьбы с фрагментацией


Download 216.51 Kb.
bet3/6
Sana28.12.2022
Hajmi216.51 Kb.
#1023261
1   2   3   4   5   6
Bog'liq
лаб1

Способы борьбы с фрагментацией
В определенные моменты времени происходит сжатие в сторону младших адресов. ОС последовательно просматривает занятые приложениями блоки, находит разрыв и смещает адрес. Данная схема эффективна в случае динамического преобразования; если используется перемещающийся загрузчик, то происходит полный пересчет адресов, который является очень ресурсоемким.
Методы распределения памяти с использования дискового пространств
Метод оверлеев
Был использован и реализован в ОС MS DOS. Программист разбивает приложение на несколько частей (оверлеев), умещающихся в доступную память (640 кб). Сначала происходит загрузка 0-го оверлея, затем он выгружается и загружается 1-ый, и так далее. Программа содержится на диске, активный оверлей - в оперативной памяти, а все механизмы обеспечиваются программистом. Механизм требует тщательного проектирования программ.
Страничное распределение виртуальной памяти
Адресное пространство процесса делится на страницы фиксированных разделов. Физическая память в системе тоже делится на страницы, аналогичные виртуальной памяти. Для каждого процесса ОС создает служебную структуру - таблицу страниц (дает однозначное отображение виртуальных страниц в физические).

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

Download 216.51 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling