Презентация по информатике на тему Обработка прерывания(10 класс)


Обработка прерываний Понятие прерыванияПрерывание – это важная процедура, которая позволяет изменить нормальную последовательность команд, выполняемых процессором. Понятие прерыванияПроцессор должен реагировать на события, которые происходят вне его. Эту реакцию можно реализовать двумя способами:Процессор должен постоянно просматривать все устройства, которые могут потребовать его внимания. Такой способ неэффективен, т.к. большая часть времени процессора может уйти на сканирование. Использование прерываний. Сущность прерыванияУстройство, которое требует внимания процессора, сообщает об этом с помощью специального сигнала (запрос на прерывание). По этому сигналу управление CPU передается ОС. ОС запоминает состояние прерванного процесса и хранит эту информацию в спец. регистре микропроцессора. Такой регистр называется СТЕК. Затем ОС анализирует, от какого устройства произошло прерывание и затем передает управление программе, которая управляет устройством, выдавшим запрос на прерывание.Такая программа называется обработчик прерывания. Сущность прерыванияПрерывание может быть вызвано не только каким-нибудь устройством, но и выполняющимся процессом. Сущность прерыванияВ начале прерывания использовались в основном для управления процессором, устройствами ввода-вывода. Затем прерывания стали использовать для организации внутренней работы ЭВМ. В соответствии с этим существуют следующие типы прерываний:1.Аппаратные прерывания – прерывания от устройств компьютера.2.Программные прерывания – прерывания, которые вырабатывают процессы, находящиеся на стадии выполнения.3.Логические прерывания – Эти прерывания вырабатывает сам процессор, когда встречается с каким-либо необходимым условием:а) деление на 0б) переполнение регистров микропроцессорав) пошаговое выполнение программг) режим контрольных точек. Каждое прерывание имеет два параметраНомер прерывания Вектор прерыванияВектор прерывания – это адрес ячейки памяти, где хранится программа – обработчик прерывания.Прерывания обозначаются - IRQ. Ядро операционной системыВсе операции над процессами выполняются той частью ОС, которая называется ядром.Ядро ОС – это часть кода ОС, которая наиболее интенсивно используется в процессе работы. По этой причине ядро ОС постоянно находится в памяти, в то время как другие части ОС загружаются в память и выгружаются из нее по мере надобности.Например, в ОС MS-DOS ядро системы составляют два файла:1) IO.SYS2) MSDOS.SYS Одной из основных функций ядра является обработка прерываний. В ОС MS-DOS функцию управления обработки прерываний выполняет файл MSDOS.SYS. Функции ядра ОССоздание и уничтожение процессов Переключение процессов из состояния в состояние Приостановка и оптимизация процессов Организация взаимодействия между процессами Манипулирование блоками управления процессов Поддержка операций ввода-вывода Концепция прерыванияКонцепция прерывания состоит в том, что любой процесс, обслуживаемый операционной системой, может быть прерван процессом, имеющим более высокий приоритет.Прерывание – временное прекращение процесса, такого как выполнение программы вычислительной машины, вызванное событием, внешним по отношению к этому процессу, и совершенное таким образом, что процесс может быть продолжен. В вычислительной машине прерывание – это событие, при котором меняется нормальная последовательность команд, выполняемых процессором. Сигнал "прерывание" сначала отрабатывается аппаратурой вычислительной машины – системой прерываний. Если произошло прерывание, то в вычислительной системе выполняются последовательно следующие действия.управление передается операционной системе;операционная система запоминает состояние прерванного процесса;операционная система анализирует тип прерывания и передает управление соответствующей программе обработки этого прерывания;программа обработки прерывания выполняет предписанные действия и передает управление операционной системе;операционная система по результатам работы программы обработки прерываний либо восстанавливает состояние прерванного процесса и позволяет развиваться ему дальше, либо аварийно заканчивает его. Количество источников сигналов прерывания достигает в современных вычислительных системах нескольких сотен и даже тысяч. Классификация прерыванийРазличают шесть основных классов прерываний: прерывания от схем контроля ЭВМ; прерывания по рестарту (повторному пуску); прерывания ввода/вывода; внешние прерывания; прерывания по вызову супервизора; программные прерывания. Прерывание от схем контроля возникает в случае появления любой аппаратной ошибки в ЭВМ. Продолжение работы машины становится невозможным, и процесс аварийно заканчивает свое существование. Прерывание по рестарту может наступить в следующих случаях: на пульте управления была нажата кнопка (клавиша, сочетание клавиш) повторного пуска ЭВМ; процесс, выполняющий в данной ЭВМ, выдал команду рестарта; в многомашинной системе получена команда рестарта от другого компьютера. В любом случае в ЭВМ, получившей команду рестарта, выполняются действия по загрузке операционной системы. 3. Прерывания ввода/вывода инициируются аппаратурой, обеспечивающей операции ввода и вывода данных. Они сигнализируют центральному процессору об изменении состояния устройств ввода/вывода. 4. Внешнее прерывание может возникнуть по самым различным причинам. Типичными источниками внешних прерываний являются таймер, выдающий сигнал об истечении кванта времени, параллельный синхронный или асинхронный процесс, другой процессор, другой компьютер. 5. Прерывание по вызову супервизора появляется в том случае, когда работающий процесс выполняет команду обращения к супервизору. Этой командой программа пользователя генерирует запрос на предоставление конкретной системной услуги, например, на выполнение операции ввода/вывода, увеличение объема выделенной памяти и т.п. Механизм команд позволяет защитить операционную систему от пользовательских процессов. 6. Программное прерывание может возникнуть по двум причинам: процесс пытается выполнить ошибочную операцию (например, деление на нуль, операция с неправильным кодом и т.п.); процесс выполнил заранее подготовленную команду прерывания для обеспечения перехода к выполнению других действий (например, для синхронизации нескольких процессов в вычислительной системе). Для обработки каждого из типов прерываний в составе операционной системы предусмотрены специальные программы обработки прерываний (или обработчики прерываний, Interrupt Handler – IH). В ОС имеется шесть основных обработчиков прерываний (по количеству классов прерываний). Когда происходит прерывание, операционная система запоминает состояние прерванного процесса и передает управление соответствующему обработчику прерываний. Механизм прерыванийВектор прерывания – это адрес ячейки памяти, где хранится программа – обработчик прерывания.Приведем назначение некоторых наиболее важных векторов: 1-256{616DA210-FB5B-4158-B5E0-FEB733F419BA}НомерОписание0Ошибка деления. 1Прерывание пошагового режима. 2Аппаратное немаскируемое прерывание. 3Прерывание для трассировки. 4Переполнение. 5Печать копии экрана. 6Неопределенный код операции или длина команды больше 10 байт 7Особый случай отсутствия математического сопроцессора Приоритеты прерыванийЕсли ожидать одну миллисекунду до реагирования на прерывание от заводского станка, он может повредить обрабатываемую деталь. Очевидно, потребуется как-то упорядочить прерывания в системе, назначив важным из них более высокий приоритет. Приоритеты прерыванийВ самом процессоре схем для этого нет, поэтому обычно все прерывающие устройства подключаются к микросхеме контроллера прерываний, а она подключается к процессору. Контроллер прерываний имеет несколько режимов работы. В наиболее часто используемом режиме каждому устройству назначается уникальный приоритет. Если прерывания от двух устройств возникают одновременно, контроллер передает в процессор прерывание с более высоким приоритетом, а менее приоритетное прерывание запоминает. Как только процессор оканчивает обработку первого прерывания, контроллер сообщает ему о втором прерывании. Приоритеты прерыванийОбработчик прерываний (или процедура обслуживания прерываний) — специальная процедура, вызываемая по прерыванию для выполнения его обработки. Обработчики прерываний могут выполнять множество функций, которые зависят от причины, которая вызвала прерывание. На современных ПК обработчики основных аппаратных и программных прерываний находятся в памяти BIOS.