Вопросы ГЭК 2009new (1094840), страница 37
Текст из файла (страница 37)
В мультипрограммной системе страничная организация памяти дает определенные преимущества. Когда новая программа загружается в ОП, она может быть направлена в любые свободные в данный момент физические страницы независимо от того, расположены они подряд или нет. Не требуется перемещения информации в остальной части памяти. Страничная организация позволяет сократить объем передачи информации между внешней памятью и ОП, так как страница программы не должна загружаться до тех пор, пока она действительно не понадобится. Сначала в ОП загружается начальная страница программы, и ей передается управление. Если по ходу работы делается попытка выборки слов из другой страницы, то производится автоматическое обращение к операционной системе, которая осуществляет загрузку требуемой страницы.
На рис. 14.8 показано соответствие между виртуальной и физической памятями, устанавливаемое страничной таблицей, причем видно, что физические страницы могут содержаться в текущий момент времени как в оперативной, так и во внешней памяти. Страничная таблица для каждой программы формируется операционной системой в процессе распределения памяти и перерабатывается ею каждый раз, когда в распределении памяти производятся изменения. Процедура обращения к памяти состоит в том, что номер виртуальной страницы извлекается из адреса и используется для входа в страничную таблицу, которая указывает номер соответствующей физической страницы. Этот номер вместе с номером байта, взятым непосредственно из виртуального адреса, представляет собой физический адрес, по которому происходит обращение к ОП.
Если страничная таблица указывает на размещение требуемой информации во внешней памяти, то обращение к ОП не может состояться немедленно: операционная система должна организовать передачу из внешней памяти в ОП нужной страницы.
Для каждой из программ, обрабатываемых в мультипрограммном режиме, организуется своя виртуальная память и создается своя страничная таблица, при этом все программы делят между собой одну общую физическую память.
Страничные таблицы программ хранятся в ОП, и обращение к нужной строке активной страничной таблицы в ОП происходит по адресу, который определяется номером активной программы и номером виртуальной страницы (рис. 14.8).
Для ускорения преобразования адресов используется небольшая сверхоперативная память, куда передается из ОП страничная таблица активной программы. В другом варианте в сверхоперативной памяти могут находиться сведения о номерах виртуальных и соответствующих физических страниц для нескольких недавно использовавшихся страниц, в том числе принадлежащих разным программам. В этом варианте сверхоперативная память, используемая при преобразовании адресов, строится как ассоциативная с обращением не адресным, а по содержанию хранимой в ячейке информации — в данном случае по хранимому в ячейке номеру программы к номеру виртуальной страницы.
Сегментно-страничная организация памяти. До сих пор предполагалось, что виртуальная память, которой располагает программист, представляет собой непрерывный массив с единой нумерацией байт. Однако программа обычно состоит из нескольких массивов — подпрограмм, одной или нескольких секций данных. Так как заранее длины этих массивов неизвестны, то удобно, чтобы при программировании каждый массив имел свою собственную нумерацию байт, начинающуюся с нуля и продолжающуюся в возрастающем порядке. Желательно также, чтобы составленная таким образом программа могла работать при динамическом распределении памяти, не требуя от программиста усилий по объединению различных ее частей в единый массив. Эта задача решается в некоторых вычислительных системах путем использования особого метода преобразования виртуальных адресов в физические, называемого сегментно-страничной организацией памяти.
В иртуальная память каждой программы делится на части, именуемые сегментами, с независимой адресацией байт внутри каждой части. К виртуальному адресу следует добавить дополнительные разряды левее номера страницы; эти разряды определяют номер сегмента.
Возникает определенная иерархия в организации программ, состоящая из четырех ступеней: 1) программа, 2) сегмент, 3) страница, 4) байт. Этой иерархии программ соответствует иерархия таблиц, служащих для перевода виртуальных адресов в физические. Программная таблица для каждой программы, загруженной в систему, указывает начальный адрес соответствующей сегментной таблицы. Сегментная таблица перечисляет сегменты данной программы с указанием начального адреса страничной таблицы, относящейся к данному сегменту. Страничная таблица определяет расположение каждой из страниц сегмента в памяти. Страницы сегмента могут располагаться не подряд, часть страниц данного сегмента может находиться в оперативной памяти, остальные — во внешней.
Рассмотрим с некоторыми упрощениями организацию сегментно-страничной виртуальной памяти, реализованной в машинах ЕС ЭВМ II очереди.
В этой системе работа с виртуальной памятью возможна только в режиме расширенного управления (ССП [12] =1).
Сегмент представляет собой блок последовательных адресов размером 64 Кбайт или 1 Мбайт, размер страницы 2 или 4 Кбайт. Начальные адреса сегментов и страниц кратны их размерам. Размеры сегментов и страниц виртуальной памяти активной в данный момент программы задаются значениями соответствующих разрядов управляющего регистра 0.
Виртуальный адрес (как и физический) имеет длину 24 разряда, причем поле номера сегмента занимает 8 или 4 старших разряда соответственно для сегментов размером 64 Кбайт и 1 Мбайт, поле номера байта занимает 11 или 12 младших разрядов для страниц размером 2048 и 4046 байт. Промежуточные разряды адреса занимает поле номера страниц, которое может иметь 4, 5, 8 или 9 разрядов в зависимости от размеров сегмента и страницы.
Сегментные и страничные таблицы находятся в ОП, а в программной таблице нет необходимости, так как для каждой активной в данный момент программы управляющий регистр 1 хранит начальный адрес и длину соответствующей сегментной таблицы. Хранит он также номер программы.
Процесс преобразования адресов представлен на рис. 14.9. В общем случае преобразование адреса происходит в два этапа и требует двух дополнительных обращений к ОП (рис. 14.9, а).
Первый этап. Начальный адрес сегментной таблицы, установленный в управляющем регистре 1, суммируется с номером сегмента из виртуального адреса. В результате образуется адрес, по которому из ОП считывается строка сегментной таблицы, содержащая адрес начала и длину страничной таблицы для данного сегмента.
Второй этап. Полученный адрес начала страничной таблицы суммируется с номером страницы из виртуального адреса, при этом образуется адрес, по которому из ОП считывается строка страничной таблицы. Если эта страница оказывается в ОП, то в старшие разряды регистра физического адреса передается ее номер, а в младшие заносится номер байта из регистра виртуального адреса. Формирование физического адреса на этом завершается.
Если нужная физическая страница оказывается во внешней памяти, то происходит прерывание по страничному сбою. Операционная система инициирует передачу этой страницы из внешней памяти в ОП (при этом меняется номер физической страницы) и корректирует соответствующим образом страничную таблицу, находящуюся в оперативной памяти. В старшие разряды регистра физического адреса передается новый номер физической страницы, а в младшие — номер байта. Физический адрес сформирован.
Выполняется запрошенное программой обращение к ОП. Одновременно информация о текущей странице (номерах программы, сегмента, виртуальной и соответствующей физической страницы) помещается в сверхоперативную ассоциативную память или в блок быстрой переадресации (ББП) небольшой емкости.
Ассоциативная память (ББП) хранит указанные данные для небольшого числа недавно использовавшихся страниц. Так, в ЭВМ ЕС-1045 ББП представляет собой память на интегральных микросхемах емкостью 128 слов с временем выборки 25—30. Блок быстрой переадресации может обслуживать одновременно до 3 программ, другими словами, до трех виртуальных памятей.
При наличии ассоциативной памяти (ББП) значительно ускоряется процесс преобразования адресов, так как на каждом участке вычислительного процесса обращения к ОП сосредоточиваются на небольшом числе страниц, и поэтому имеется большая вероятность, что текущее обращение произойдет к странице, информация о которой уже имеется в ассоциативной памяти (ББП), а следовательно, возможно быстрое преобразование адресов без дополнительных обращений к ОП.
Преобразование адресов всегда начинается с просмотра ассоциативной памяти (ББП), и если оказывается, что в одной из ее строк (ассоциативном регистре) хранится информация о странице, к которой должно произойти обращение, то из этой строки непосредственно выбирается номер физической страницы и дополнительные обращения к ОП (к сегментной и страничной таблицам) не производятся (рис. 14.9,6).
Если нужной информации нет в ассоциативной памяти (ББП), то делается попытка сократить время преобразования путем исключения одного дополнительного обращения к ОП (первый этап на рис. 14.9, а). Может оказаться, что страница, к которой происходит обращение, принадлежит сегменту предыдущего обращения к ОП. В аппаратуре преобразования адресов сохраняются номер сегмента и адрес начала его страничной таблицы для предыдущего обращения. Если совпадают номера сегментов текущего и предыдущего обращений, первый этап преобразования исключается, используется сохраненный адрес начала сегментной таблицы и выполняется только второй этап преобразования, т. е. производится только одно дополнительное обращение к ОП. Если номера сегментов не совпадут, реализуется полная процедура преобразования адресов, показанная на рис. 14.9, а.
Дополнительные обращения к ОП сопровождаются занесением информации о текущей странице в ассоциативную память (ББП). Если в ассоциативной памяти (ББП) не оказывается свободного регистра (строки), данные о новой странице записываются на место данных, которые дольше других не использовались в процессе преобразования адресов.
Процессы контроля и восстановления информации в ЭВМ. Коды Хемминга: исправление одиночных ошибок, обнаружение двойных ошибок.
В ЭВМ, снабженной системой автоматического контроля, возникновение ошибок в каком-либо устройстве порождает сигнал ошибки, с появлением которого приостанавливается выполнение программы целиком или только рабочей процедуры в неисправном устройстве. При этом 1 в соответствующем разряде регистра ошибок, высвечиваемом на сигнальном табло на пульте оператора, указывает укрупненно место, где обнаружена ошибка (устройство, узел, регистр, группа разрядов регистра и т. д.). Сигнал ошибки инициирует работу системы восстановления.
Система автоматического восстановления во взаимодействии с системой автоматического контроля обычно выполняет следующие функции:
-
распознавание характера обнаруженной ошибки, т. е. выяснение, вызвана ошибка случайным сбоем, перемежающимся или устойчивым отказом;
-
организация «рестарта», т. е. продолжения выполнения программы путем устранения возникающей ошибки в информации повторением ошибочно выполненной микрооперации, команды или сегмента программы (при обнаружении, что ошибка
вызвана сбоем); -
запись в память информации о сбое;
-
инициирование (при обнаружении отказа) работы системы автоматического диагностирования (САД).
На САД в данном случае возлагается:
1) локализация места отказа с заданной степенью подробности, например до уровня сменной платы, и, если возможна реконфигурация, т. е. отключение неисправного узла
Или устройства с передачей его функции другому соответствующе
узлу или устройству; У
2) запись в память информации об отказе для последующей обработки.
Общая логика взаимодействия систем автоматического контроля, восстановления и диагностирования показана н рис. 12.4. Первой выполняется процедура обработки сигнала прерывания. от системы контроля, начинающаяся записью состояний регистров процессора и старого слова состояния программы (ССП) в соответствующие ячейки памяти и выборкой нового ССП системы восстановления. Далее производится запись в специальные регистры или ячейки памяти ситуации в ЭВМ в момент обнаружения ошибки (записывается состояние запоминающих элементов и шин передачи данных неисправного устройства) '.
Для распознавания характера ошибки (сбой или отказ) необходимо повторить, может быть, даже несколько раз, операцию, в которой обнаружилась ошибка. Однако желательно это сделать с минимальными потерями времени. С этой точки зрения лучше всего, если процессор и система контроля выполнены таким образом, что проверяется правильность каждой микрооперации и вычислительный процесс останавливается на ошибочно выполнившейся микрооперации, которая может быть повторена. Микрооперация (команда) может быть повторена, если не исказилась используемая в операции информация (операнды, адреса и т. д.), т. е. если не пройден «порог повторения». Это проверяет входящая в систему программа обработки ошибок, которая по записанной ситуации, соответствующей появлению ошибки, определяет, пройден или нет порог повторения микрооперации или команды 2. Если соответствующий порог пройден, то вместо микрооперации повторяется команда, а вместо команды — сегмент программы. Последнее возможно, если программист предусмотрел в программе «контрольные точки», сохраняющие промежуточные данные, позволяющие повторить программу с данного места.
Е сли при повторении микрокоманды (команды, сегмента, программы) ошибка не повторяется, событие распознается как сбой и происходит возврат к точке прерывания программы, но перед этим в память записывается дополнительная информация состоянии в момент сбоя вычислительной системы (какие в это реМя выполнялись операции в периферийных и других устрой-| ствах, название программы, адрес команды, операнды, время). I мнформация о ситуациях при сбоях и об отказах накапливается ( во внешнем ЗУ и в последующем обрабатывается специальной программой, вырабатывающей определенные рекомендации обслуживающему персоналу, выполняющему профилактические работы.
Если при определенном числе повторений (например, восемь) ошибка сохраняется, событие распознается как отказ и автоматически приводится в действие САД для определения места неисправности. Диагностические процедуры также могут включаться вручную с пульта, например при пуске машины.
После выявления места отказа проверяется возможность -реконфигурации путем автоматического отключения неисправного устройства и передачи его функций другому устройству. Если это возможно, то производится реконфигурация системы. Затем после сообщения оператору об отказе и произведенной реконфигурации происходит возврат к контрольной точке программы. Если реконфигурация невозможна, САД инициирует на пульте код неисправности. Оператор, пользуясь справочником неисправностей, находит неисправный блок, ремонтирует или заменяет его, затем с пульта включает диагностические процедуры. Если отказ устранен, производится возврат к контрольной точке программы.