Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Системное_ПО_ПК.doc
Скачиваний:
56
Добавлен:
01.12.2018
Размер:
4.11 Mб
Скачать
    1. Понятие прерывания в ос

Обычно считают, что если ОС может решать несколько задач одновременно, то она является многозадачной, в противном случае – однозадачной. Так ли это? Попробуем разобраться. Мы уже знаем, что ПК состоит из различных подсистем и устройств, причем как внутренних, так и внешних, и всеми ими необходимо управлять, чем, собственно, и занимается операционная система.

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

Все дело в том, что современные ПК выполняют сотни миллионов операций в секунду, и, хотя ОС обращается к каждому из вышеперечисленных устройств последовательно, в силу быстротечности этих операций мы их не замечаем, и кажется, что все происходит одновременно. Хотя в действительности можно говорить только о квазиод­новременном выполнении действий, т. е. реализации режима временно;´го разделения выполнения различных операций.

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

Фактически работа любой ОС представляет собой последовательность прерываний. Но в одних ОС пользователь не может вмешиваться в процесс прерываний (MS-DOS), а в других (Windows) – ему специально предоставляется возможность управлять прерываниями отдельных (прикладных) программ.

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

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

Если прерывание вызвано событием, произошедшим в самой программе (например, обращение к программам DOS, обслуживающим периферийные устройства), то такое прерывание называется программным.

Если обслуживания требует какое-либо устройство (аппаратная часть, например, таймер), то такое прерывание называется аппаратным.

Представим работу механизма прерываний графически (рис. 4.1). Предположим, что в момент времени t1 процессор получает сигнал прерывания. Он приостанавливает выполнение одной программы (Программа I), запоминает адрес ее последней команды и активизирует находящуюся в памяти программу обработки прерываний. После того как эта программа выполнит свою задачу, в момент времени t2 управление возвращается Программе I, и ее выполнение продолжается с того адреса, на котором выполнение было прервано в момент времени t1.

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

Таким образом, даже в так называемой однозадачной системе могут работать несколько программ, но все эти программы, кроме одной, – системные и обычный пользователь напрямую с ними не работает.

Чем же отличается работа такой системы от прерываний многозадачной ОС? Принципиально ничем. С системными программами многозадачная ОС работает точно так же, как и одноз

Рис. 4.2. Работа системы по прерываниям

адачная, не предоставляя пользователю права вмешиваться в процесс прерываний.

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

Активные – задачи, которые в данный момент запрашивают ввод с клавиатуры или производят вывод информации пользователю.

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

Пользователь с использованием механизма (особых действий с устройствами ввода-вывода) осуществляет указание активной программы, и ОС передает ей управление устройствами ввода-вывода почти полностью. «Почти» означает, что некоторые ресурсы ОС оставляет за собой для слежения за действиями пользователя по переключению от одной программы к другой.

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