Глава 6. Операционные системы 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Глава 6. Операционные системы



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

Способы разработки операционных систем и их назначение
достаточно разнообразны. Одни, очень простые, предназначены
для обеспечения работы единственного пользователя на персо-
нальной ЭВМ Другие, крайне сложные системы, дают возмож-
ность одновременной работы многих пользователей, управляют
высокоразвитыми аппаратными и программными средствами.
В разд 6 1 рассмотрены основные свойства операционных си-
стем, которые присущи практически любому их элементу. Из-
за большого разнообразия операционных систем перечень этих
свойств необычайно сжат Он состоит лишь из нескольких об-
щих функций, которые могут быть взяты едва ли не как опре-
деления термина операционная система.

Раздел 62 содержит описание некоторых важных свойств
машинно-зависимых операционных систем, а разд. 6 3 освещает
характеристики машинно-независимых реализации Многие из
рассматриваемых в этих разделах функций (к ним относятся,
например, распределение системных ресурсов и управление
связью между различными пользователями) должны быть ре-
ализованы практически в любой операционной системе, поддер-
живающей одновременную работу многих пользователей.

В разд 6 4 коротко излагаются некоторые альтернативные
способы построения операционных систем В разд 6 5 описыва-
ются несколько реальных операционных систем, дающих пред-
ставление лишь об отдельных формах и функциях подобного
программного обеспечения.

 


6.1. Основные функции операционных систем.

Ниже вкратце рассматриваются основные функции, обычно
выполняемые всеми операционными системами. Главная задача
операционной системы — упростить общение пользователей с ЭВМ. Системное программное обеспечение является надстройкой над базовыми аппаратными средствами и делает работу пользователя с машиной более удобной. Например, обеспечивая максимальную производительность ЭВМ, операционная система осуществляет достаточно сложный процесс управления ее ресурсами, все нюансы которого скрыты от пользователя.

 
 


Пользователь

RUN P

 

 
 

 


Расширенная ма-

шина (операционное

окружение)

 

Интерфейс пользователя

 

Рис 6.1. Основная концепция операционной системы.

ЭВМ. Системное программное обеспечение является над-
стройкой над базовыми аппаратными средствами и делает ра-
боту пользователя с машиной более удобной Например, обес-
печивая максимальную производительность ЭВМ, операционная
система осуществляет достаточно сложный процесс управ-
ления ее ресурсами, все нюансы которого скрыты от пользо-
вателя.

По сравнению с предыдущими главами приводимое ниже изложение основных свойств намного короче и носит более общий характер. Например, для ассемблеров, которые рассмотрены в гл.2, нам удалось найти общую структуру, не зависящую от машинной реализации. Однако операционные системы для персонального компьютера и для суперЭВМмс большим числом пользователей, за исключением основных подходов, будут сильно различаться.

Основные функции операционных систем могут быть изображены, как показано на рис. 6.1. Взаимодействие с программистами, операторами и т.д. осуществляется через интерфейс пользователя, который поддерживается операционной системой. Именно его мы имеем в виду при ответе на вопрос: «Какого характера операционная система?». Если интерфейс предусматривает наличие некоторого языка управления, то, например, запуск программы на счет может быть осуществлен по коман-
де КиМ Р. В разд. 6.1.1 приводится терминология, связанная с операционными системами, и дается их классификация, основанная на предоставляемом ими интерфейсе пользователя. В разд. 6.1.2 коротко описываются некоторые возможные функции интерфейса пользователя.

Для выполнения часто встречающихся задач операционные
системы предоставляют программам определенный набор услуг.
Например, для чтения из файла некоторого набора данных
программа Р может использовать стандартную сервисную программу. Последняя вызывается командой типа read(f), с помощью которой задается и имя файла. Всю заботу об осуществлении ввода-вывода, производимого на машинном уровне, возьмет на себя операционная система.

Сервисные программы могут рассматриваться как часть
операционного окружения задач, находящихся в решении.
О нем пойдет речь в разд. 6.1.3. Более подробно некоторые
сервисные функции и стандартные программы описаны в
разд. 6.2 и 6.3.

