Операционное окружение
Понятие стандартного операционного окружения (SOE — Standart Operating Enviroment). Операционная система как расширенная машина. Классы (уровни) прерываний. Порядок обработки, функции системы прерываний. Эффективность реализации системы прерываний ЭВМ.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | реферат |
Язык | русский |
Дата добавления | 20.03.2012 |
Размер файла | 21,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Операционное окружение
Операциомнное окружемние - среда, в которой пользователь запускает программу. Например, операционное окружение DOS состоит из всех команд DOS, доступных пользователю. С другой стороны, операционное окружение Macintosh включает в себя графический интерфейс пользователя, использующий иконки и меню вместо команд.
Между операционным окружением и shell пролегает очень тонкая грань. Исторически shell создавались как интерфейс к операционной системе. Он не добавляли новых возможностей и свойств. В задачу shell входило создание более удобного пользовательского интерфейса. Но со временем появились «интелектуальные» shell. И в данный момент есть некоторые отличия между интелектуальным shell и операционным окружением.
Также операционное окружение иногда называют контролирующей программой (control program).
В сфере бизнеса существует понятие стандартного операционного окружения (SOE -- Standart Operating Enviroment)
Операционная система как расширенная машина
Как было упомянуто ранее, архитектура (система команд, организация памяти, ввод-вывод данных и структура шин) большинства компьютеров на уровне машинного языка примитивна и неудобна для работы с программами, особенно в процессе ввода-вывода данных.
Чтобы это утверждение не показалось голословным, кратко рассмотрим пример того, как происходит ввод-вывод данных с гибкого диска через совместимые микросхемы контроллера NEC PD765, используемые на большинстве персональных компьютеров с процессором Intel. (В этой книге мы будем использовать и термин «гибкий диск», и термин «дискета».) Контроллер PD765 имеет 16 команд, каждая задается передачей от 1 до 9 байт в регистр устройства. Это команды для чтения и записи данных, перемещения головки диска и форматирования дорожек, а также для инициализации, распознавания, установки в исходное положение и калибровки контроллера и приводов.
Основными командами являются команды read и write (чтение и запись). Каждая из них требует 13 параметров, упакованных в 9 байт. Эти параметры определяют такие элементы, как адрес блока на диске, который нужно прочитать, количество секторов на дорожке, физический режим записи, расстановку промежутков между секторами. Они же сообщают, что делать с меткой адреса данных, которые были удалены. Когда выполнение операции завершается, чип контроллера возвращает упакованные в 7 байт 23 параметра, отражающие наличие и типы ошибок. Но этого не достаточно, и программист при работе с гибким диском должен также постоянно знать, включен двигатель или нет. Если двигатель выключен, его следует включить (с длительным ожиданием запуска) прежде, чем данные будут прочитаны или записаны. Двигатель не может оставаться включенным слишком долго, так как гибкий диск изнашивается. Программист вынужден выбирать между длинными задержками во время загрузки и изнашивающимися гибкими дисками (с вероятностью потери данных на них).
Даже если не вдаваться глубже в подробности этого процесса, становится ясно, что обыкновенный программист вряд ли захочет столкнуться с такими деталями при работе с гибким диском (или жестким диском, работа с ним не менее сложна).
Вместо этого программисту нужны простые высокоуровневые абстракции. В случае работы с дисками типичной абстракцией является коллекция именованных файлов, содержащихся на диске. Каждый файл может быть открыт для чтения или записи, прочитан или записан, а потом закрыт. А такие детали, как например, текущее состояние двигателя, не должны содержаться в абстракции, предстающей перед пользователем. С точки зрения пользователя операционная система выполняет функцию расширенной машины или виртуальной машины, в которой проще программировать и легче работать, чем непосредственно с аппаратным обеспечением, составляющим реальный компьютер (с базовой машиной).
Режимы работы
Чтобы конкурирующие процессы не могли взаимно влиять друг на друга, часть команд компьютера должны быть зарезервированы для исполнения только ОС. Эти привилегированные инструкции должны представлять такие инструкции, как:
· инициирование и ликвидация прерываний;
· переключение процессов между процессами;
· доступ к регистрам, используемый оборудованием защиты памяти;
· выполнение ввода/вывода;
· остановка CPU и управление его операциями (пример: инициирование и ликвидация внутренних механизмов таких, как элементы ускорения операций с плавающей точкой и кэшей памяти).
Чтобы различать, когда можно, а когда нет выполнять привилегированные команды, большинство компьютеров работают более чем в одном режиме. В типичном случае есть два режима, часто известных как режим супервизора и режим пользователя. Если программе пользователя разрешить выполнение любых операций ввода-вывода, она могла бы вывести главный список паролей системы, распечатать информацию любого другого пользователя или вообще испортить операционную систему, поэтому все программы пользователя могут выполняться только в режиме пользователя.
Привилегированные команды могут выполняться только операционной системой в режиме супервизора.
Переключение из режима пользователя в режим супервизора происходит автоматически в следующих случаях:
· пользовательский процесс вызывает ОС для выполнения некоторых системных функций, требующих привилегированных команд. Такие вызовы называются вызовами супервизора или системными вызовами;
· возникновение прерываний;
· возникновение ошибки в пользовательском процессе. Это условие можно понимать как "внутреннее прерывание” и обрабатываться в первую очередь соответствующей процедурой прерывания;
· когда делается попытка выполнения привилегированной инструкции в режиме пользователя. Эта попытка может рассматриваться как особый вид ошибки и обрабатываться как в случае (с);
Переключение из режима супервизора назад в режим пользователя происходит по привилегированной команде.
В процессе развития компьютерных архитектур выявилась тенденция к увеличению количества привилегированных команд, т. е. команд, которые не могут выполняться в режиме задачи. Это служит свидетельством определенной тенденции к реализации большего числа функций операционных систем аппаратными средствами. Во многих случаях значительная часть функций операционной системы реализуется в аппаратуре.
операционный система прерывание standart
Требования к ОС
Сегодня к ОС предъявляется множество требований. Главными из них, конечно же, являются выполнение функций эффективного управления ресурсами вычислительной системы и обеспечение удобного интерфейса для пользователя и прикладных программ. Кроме того, можно выделить ряд основных требований, которым должна удовлетворять любая современная ОС.
Производительность. ОС должна обладать настолько хорошим быстродействием и временем реакции, насколько это позволяет аппаратная платформа.
Надежность. Это требование ОС определяется архитектурными решениями, положенными в ее основу, а также качеством реализации.
Защищенность. Система должна быть защищена как от внутренних, так и от внешних ошибок, сбоев и отказов. Ее действия должны быть всегда предсказуемы, а приложения не должны иметь возможности наносить вред.
Расширяемость. ОС является расширяемой, если в нее можно вносить дополнения и изменения, не нарушая целостности системы. Расширяемость достигается за счет модульной структуры ОС, при которой программы строятся из отдельных модулей, взаимодействующих только через функциональный интерфейс.
Переносимость. В идеальном случае ОС должна легко переноситься с одного типа аппаратной платформы на другой.
Совместимость. Сохранение возможности использования прикладных программ, написанных для "старой” или вообще другой ОС, в новой ОС.
Удобство. Средства ОС должны быть простыми и гибкими, а логика ее работы ясна пользователю.
Зачастую некоторые из требований могут противоречить друг другу. Например, на осуществление необходимых проверок и управления, связанных с обеспечением защиты, расходуется как процессорное время, так и некоторые другие ресурсы вычислительной системы. Несмотря на это, любая современная система должна обладать перечисленными выше свойствами.
Обработка прерываний
Во время выполнения программы внутри ЭВМ и во внешней среде могут возникать события, требующие немедленной реакции на них со стороны машины. Реакция состоит в том, что машина прерывает обработку текущей программы и переходит к выполнению некоторой другой программы, специально предназначенной для данного события. По завершении этой программы ЭВМ возвращается к выполнению прерванной программы. Такой процесс называется прерыванием.
Прерывание - реакция на входной сигнал запроса прерывания или команду прерывания.
Принципиально важным является то, что моменты возникновения событий, требующих прерывания программ, заранее неизвестны и поэтому не могут быть учтены при программировании.
Прерывания бывают:
- внешние;
- внутренние;
- программные.
Внешние (аппаратные) - прерывания могут возникать в результате действий пользователя или в результате поступления сигналов от аппаратных устройств (например, сигналов завершения ввода-вывода от принтера или винчестера). Такие прерывания возникают между выполнением двух команд программы.
Внутренние - происходят в случае возникновения программной ошибки или сбоя, после которого нельзя продолжить выполнение программы, например, деление на ноль, обращение по несуществующему адресу памяти. Возникают при выполнении команд программы.
Программные прерывания возникают при выполнении особой команды процессора, имитирующей прерывание. То есть после этой команды происходит переход на новую последовательность команд.
Прерывание работы МП по запросу внешних устройств устраняет необходимость выполнения МП неэффективных операций по проверке готовности внешних устройств к обмену данными и снижает затраты времени на ожидание готовности периферийного устройства к обмену. Прерывания необходимы при обмене данными с большим числом асинхронно работающих внешних устройств.
Каждое событие, требующее прерывания, сопровождается сигналом, оповещающим об этом событии ЭВМ, который называется запросом прерывания. Программу, затребованную запросом прерывания, называют прерывающей программой, а программу, выполнявшуюся до появления запроса, - прерываемой программой.
В сущности, запросы прерывания поступают от нескольких параллельно развивающихся во времени процессов, требующих в произвольные моменты времени обслуживания со стороны процессора. К этим процессам относится выполнение основной программы, контроль правильности работы ЭВМ, операции ввода-вывода и т.п.
Система прерываний позволяет значительно эффективнее использовать процессор при наличии нескольких протекающих параллельно во времени процессов.
Для эффективной реализации системы прерываний ЭВМ снабжается соответствующими аппаратными и программными средствами, совокупность которых называется контроллером прерываний.
Порядок обработки прерывания
Основными функциями системы прерываний являются:
· запоминание состояния прерываемой программы;
· осуществление перехода к прерывающей программе;
· восстановление состояния прерванной программы;
· возврат к прерванной программе.
Обычно прерывание допускается после завершения выполнения текущей команды. В этом случае время реакции определяется в основном временем выполнения одной команды.
Это время реакции может оказаться недопустимо большим для ЭВМ, работающих в реальном масштабе времени. В таких машинах часто допускается прерывание после любого такта выполнения команды. Однако при этом возрастает количество информации, подлежащей запоминанию и восстановлению при переключении программ, так как в этом случае необходимо сохранять состояния счетчика тактов, регистра кода операции и некоторые другие в момент прерывания.
Классы (уровни) прерываний
В ЭВМ число различных запросов прерывания может достигать нескольких сотен. В таких случаях запросы обычно разделяют на отдельные классы или уровни.
Совокупность запросов, инициирующих одну и ту же прерывающую программу, образует класс или уровень прерывания. Объединение запросов в классы прерывания позволяет уменьшить объем аппаратуры, но связано с замедлением работы системы прерывания.
Вектор прерывания
Вектором прерывания называют электрический сигнал, посылаемый на шины процессора. По вектору прерывания можно определить всю необходимую информацию для перехода к прерывающей программе, в том числе ее начальный адрес. Каждому уровню прерывания соответствует свой вектор прерывания. Векторы прерывания обычно находятся в специально выделенных фиксированных ячейках памяти.
Таблица векторов прерываний
Вектор 1 |
Начальный адрес подпрограммы обработки вектора 1 |
|
… |
… |
|
Вектор n |
Начальный адрес подпрограммы обработки вектора n |
Процедура организации перехода к прерывающей программе выделяет из всех выставленных запросов тот, который имеет наибольший приоритет, выполняет передачу текущего состояния прерываемой программы из регистров процессора в стек, загружает в регистры процессора вектор прерывания и передает управление прерывающей программе.
Организация вложенных прерываний
Возможна ситуация, когда в момент обработки первого прерывания приходит запрос на еще одно прерывание.
При наличии нескольких источников запросов прерываний должен быть установлен определенный порядок в обслуживании поступающих запросов.
В системе установлены приоритетные соотношения между запросами прерываний.
Приоритетные соотношения определяют, какой из нескольких поступивших запросов подлежит обработке в первую очередь, и устанавливают, имеет или не имеет право данный запрос прерывать ту или иную программу.
Например, запрос на прерывание от таймера всегда приоритетнее запроса от любого внешнего устройства, а программы пользователя имеют самый низкий приоритет и могут быть прерваны чем угодно.
Существует понятие глубины прерывания - это максимальное число программ, которые могут прерывать друг друга. Если после перехода к прерывающей программе и вплоть до ее окончания прием других запросов запрещается, то говорят, что система имеет глубину прерывания, равную 1. Глубина равна n, если допускается последовательное прерывание до n программ. Системы с большим значением глубины прерывания обеспечивают более быструю реакцию на срочные запросы.
Различают использование абсолютных и относительных приоритетов.
Схема с абсолютными приоритетами:
Поступивший запрос с более высоким приоритетом, чем обрабатывающийся сейчас, прерывает выполняемую программу.
Схема с относительными приоритетами:
Поступивший запрос является первым кандидатом на обслуживание после завершения выполнения текущей программы. Даже если его приоритет выше, все равно выполняющаяся программа должна завершиться.
Если наиболее приоритетный из выставленных запросов прерывания не превосходит по уровню приоритета выполняемую процессором программу, то запрос прерывания игнорируется или его обслуживание откладывается до завершения выполнения текущей программы.
Размещено на Allbest.ru
Подобные документы
Изучение понятия, векторов и механизмов обработки прерываний; их классификация в зависимости от источника происхождения. Особенности реагирования аппаратной и программной частей операционной системы на сигналы о совершении некоторого события в компьютере.
реферат [995,8 K], добавлен 22.06.2011Принципы организации и особенности обработки прерываний на основе контроллера 8259A. Общая характеристика аппаратных средств системы прерываний PIC (Programmable Interrupt Controller). История разработки и порядок работы с технологией Plag and Play.
курсовая работа [305,1 K], добавлен 29.07.2010Принципы и алгоритмы обработки прерываний. Набор действий по реализации этапов обработки прерываний микропроцессора. Разработка структуры и алгоритма резидентной программы. Реализация программы на языке Ассемблер, методы её отладки и тестирования.
курсовая работа [348,7 K], добавлен 22.12.2014Проектирование механизма обработки прерываний. Контроллер прерываний Intel 82C59A. Ввод-вывод по прерыванию. Программируемый контроллер интерфейса Intel 82C55A. Роль процессора в обработке прерывания ввода-вывода. Обзор алгоритма обработки прерывания.
контрольная работа [8,0 M], добавлен 19.05.2010Прерывание и его природа. Контролер прерываний. Обработка прерываний в реальном режиме. Характеристики реального режима работы микропроцессора. Схема обработки прерываний в реальном режиме. Написание собственного прерывания. Разработка в общем случае.
доклад [347,0 K], добавлен 22.09.2008Генерация звука и обработка прерываний. Создание системы с использованием средств языка программирования Ассемблер. Установка и чтение таймера. Программирование микросхемы таймера 8253/8254. Максимальный программируемый интервал времени для системы.
реферат [21,4 K], добавлен 10.05.2011Обработка прерываний - сигналов о совершении некоторых событий в компьютере. Механизм обработки прерываний. Обработка исключений, описание реакции программы на ошибки выполнения. Общее понятие и виды исключительных ситуаций во время выполнения программы.
реферат [192,2 K], добавлен 10.11.2014Особенности и свойства операционной системы UNIX, ее история, файловая структура, функции и отличия от других. Архитектура ядра системы. Понятия диспетчеризации, прерываний, системного времени (таймера), кеша. Проблема построения многопроцессорных систем.
курсовая работа [35,6 K], добавлен 10.05.2011Изучение механизма работы программных инструментов как трудная часть отладочного процесса. Отладчики пользовательского режима, их основные типы. Автоматический запуск приложений в отладчике. Быстрые клавиши прерываний. Отладка ядра операционной системы.
реферат [260,0 K], добавлен 25.11.2016Написание алгоритма приема 10 пакетов по 12 байт из последовательного порта и размещение их в памяти PRAM. Создание управляющего блока PTSCB для режима блоковой передачи данных. Аппаратная обработка прерываний в режима аналого-цифрового сканирования.
практическая работа [2,0 M], добавлен 25.04.2012