Cтраница 3
В МПС с общей памятью каждый из процессоров имеет доступ к любому модулю памяти, которые могут функционировать независимо друг от друга и в каждый момент времени обеспечивать одновременные обращения в целях записи или чтения слова информации, число которых определяется числом модулей. Конфликтные ситуации ( обращение к одному и тому же модулю памяти) разрешаются коммутатором, начинающим обслуживать первым устройство с наибольшим приоритетом, например процессор с наименьшим номером. Каждый из процессоров может инициировать работу любого канала ввода-вывода. [31]
Аппаратура непрерывно сравнивает приоритет программы процессора - кандидата на прерывание с приоритетом про - - грамм, находящихся в очередях. Если в очереди появляется программа большего приоритета, процессор-кандидат прерывает свою программу, заносит ее в очередь соответствующего приоритета и начинает выполнять программу из непустой очереди наибольшего приоритета. Обработка прерванной программы будет продолжена, причем необязательно на том же процессоре, когда ее приоритет станет выше приоритета программы. Следует обратить внимание на то, что здесь образуется общая очередь к освобождающимся процессорам. [32]
![]() |
Динамическое распределение программ ( приоритет растет с увеличением номера очереди. [33] |
Аппаратура непрерывно сравнивает приоритет программы процессора - кандидата на прерывание с приоритетом программ, находящихся в очередях. Если в очереди появляется программа большего приоритета, процессор-кандидат прерывает свою программу, заносит ее в очередь соответствующего приоритета и начинает вьшолнять программу из непустой очереди наибольшего приоритета. Обработка прерванной программы будет продолжена, причем необязательно на том же процессоре, когда ее приоритет станет выше приоритета программы - кандидата на прерывание. Следует обратить внимание на то, что здесь образуется общая очередь к освобождающимся процессорам. [34]
Логика управления приоритетами содержит регистр маски, который для системы считается портом ВВ. Она определяет, какое прерывающее ВУ имеет наибольший приоритет, и сравнивает его с маской, чтобы определить, есть ли запрос прерывания и нужно ли посылать в МП вектор прерывания, соответствующий запросу с наибольшим приоритетом. Аппаратная реализация логики приоритетов рассмотрена в § 5.5. Маска, которой можно управлять программно, разрешает или запрещает прерывание от ВУ в зависимости от его относительной степени важности. Запросы, приоритет которых меньше или равен маске, не генерируют прерывания ЦП. [35]
Наличие в ЭВМ и ВС нескольких абонентов ОП ( ЦП и каналы ввода-вывода) приводит к необходимости иметь приоритетные схемы и регистры для хранения невыполненных запросов. Приоритеты назначают абонентам в соответствии с экономической целесообразностью использования процессора и каналов, опасности потери запросов, а также характера запросов от ЦП и каналов. Наибольшим приоритетом обладают запросы СК, которые осуществляют обмен данными с ПУ, работающими в реальном масштабе времени и для которых нежелательна потеря информации. [36]
В этой структуре в каждом интерфейсном модуле есть схема, Которая включается в дейзи-цепь. Как показано на рис. 5 13, каждая из схем имеет два входа - запрос прерывания от ВУ и выход от предыдущей схемы цепи ВУ с большим приоритетом. Вторым Входом модуля с наибольшим приоритетом является сигнал подтверждения прерывания от процессора. [37]
Процедура определения приоритетного запроса инициируется сигналом Приоритет, поступающим на цепочку последовательно включенных схем И. Если среди выставленных запросов прерывания наибольший приоритет имеет j - й запрос, то распространение сигнала Приоритет правее схемы И с номером / блокируется. [38]
По требованию оператора загружается программа Системный ввод в динамическую область памяти. Ей передается управление для считывания входного потока заданий и формирования Очередей заданий. Управление возвращается Супервизору, который загружает Планировщик в разделы с наибольшим приоритетом, имеющими размеры Планировщика. Управление передается Планировщику, находящемуся в наиболее приоритетном разделе. [39]
Логику управления приоритетами можно использовать для разделения общего вектора прерывания несколькими ВУ, что устраняет необходимость индивидуального полинга. Полинг требует минимума аппаратных средств, но оказывается медленным, так как до обслуживания прерывания для идентификации ВУ выполняется много команд. Система приоритетных прерываний имеет регистр, фиксирующий, какое прерывающее ВУ имеет наибольший приоритет. Анализируя этот регистр, МП через таблицу переходов сразу переходит к соответствующей подпрограмме обслуживания, и полинг не нужен. [40]
![]() |
Логика управления векторными приоритетными прерываниями. [41] |
ВУ может запросить прерывание в любой момент, формируя сигнал на своей линии запроса прерывания. Затем запрос стробируется и запоминается в регистре запросов прерываний. Если единицу содержат несколько бит этого регистра, шифратор приоритетов выбирает запрос с наибольшим приоритетом и преобразует его в 3-битный вектор A. Если запросов нет, на выходе шифратора устанавливается нуль и в МП запрос прерывания не поступает. [42]
В рамках APG выполнением заданий управляет SRM, причем разным приоритетам соответствуют разные стратегии управления. Процессам с приоритетами 70 и 71 процессорное время выделяется стандартными порциями на основе простейшего принципа квантования, процессы с приоритетами 72 - 76 обслуживаются по способу циклической очереди с упорядочением по среднему времени непрерывной работы, а к процессам с приоритетом 7В применяется стратегия вращения. Остальные же процессы образуют обычную очередь, из которой для запуска всякий раз выбирается процесс с наибольшим приоритетом. [43]
Как и в случае контроллера прерываний, возможны две схемы приоритетов каналов ПДП, выбираемые программно, - фиксированный и циклический. Исходная схема - фиксированные приоритеты, причем нулевой канал имеет максимальный приоритет, а седьмой - минимальный. Во время обслуживания любого запроса ПДП остальные запросы не могут вмешаться, но после завершения обслуживания данного запроса будет обслуживаться запрос с наибольшим приоритетом. [44]
![]() |
Адреса в исходной программе, объектном и загрузочном модулях и в выполняемой программе. [45] |