Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГЛАВА 6. Мультипрограммирование на основе прерываний.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
100.35 Кб
Скачать

Глава 6.Мультипрограммирование на основе прерываний .

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

  • пропускная способность – количество задач , выполняемых вычислительной системой в единицу времени ;

  • удобство работы пользователей , заключающееся , в частности , в том , что они имеют возможность интерактивно работать одновременно с несколькими приложениями на одной машине ;

  • реактивность системы – способность системы выдерживать заранее заданные (возможно , очень короткие ) интервалы времени между запуском программы и получением результата .

Назначение и типы прерываний .

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

В зависимости от источника прерывания делятся на три больших класса :

  • внешние ;

  • внутренние ;

  • программные ;

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

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

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

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

Прерывания обычно обрабатываются модулями операционной системы , так как действия , выполняемые по прерыванию , относятся к управлению разделяемыми ресурсами вычислительной системы – принтером , диском , таймером , процессором и т.п. Процедуры, вызываемые по прерываниям , обычно называют обработчиками прерываний , или процедурами обслуживания прерываний (Interrupt Service Routine , ISR) . Аппаратные прерывания обрабатываются драйверами соответствующих внешних устройств , исключения – специальными модулями ядра , а программные прерывания – процедурами ОС , обслуживающими системные вызовы . Кроме этих модулей в операционной системе может находиться так называемый диспетчер прерываний , который координирует работу отдельных обработчиков прерываний .

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]