Презентацию к данной лекции Вы можете скачать здесь.
В лекции рассмотрена сегментная
Сегментная
рис 17.1 иллюстрирует данную точку зрения на программу как на набор сегментов в памяти.
(рис 17.1) Программа как набор сегментов.
Многие принципы архитектуры сегментной организации схожи с принципами
Логический адрес при сегментной организации памяти - пара:
<segment-number, offset>,
где – номер сегмента, offset – смещение в сегменте.
Таблица сегментов – служит для отображения логических адресов в физические при сегментной
Базовый регистр таблицы сегментов - segment-table base register (STBR) содержит адрес таблицы сегментов в памяти.
Регистр длины таблицы сегментов - segment-table length register (STLR) содержит число сегментов, используемое программой.
Номер сегмента s корректен, если s < STLR.
Перемещение (
Возможен общий доступ (sharing) нескольких процессов к одному и тому же сегменту, т.е. поддерживается концепция разделяемых сегментов. При этом логический номер общего сегмента для разных процессов будет одним и тем же.
). Метод наименее подходящего при сегментной организации смысла не имеет, так как он не улучшает ситуацию с фрагментацией (ввиду переменной длины сегментов). Соответственно, при сегментной организации возможна ).
Защита при сегментной организации организована аналогично защите при
Например, если сегмент является сегментом данных, то система устанавливает в таблице сегментов бит защиты от исполнения равным 0. Если это сегмент кода, то целесообразна установка в 0 битов защиты от чтения и от записи.
Биты защиты связываются с сегментами.
В системе "Эльбрус" к стандартному набору признаков защиты был добавлен еще один: защита от записи в сегмент адресной информации (данный признак целесообразен, если, например, сегмент предназначен для записи в файл).
Поскольку сегменты различаются по длине,
На рис 17.2 приведена схема адресации при сегментном распределении памяти. (s, d),где s – номер сегмента, d – смещение внутри сегмента, обрабатывается следующим образом. По номеру сегмента s происходит обращение в таблицу сегментов, и определяется база сегмента – его начальный адрес в основной памяти. Смещение d сравнивается с длиной (границей) сегмента. Если оно меньше, то оно складывается с базой, и в результате получается s проверяется, что он не превосходит значения регистра длины таблицы сегментов, иначе – прерывание.
(рис 17.2) Схема адресации при сегментной организации памяти.
Пользователи систем UNIX, Linux, Solaris наверняка по ассоциации вспомнят часто встречающееся системное сообщение: Segmentation violation (нарушение сегментации) при прерывании. Причина подобного сообщения обычно следующая: программа пытается обратиться по пустому (нулевому) указателю, номер сегмента в котором, естественно, равен 0, а номер сегмента 0 считается в системе недопустимым. Таким образом, через проверку номера сегмента, UNIX защищает от такой часто встречающейся ошибки, как обращение по пустому указателю. Аналогично, по той же самой причине, если программа пытается практически любое другое число (например, 5) рассматривать как адрес и обращаться по нему, то также генерируется прерывание и сигнал SIGSEGV (segmentation violation).
(рис 17.3) Пример сегментной организации памяти.
В примере программа использует пять сегментов с номерами от 0 до 4: сегмент 0 – подпрограмма, сегмент 1 – стандартные подпрограммы ( sqrt и др.), сегмент 2 –
(рис 17.4) Пример использования разделяемых сегментов.
В примере два процесса используют общий сегмент – код редактора, который имеет в таблицах сегментов обоих процессов один и тот же номер – 0. Кроме того, каждый из процессов имеет собственный сегмент данных с номером 1, однако эти сегменты, естественно, у обоих процессов разные.
Сегментное
Поэтому в системе
В системе "Эльбрус" данные проблемы решены по-другому: в системе используется
Схема
(рис 17.5) Схема трансляции адресов в MULTICS.
(s, d) используется следующим образом. Номер сегмента s складывается с содержимым регистра STBR, после чего происходит обращение по полученному адресу в таблицу сегментов. Смещение d сравнивается с длиной сегмента; если оно больше или равно длине сегмента,то прерывание. Из элемента таблицы сегментов извлекается адрес базы p ). Младшие разряды смещения используются как смещение внутри страницы, адрес которой извлекается из
Нельзя не отметить, что данная схема, на наш взгляд, несколько усложнена. Система
В более современных системах, чем
(рис 17.6) Сегментно-страничная организация памяти в Intel 386.
Базовый регистр таблицы сегментов - segment-table base register (STBR) – регистр, содержащий адрес таблицы сегментов в памяти.
Логический адрес при сегментной организации памяти - пара:
<,где – номер сегмента, offset – смещение в сегменте.
Признаки защиты – информация для защиты сегмента в элементе таблицы сегментов: validation-бит (признак корректности номера сегмента для процесса), биты защиты от записи, от чтения и от исполнения.
Разделяемые (общие) сегменты – сегменты, общие для нескольких процессов и имеющие одинаковые логические номера в их таблицах сегментов.
Регистр длины таблицы сегментов - segment-table length register (STLR) – регистр, содержащий число сегментов, используемое программой.
Сегмент – логическая единица
Сегментная организация памяти (segmentation) - схема
Сегментно-страничная организация памяти – модификация сегментной
Таблица сегментов – системная таблица для отображения логических адресов
в физические при сегментной
Сегментная
При сегментной организации
Перемещение при сегментной организации осуществляется динамически, во время выполнения программы.
Возможен общий доступ нескольких процессов к одному и тому же сегменту с одним логическим номером (разделяемые сегменты).
Стратегии
При адресации по логическому адресу для сегментной организации смещение внутри сегмента сравнивается с длиной сегмента из элемента таблицы сетментов. В случае превышения – прерывание.
Для борьбы с фрагментацией в некоторых системах (
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.