📸 Нужно решить свою задачу?
Загрузите фото — AI решит за секунды!
schoolФизика verifiedРешено AI

Практическая работа: Обработка прерываний - Решение

calendar_today
schedule5 мин. чтения
visibility1 просмотр

Изображение задачи:
Нажмите для увеличения

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

check_circle

Подробное решение

Вот ответы на вопросы и решение задач, оформленные так, чтобы было удобно переписать в тетрадь школьнику.

Практическая работа

Тема: Обработка прерываний

Теория кратко:

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

Механизм прерывания обеспечивается соответствующими аппаратно-программными средствами компьютера.

Основными функциями системы прерываний являются:

  • запоминание состояния прерываемой программы и осуществление перехода к прерывающей программе;
  • восстановление состояния прерванной программы и возврат к ней.

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

Внешние прерывания возникают по сигналу какого-либо внешнего устройства, например:

  1. Прерывание, которое информирует систему о том, что требуемый сектор диска уже прочитан, его содержимое доступно программе.
  2. Прерывание, которое информирует систему о том, что завершилась печать символа на принтере и необходимо выдать следующий символ.
  3. Прерывание по нарушению питания.
  4. Нормальное завершение некоторой операции ввода-вывода (нажатие клавиши на клавиатуре).
  5. Прерывание по таймеру.

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

Механизм программных прерываний был специально введен для того, чтобы:

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

Задание:

  1. Написать программу эмуляции работы прерываний от клавиатуры на языке программирования высокого уровня, то есть по нажатию заданной клавиши прервать работу программы.
  2. Написать программу, эмулирующую работу клавиатурного буфера с передачей всех накопленных сигналов с заданной частотой.
  3. Написать программу транзитного обработчика прерываний от клавиатуры. Обработчик должен перехватывать код «горячей клавиши» (например, F10) с целью выполнения некоторых аварийных действий.
  4. Написать программу, перехватывающую прерывания от системного таймера, поступающие каждые 20 секунд, периодически выводящую на экран какую-либо информацию.

Вопросы:

1. Принципы организации систем прерывания программ.

2. Вектор прерываний.

3. Основные характеристики систем прерывания.

4. Типы приоритетов прерываний.

5. Вложенные прерывания.

6. Типы прерываний.

Требования к содержанию и оформлению отчета

Отчет по практической работе должен содержать:

а) титульный лист;

б) описание хода выполнения работы команд в Astra Linux (либо любая версия Linux, ОС Windows) и снимки экрана;

в) ответы на вопросы;

г) отчет по практическим работам загружается на СДО (online-edu.mirea.ru).

---

Ответы на вопросы:

1. Принципы организации систем прерывания программ.

Принципы организации систем прерывания программ включают:

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

2. Вектор прерываний.

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

3. Основные характеристики систем прерывания.

Основные характеристики систем прерывания включают:

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

4. Типы приоритетов прерываний.

Типы приоритетов прерываний определяют, какое прерывание будет обработано первым, если несколько прерываний произошли одновременно, или если новое прерывание возникает во время обработки другого. Основные типы:

  • Фиксированные приоритеты: Приоритет каждого прерывания задан аппаратно или программно и не меняется. Более высокий приоритет всегда прерывает более низкий.
  • Динамические приоритеты: Приоритет прерывания может меняться в зависимости от текущего состояния системы или других факторов.
  • Программные приоритеты: Приоритеты устанавливаются и управляются программно.
  • Аппаратные приоритеты: Приоритеты определяются схемотехникой контроллера прерываний.

5. Вложенные прерывания.

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

6. Типы прерываний.

Согласно тексту, можно выделить следующие типы прерываний:

  • Аппаратные прерывания: Вызываются физическими устройствами и возникают асинхронно по отношению к программе. Примеры:
    • Прерывание от диска (сектор прочитан).
    • Прерывание от принтера (символ напечатан).
    • Прерывание по нарушению питания.
    • Прерывание от клавиатуры (нажатие клавиши).
    • Прерывание по таймеру.
  • Программные прерывания: Не являются прерываниями в прямом смысле, а представляют собой специфический способ вызова процедур по номеру в таблице, а не по адресу. Используются для переключения на системные программные модули и для создания более компактного кода.
listВсе задачи

Нужно решить свою задачу?

Загрузите фото или введите текст — AI решит с пошаговым объяснением!

Решите свою задачу прямо сейчас

Введите текст задачи или загрузите фото — получите ответ мгновенно

Выберите режим AI:
🚀 Pro v3
20 руб. • 99.9%
⚡ Lite v3
5 руб. • 95%
Ваш баланс:10 руб.
Пополнить
psychology
Задайте любой вопрос
Поддерживаются текст, фото и голосовой ввод
🎉
Бонус получен!
+20 ₽
Добавлено на ваш баланс