Главная Случайная страница


Полезное:

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

Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Способы обмена инфо в ЭВМ. Система прерываний





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

Различают внутренние и внешние (по отношению к процессору) события, требующие реакции подсистемы прерываний. К внутренним событиям относятся переполнение разрядной сетки при выполнении арифметических опе­раций, попытка деления на 0, извлечение корня четной степени из отрицательного числа, появление несуществующего кода команды, обращение про­граммы в область памяти, для нее не предназначенную, сбой при выполнении передачи данных или операции в АЛУ и многое другое. Внутренние преры­вания должны обеспечиваться развитой системой аппаратного контроля про­цессора, поэтому они не получили широкого распространения в простых 8- и 16-разрядных МП.

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

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

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



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

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

Подсистема прерываний должна обеспечивать выполнение следующих функций:

о обнаружение изменения состояния, внешней среды (запрос на прерывание);

идентификация источника прерывания;

о разрешение конфликтной ситуации в случае одновременного возникнове­ния нескольких запросов (приоритет запросов);

оопределение возможности прерывания текущей программы (приоритет программ);

о фиксация состояния прерываемой (текущей) программы;

о переход к программе, соответствующей обслуживаемому прерыванию;

о возврат к прерванной программе после окончания работы прерывающей программы.

 

Рассмотрим варианты реализации в МПС перечисленных выше функций.








Date: 2015-09-18; view: 44; Нарушение авторских прав

mydocx.ru - 2015-2018 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию