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

27. Аппаратная поддержка страничной организации памяти.

Аппаратная поддержка применяется исключительно для того, чтобы ускорить процессы преобразования логического адреса в физический.

Матрица ассоциативных регистров выполняет операции сравнения поступающего адреса.

Логика работы:

1) адрес страницы поступает на все ассоциативные регистры, которые параллельно выполняют операцию сравнения с таблицей;

2) если оказывается, что ни один адрес не совпадает с таблицей, то соответствующий адрес вписывается в таблицу и используется уже этот адрес.

Как только адрес добавился, он становится точно таким же, как в ассоциативном регистре и тогда адресация идет через регистр вместо таблицы.

Ускорение происходит:

  1. за счет того что у нас в матрице операции сравнения сделаны на аппаратном уровне (быстрее).

  2. Функция защиты, каждый из регистров получает некий ключ, который означает то место в памяти куда требуется, доступ процесса может быть только для чтения или для чтения и записи, или там лежит программа то есть выполняемая часть.

Значительно повысило защиту памяти, т.е. любой процесс прежде чем получить доступ к станице ОП, проверяется на совпадение прав доступа, в жизни дает то что отдельные участки памяти могут быть разделяемы между процессами.

28. Сегментная организация памяти.

Программисты при страничной организации памяти в процессе выделения памяти не вмешивается и его реализует ОС.

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

При сегментной организации памяти каждый сегмент приобретает свой тип и размер, т.е. у него есть некоторый базовый адрес и размер сегмента (bas addr+size).

С компиляцией программ связаны два базовых понятия: адрес начала сегмента и размер этого сегмента.

Механизм работы осуществляется следующим образом: когда процессор обращается к памяти, он имеет свое собственное пространство, состоящее из адреса и размера сегмента.

Адрес сегмента берется из таблицы сегментов (которые в данный момент свободны), при этом табличный сегмент, если его адрес свободен и существует в таблице сегментов состоит из виртуального адреса и размера, записываемого в табличный сегмент.

Если адресация оказывается больше, тогда фиксируется ошибка (да).

Если адресация оказывается меньше – выделяется тот кусок физической памяти, который соответствует этому сегменту.

При этом выделенный адрес сегмент получает из табличных сегментов.

Адресация идет за счет смещения внутри сегмента.

При этом, предварительная проверка перед выделением физической памяти для процесса, гарантирует, что нет ошибок при выделении памяти.

Удобство данного метода состоит в том, что каждый процесс может содержать любое количество сегментов под выполняемый код, данные, стеки, очереди, буфера для обмена ввода-вывода. При этом каждый процесс может содержать сегменты. Тогда строится таблица сегментов, в ней самое главное – это выделенный адрес сегмента.

Однако в данном случае получается ситуация, когда мы не можем заранее сказать сколько в рамках данной задачи требуется выделить сегментов, также неизвестен их размер, Механизм реализации:

На уровне HARDWARE (реализации) выделяется STBR (Segment table base register) – таблица базовых адресов регистров, содержащая базовый адрес сегмента. Остальные адреса находятся в ОП, на них ссылается базовый адрес.

Удобство: не важно, сколько сегментов в процессе.

Каждый сегмент имеет адрес и размер. Алгоритмически, до упрощения операции получения адреса в ОП, вместо суммирования: адрес+размер, происходит операция конкатенации, то есть для получения адреса к старшим разрядам адреса сегмента добавляются младшие разряды смещения.

Механизм выделения памяти позволил развивать ОС дальше.

Замечание: на практике сегментное выделение памяти комбинируют со страничным выделением. Это позволяет избежать внешней сегментации памяти, то есть остается только внутристраничная фрагментация.

Достоинство:

  1. Каждый сегмент может получать тип выделения памяти, то есть может

быть сегмент, имеющий статус выполняемого кода, только для чтения, для чтения и записи. Что позволяет в ОП организовать копии выполняемых процессов в одном экземпляре.

  1. Области данных, используемые разными процессами

Если запущены два процесса, например, два раза вызвали текстовый редактор. Каждый процесс имеет начальный адрес и смещение.

В ОП грузятся процессы (через пересчет адреса, процесс занимает место в ОП)

После загрузки первого сегмента, грузится следующий сегмент.

Адрес i = адрес 1, а Размер i = размер 1.

Следовательно, процесс Word лежит в ОП в одном экземпляре.

Такой механизм требует от ОП использования одного и того же исполняемого кода с данными, которые берутся из разных сегментов данных.

PSP (segment prefix) – описание сегмента, требующееся для выполнения процесса.

При завершении процесса ОС должна освободить все сегменты ОП, связанные с ним.

Максимальный объем программы, выполняемой в WINDOWS (адресное пространство) равно 4Гб.