В данной главе предполагается, что функции операционной
системы реализованы только программным обеспечением. Од-
нако многие из них могут быть представлены программно-аппа-
ратными средствами (firmware),
состоящими из набора микро-
программ. Дополнительную информацию об этом можно полу-
чить в Дейтел [1984].

 

6.1.1. Типы операционных систем

 

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

Один из способов классификации связан с количеством
пользователей, одновременно обслуживаемых системой. Назо-
вем однопрограммной систему, которая обеспечивает работу
одного пользователя. Это самый старый тип операционных си-
стем. Сейчас его можно встретить на микрокомпьютерах и пер-
сональных ЭВМ. Вероятно, и на гипотетической машине УУМ
и:(-за малого объема памяти и нехватки каналов (что сильно затрудняет обслуживание более одного пользователя) следует считать, что используется однопрограммная система.

Мультипрограммная система позволяет одновременно выпол-
нять несколько заданий пользователей, управляя при этом рас-
пределением процессора между ними. Для того чтобы задания
не мешали друг другу, операционная система создает для них
соответствующее операционное окружение. Мультипроцессорная
система схожа с мультипрограммной с той разницей, что в пер-
вой возможно использование более чем одного ЦП.

Основная цель мультипрограммирования — увеличение про-
изводительности вычислительной системы за счет разделения ее
ресурсов между несколькими заданиями. Например, одно зада-
ние может занимать процессор, в то время как другое — ожи-
дать завершения операции ввода-вывода (подробнее об этом
см. в разд. 6.2).

Другой способ классификации операционных систем основан
на типе доступа, предоставляемого интерфейсом пользователя.
В случае систем с пакетной обработкой в качестве задания вы-
ступает последовательность управляющих операторов, записан-
ная на машинных носителях (например, на перфокартах или
диске). За исключением смены дисков или лент, осуществляе-
мой операторами, всю заботу о считывании и выполнении зада-
ний берут на себя операционные системы. Порядок, в котором
выполняются задания, может быть выбран несколькими спосо-
бами. Вопросы планирования рассматриваются в разд. 6.3.
Диалоговый или интерактивный доступ некоторого числа поль-
зователей обеспечивается системами разделения времени. Опе-
рационная система исполняет директивы пользователей по мере
того, как они вводятся, стараясь дать ответ на каждую коман-
ду пользователя за разумно короткое время. Для обработки
внешних сигналов, поступающих, например, с различных дат-
чиков, и быстрого ответа на них используются системы реаль-
ного времени. К ним относятся операционные системы, работа-
ющие на электронно-вычислительных машинах, управляющих
процессами, в которых время является критическим парамет-
ром (например, ядерная реакция или полет космического ко-
рабля).

Вообще говоря, мультипрограммные системы пакетной обра-
ботки призваны сделать использование ЭВМ более эффектив-
ным. Основной задачей систем разделения времени должно счи-
таться обеспечение хорошего времени ответа пользователям,
работающим в диалоговом режиме. Возможно, при этом при-
дется примириться с использованием машины с меньшей эф-
фективностью. Системы реального времени должны обеспечи-
вать гарантированное время ответа на внешние события, для
которых время является критическим параметром. Довольно
часто все эти функции реализуются в одной системе. Например,

многие системы пакетной обработки нередко поддерживают

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

Дополнительные сведения обо всех этих операционных си-
стемах, равно как и подробности об их создании, можно найти
в Дейтел [1984].

 

Интерфейс пользователя

 

Интерфейс пользователя, предоставляемый операционной си-
стемой, предназначен для обеспечения нужд различных групп
люден, имеющих дело с ЭВМ. Например, для работы на пер-
сональной ЭВМ с простой операционной системой пользователю
предоставляется набор команд, посредством которых он может
получать доступ к системным программам (трансляторам, ре-
дакторам, загрузчикам), осуществлять управление внешними
файлами. Подобный командный язык достаточно прост в ис-
пользовании; обычно имеется возможность в диалоге с маши-
ной получить подсказку или просмотреть меню, содержащее
варианты команд.

В более сложных системах может существовать несколько
различных языков общения с операционной системой. Непро-
фессиональным программистам предоставляется возможность ра-
ботать с ЭВМ на простом языке директив (command language).
Профессиональными программистами может применяться мощ-
ный и сложный язык, часто называемый языком управления
заданиями (job control language).
Кроме того, обычно суще-
ствует специальный язык, при помощи которого осуществляется
взаимодействие операторов и ЭВМ. Такой интерфейс оператора
позволяет запускать и останавливать задания, выяснять их со-
стояние и состояние системных ресурсов, управлять внешними
действиями. Например, оператору может быть сообщено о не-
обходимости установить ленту или диск.

Разработка интерфейса пользователя обычно не влечет за
собой решения сложных технических задач. Между тем его со-
здание чрезвычайно важно, так как он эксплуатируется боль-
шинством пользователей. В идеале интерфейс пользователя дол-
жен быть разработан таким образом, чтобы отвечать требова-
ниям всевозможных типов пользователей и в то же время
учитывать цели и задачи вычислительной системы. Дополни-
тельные сведения об интерфейсе пользователя можно найти в
работах Дейтел [1984] и Питерсон [1983].

Для поддержки интерфейса пользователя операционная си-
стема должна иметь также стандартные сервисные программы.
В случае персональной ЭВМ это могут быть программы для
управления вводом с клавиатуры и выводом на дисплей, а в
более сложных системах — средства сопряжения с работающими

в режиме разделения времени удаленными терминалами,
считывателями с перфокарт и печатающими устройствами. Воз-
можно также наличие интерфейса между локальной системой
и другими ЭВМ, объединенными в сеть. Как часть интерфейса
оператора многие операционные системы ведут накопление ста-
тистики активности системы; она может использоваться для
анализа производительности и обнаружения ошибок.

 

Операционное окружение

 

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

В качестве примера услуг, предоставляемых операционным
окружением, рассмотрим функцию ввода-вывода. Почти все
операционные системы имеют стандартные программы, помо-
гающие в осуществлении таких операций. Предположим, что
программа работает на УУМ под управлением однопрограмм-
ной системы. Чтобы прочитать байт без помощи операционной
системы, программа должна содержать цикл, в котором анали-
зируется состояние устройства и выполняется команда RD (см.
рис. 2.1). Обнаружение и исправление ошибок также возложено
на саму программу.

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

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

Иногда расширенную машину называют виртуальной. Одна-
ко термин «виртуальная машина» может иметь и другой смысл.
Это двоякое использование термина описывается в разд. 6 4.

Операционное окружение мультипрограммных операционных
систем содержит также программы, которые управляют ресур-
сами ЭВМ, выделяя их по необходимости заданиям пользова-
телей. Например, оперативная память распределяется между
заданиями, одновременно находящимися в решении, централь-
ный процессор предоставляется заданиям согласно заранее вы-
бранной стратегии. За исключением конкретных запросов опе-
рационной системе заданиям пользователя нет необходимости
иметь дело с управлением ресурсами. Благодаря операционно-
му окружению каждое задание выполняется как бы на отдель-
ной расширенной машине, хотя в действительности базовая
машина может быть распределена между несколькими пользо-
вателями.

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

Способ запроса связи с операционной системой при помощи
обращения к фиксированной области памяти используется в
микрокомпьютерах и персональных ЭВМ Однако этот метод
часто не удобен и является источником ошибок; кроме того, он
может предоставить пользователю возможность обойти сред-
ства защиты, встроенные в операционную систему В более
развитых системах пользователи запрашивают функции опера-
ционных систем в основном при помощи специальных машин-
ных команд, таких как вызов супервизора (SVC – Super Visor

Call). Выполнение команды SVC вызывает прерывание, в ре-
зультате которого управление передается сервисной стандарт-
ной программе операционной системы. Код, которым сопровож-
дается команда SVC, определяет тип запроса. Обработка пре-
рываний операционной системой рассматривается в разд 6.2.1.

Как правило, в машине любое прерывание вызывает перевод
ЦП из режима пользователя в режим супервизора В режиме
супервизора могут быть использованы все команды и средства
машины Многие части операционной системы работают в этом

режиме При этом в режиме пользователя недопустимо выпол-
нение некоторых команд. К таким командам могут относиться,
например, функции ввода-вывода, установка флагов защиты или
переключение ЦП из одного режима в другой. Примеры таких
команд будут рассмотрены ниже. Ограничения, накладываемые
на использование привилегированных команд, заставляют про-
грамму пользователя обращаться к услугам операционного
окружения. Таким образом, вместо непосредственного использо-
вания функций базового аппаратного обеспечения программы
должны иметь дело с интерфейсом расширенной машины. Огра-
ничения также не дают программам пользователей вмешиваться
случайно или намеренно в функции управления ресурсами, осу-
ществляемые операционной системой. Привилегированные
команды, равно как ч,и режим пользователя/супервизора (или
эквивалентный ему), необходимы практически для всех систем,
поддерживающих одновременную работу более чем одного поль-
зователя.

В разд. 62 и 63 рассматриваются разнообразные функции
и услуги, обычно предоставляемые операционным окружением.
На этом уровне между операционными системами, которые мо-
гут оказаться совершенно различными в интерфейсе пользова-
теля, есть много общего Многие рассматриваемые технические
приемы могут быть использованы с некоторыми изменениями
почти во всех операционных системах: пакетной обработки, раз-
деления времени, реального времени и т. п.

 

Машинно-зависимые свойства

Операционных систем

Одной из наиболее важных функций операционной системы
является управление ресурсами ЭВМ, на которой она работает.
Многие ресурсы имеют непосредственное отношение к аппарат-
ным устройствам, таким как центральная оперативная память,
каналы ввода-вывода и ЦП. Таким образом, многие функции
операционной системы тесно связаны с архитектурой машины.

Рассмотрим, например, машину УУМ У нее маленькая опе-
ративная память, отсутствуют каналы ввода-вывода, прерыва-
ния, нет команд вызова супервизора. Такая машина может
быть удобна в качестве персональной ЭВМ; на ней нет смысла
работать одновременно нескольким пользователям. Таким об-
разом, операционная система для стандартной машины УУМ
будет однопользовательской с простыми средствами общения с
пользователем и минимальным набором функций операционного
окружения. И если она предоставит какие-то простые возмож-
ности, то их вряд ли будет больше тех, что рассматривались
в разд. 6.1.

ЭВМ УУМ/ДС, наоборот, имеет гораздо большую оператив-
ную память, каналы ввода-вывода и обладает многими другими
свойствами, отсутствующими у стандартной машины УУМ. На
УУМ/ДС хорошо иметь мультипрограммную операционную си-
стему. Она позволит распределять между несколькими одно-
временно работающими пользователями доступные им ресурсы
расширенной машины, а также лучше использовать усовершен-
ствованные программные средства. Конечно, разделение вычис-
лительной системы между несколькими пользователями создает
много проблем, подобных распределению ресурсов. Все они
должны быть решены операционной системой. В дополнение к
этому операционная система должна осуществлять поддержку
более развитых функций аппаратуры, таких как прерывания и
канальный ввод-вывод.

В данном разделе мы рассмотрим некоторые функции ма-
шинно-зависимых частей операционных систем. Для этого бу-
дет использована терминология ЭВМ УУМ/ДС; однако неко-
торые принципы могут быть легко перенесены на другие маши-
ны, у которых архитектурные особенности схожи с УУМ/ДС.
Мы обсудим в ходе изложения ряд важных свойств аппарат-
ных средств УУМ/ДС. Для упрощения ссылок все эти свой-
ства резюмированы в приложении В.

Раздел 6.2.1 знакомит читателя с основными принципами
прерываний и их обработки, используемыми на всем протяже-
нии остальной части главы. В разд. 6.2.2 обсуждаются вопросы,
связанные с распределением ЦП между несколькими заданиями
пользователей, работающими в мультипрограммном режиме.
В разд. 6.2.4 и 6.2.5 обсуждаются вопросы разделения цент-
ральной памяти между несколькими пользовательскими зада-
ниями. В разд. 6.2.4 дается представление о средствах управ-
ления реальной памятью, а в разд. 6.2.5 — о важном понятии —
виртуальной памяти.

 

Обработка прерываний

 

Прерывание (interrupt) — это сигнал, заставляющий ЭВМ
менять обычный порядок исполнения потока команд. Возник-
новение подобных сигналов обусловлено такими событиями, как
завершение операций ввода-вывода, истечение заранее задан-
ного интервала времени или попытка деления на нуль.

Рис. 6.2 дает представление о последовательности событий,
происходящих в ответ на прерывание. Предположим, что в мо-
мент поступления от некоторого источника сигнала прерывания
программа А находится в решении. В результате управление
автоматически передается на блок обработки прерываний (или
блок ОП, а также обработчик прерываний), который обычно
является частью операционной системы. Этот блок предназначен

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

В только что описанной последовательности событий воз-
никновение и обработка прерывания могут быть совершенно не

 
 

 

 


Рис. 6 2 Основная концепция обработки прерываний.

связаны с программой А. Например, оно может быть вызвано
завершением операции ввода-вывода, выданной другой про-
граммой. В общем случае невозможно предсказать, когда и по
какой причине программа А будет прерва- тип
на. Другими словами, по отношению к ней Класспрерывания
прерывания возникают асинхронно. За со- I SVC
хранением текущего состояния машины во II Программное
время прерывания программы А, а также III по таймеру
за его восстановлением, когда А будет про- IV ввода/вывода
должена, следят аппаратные и програм- Рис.6.3. Типы преры-
мные средства. Благодаря этому в случае ваний в УУМ/ДС.
прерывания ничто, за исключением вре-
мени, не влияет на ее выполнение. На самом деле для А даже
не существует способа узнать, имело место прерывание или
нет.

На рис. 63 приведены четыре класса прерываний для ЭВМ
УУМ/ДС. SVC-прерывание (класс I) возникает при выполне-
нии ЦП команды вызова супервизора. Эта команда использу-
ется программами для вызова функций операционной системы.
Программное прерывание (класс II) возникает при появлении
некоторой ситуации, такой как деление на нуль, или при попыт-
ке выполнить неправильную машинную команду и, возможно, в

процессе работы программы. Приложение В содержит пол-
ный перечень условий, которые могут вызвать программное
прерывание.

Прерывание по таймеру (класс III) вызывается интерваль-
ным таймером
ЦП Этот таймер содержит регистр, которому
может быть присвоено определенное начальное значение по-
средством привилегированной команды STI. Значение этого
регистра автоматически уменьшается на 1 после использова-
ния каждой миллисекунды времени ЦП. Когда это значение
становится равным нулю, происходит прерывание по таймеру.
Подобный интервальный таймер используется операционной си-
стемой для определения времени, в течение которого программа
пользователя может оставаться под управлением машины.

Прерывание по вводу-выводу (класс IV) вызывается кана-
лами или устройствами ввода-вывода Причиной многих таких
прерываний является нормальное завершение некоторой опера-
ции ввода-вывода; однако они могут также оповещать о воз-
никновении различных ошибочных ситуаций.

Когда происходит прерывание, состояние ЦП сохраняется, а
управление передается стандартной программе обработки пре-
рываний В заключении рассмотрим метод для УУМ/ДС.

Как показано на рис 6 4, в машине УУМ/ДС для каждого
класса прерываний имеется соответствующая ему рабочая об-
ласть прерываний
. Например, область, соответствующая преры-
ванию по таймеру, начинается с адреса памяти 160 Когда про-
исходит прерывание по таймеру, содержимое всех регистров
сохраняется в этой области (см. рис 6 4а) Затем из двух пер-
вых слов области заранее занесенные туда значения загружа-
ются в слово состояния SW и счетчик команд РС. Загрузка и
сохранение регистров осуществляются аппаратными средствами
машины автоматически.

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

 

 
 
Центральная память

 

 


  . . . .  
Регистры

 

Рабочая

область

SVC-пре-

рываний

  Новый SW
  Новый PC
  Старый SW
  Старый РС
10С   Область сохранения регистров  
SW

     
L
PC
A
X

 

Рабочая

область

программ-

ных пре-

рываний

  Новый SW
  Новый PC
  Старый SW
  Старый РС
13С   Область сохранения регистров  
B

     
F
T
S

 

Рабочая

область

прерывния

по таймеру

  Новый SW
  Новый PC
  Старый SW
  Старый РС
16С   Область сохранения регистров  
     
    Рабочая область прерывания по вводу- выводу   Новый SW
  Новый PC
  Старый SW
  Старый РС
19С   Область сохранения регистров  
    . . . .  

а

Рис. 6.4. Операции контекстного переключения, вызванные а – прерыванием по таймеру и б – командой LPS 166.

 

 
 
Центральная память

 

 


    . . . .  
    Рабочая область SVC-пре- рываний   Новый SW
  Новый PC
  Старый SW
  Старый РС
10С   Область сохранения регистров  
       
L
PC
A
X

 

Рабочая

область

программ-

ных пре-

рываний

  Новый SW
  Новый PC
  Старый SW
  Старый РС
13С   Область сохранения регистров  
B

     
F
T
S

 

Рабочая

область

прерывния

по таймеру

  Новый SW
  Новый PC
  Старый SW
  Старый РС
16С   Область сохранения регистров  
     
    Рабочая область прерывания по вводу- выводу   Новый SW
  Новый PC
  Старый SW
  Старый РС
19С   Область сохранения регистров  
    . . . .  

 

б

Рис.6.4. Продолжение.

 

 

После выполнения в ответ на запрос на прерывание любого
требуемого действия стандартная программа обработки преры-

ваний выполняет команду загрузки состояния процессора
(LPS – Load Processor Status), в результате чего управление
передается прерванной программе (см рис 646). Команда
LPS вызывает загрузку сохраненного содержимого SW, РС
и других регистров из соответствующих слов области сохране-
ния, начиная с адреса, указанного в команде. Это приводит к
восстановлению содержимого регистров и состояния ЦП, кото-
рые были в момент прерывания. Управление затем передается

на команду, перед выполнением которой произошло прерывание.
Сохранение и восстановление состояния ЦП и содержимого ре-
гистров часто называют операцией контекстного переключения.

Слово состояния SW содержит часть информации, которая
нужна для обработки прерываний. Мы говорим о содержимом
SW в УУМ/ДС. Большинство ЭВМ имеет аналогичный регистр,
часто называемый словом состояния программы или словом
состояния процессора.

 

Разряды Имя поля Использование
2-5 6-7 8-11 12-15 16-23 MODE IDLE ID CC MASK   ICODE O=режим пользователя,1=режим супервизора 0=активен, 1=пассивен Идентификатор процесса Код условия Маска перрываний Не используется Код прерываний

 

Рис 6.5. Содержимое слова состояния УУМ/ДС.

 

На рис. 6 5 показано содержимое SW. Первым битом (МОDЕ)
задается режим, в котором находится ЦП — пользовательский
или супервизора.

Обычные программы выполняются в пользовательском ре-
жиме (МОDЕ = 0). Когда происходит прерывание, новое за-
гружаемое содержимое SW имеет МODЕ = 1, что автоматиче-
ски переводит ЦП в режим супервизора, тем самым становится
возможным использование привилегированных команд. Перед
тем как значение SW будет сохранено, в поле ICODE авто-
матически устанавливается значение, указывающее на причину
прерывания В случае SVC-прерываний ICODE присваивается
значение, заданное пользователем командой SVС. Он опреде-
ляет тип сервисного запроса. При программном прерывании в
1СООЕ отражен тип вызвавшего его условия, например деление
на нуль. При прерывании по вводу-выводу в ICODE дан номер
канала, породивший прерывание. Дальнейшую информацию о
возможных значениях ICODE можно найти в приложении В.

В SVC содержится также код состояния СС. Сохранение
SW автоматически спасает значение кода состояния прерванно-
го процесса. Об использовании полей IDLE и ID будет расска-
зано ниже в этой главе. Поле IDLE определяет, выполняет ли
ЦП команды или простаивает. В ID содержится 4-битовое зна-
чение, идентифицирующее текущую выполняемую программу.

Оставшееся поле слова состояния (МАSК) используется
для контроля за разрешением прерываний. Это требуется для
того, чтобы избежать потери сохраненной ранее информации
о состоянии процесса. Предположим, например, что произошло
прерывание по вводу-выводу. Значения SW, РС и других ре-

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



Поделиться:


Последнее изменение этой страницы: 2017-02-17; просмотров: 242; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.231.146.172 (0.124 с.)