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

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-и наиболее часто использующихся страниц.  

9

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