
- •IX. Алгоритмы замещения страниц
- •2. Локальные и глобальные алгоритмы замещения страниц
- •3. Алгоритм замещения неиспользовавшейся в последнее время страницы (nru)
- •4. Алгоритм выталкивания первой пришедшей страницы (fifo)
- •8. Алгоритм выталкивания редко используемой страницы (nfu)
- •8.1. Отличительная особенность в реализации алгоритма nfu.
- •7.2. Недостатки алгоритма nfu.
- •9. Алгоритм замещения страниц Рабочий набор
- •10. Алгоритм замещения страниц wsClock
- •11. Распределение памяти
- •11.1. Зависимость частоты страничных прерываний от размеров памяти, предоставленной процессу.
- •11.2. Размер страниц.
- •11.3. Совместно используемые страницы. Отдельные пространства команд и данных.
- •11.4. Очистка страниц.
- •Очистка страниц в ос unix и unix-подобных системах (linux)
- •Очистка страниц в Windows-системах
- •X. Сегментация памяти
- •1. Сегменты, доступ к сегментам, сегментация
- •2. Основные способы адресации
- •2.2. Сегментная адресация (сегментация).
- •2.3. Страничная организация.
- •2.4. Комбинация сегментирования и страничного способа.
- •Использование единого адресного пространства и использование сегментов
- •3.1. Программа, использующая единое адресное пространство:
- •3.2. Использование сегментов.
- •4. Реализация сегментации
- •4.1. Сегментация с использованием страниц в ос multics.
- •Преобразование адреса в системе multics
3.2. Использование сегментов.
При сегментированной памяти каждый сегмент может расти или уменьшаться независимо от других сегментов.
В данном случае адрес имеет две части: номер сегмента и адрес в сегменте.
Преимущества сегментации:
сегменты не мешают друг другу;
начальный адрес процедуры всегда начинается с n-ого номера сегмента, нулевого адреса в сегменте – (n,0), что упрощает программирование;
облегчает совместное использование процедур и данных;
защита каждого сегмента раздельная (чтение, запись).
4. Реализация сегментации
В отличие от страниц, которые имеют фиксированный размер, размер сегментов не фиксирован.
При использовании сегментов, как и страниц, существует проблема фрагментации.
По причине недостаточности памяти используется страничная организация сегментов, при которой в памяти может находиться только часть сегмента.
4.1. Сегментация с использованием страниц в ос multics.
Одна из первых ОС, где была применена страничная сегментация, — это ОС MULTICS, разработки над которой начались в 1964 г. и продолжались в течение 20-и лет. Многие принципы построения этой ОС были положены в основу ОС UNIX и UNIX-подобных систем таких, ОС LINUX. С 2000 г. ОС MULTICS закончила свое существование, оставив большой след в развитии операционных систем.
Каждая программа в ОС MULTICS обеспечивалась до 218 сегментами (более 250 000), каждый из которых длиной до 65 536 (36-разрядных) слов; формировалась своя таблица сегментов для каждой программы; для каждого сегмента в таблице сегментов хранился дескриптор, представляющий собой 36-разрядное слово.
Таблица сегментов разбивалась на страницы, поскольку записей в ней более, чем 250000, и, таким образом, сама таблица являлась отдельным сегментом.
Сегмент с таблицей дескрипторов, указывающих на таблицы страниц для каждого сегмента:
Нормальный размер страницы составляет 1024 слова; если сегмент меньше, то он либо не разбит на страницы, либо разбит на страницы по 64 слова.
Дескриптор сегмента — это 36-разрядное слово, которое хранится в таблице сегментов.
Преобразование адреса в системе multics
При обращении к памяти выполняется следующий алгоритм:
по номеру сегмента находится дескриптор сегмента;
проверяется, находиться ли таблица страницы в памяти: если она в памяти, то определяется ее расположение; если – нет, то вызывается сегментное прерывание;
проверяется, находиться ли страница в памяти: если она в памяти, то определяется ее расположение; если – нет, то вызывается страничное прерывание;
к адресу начала страницы прибавляется смещение, в результате получается адрес нужного слова в оперативной памяти;
происходит запись или чтение.
Так как такой алгоритм работает достаточно медленно, то аппаратура ОС MULTICS содержит высокоскоростной буфер быстрого преобразования адреса (TLB) размером в 16 слов, в котором хранятся адреса 16-и наиболее часто использующихся страниц.