Главная » Статьи для тега "прерывания"

Просмотр кадров в отладчике Objective-C

Добавлено Дата: 3 May, 2013 категория: iPhone, Objective-C, Программирование для iOS и MacOS

Вы можете воспользоваться отладчиком для просмотра кадров в стеке, однако для этого придется прервать выполнение вашей программы на середине. В противном случае функция main() отработает до конца, и никаких кадров не останется. Чтобы увидеть как можно больше кадров в программе BeerSong, следует прервать выполнение в строке, которая выводит сообщение «Тhеге аrе simply no more bottles of bеег on the wall».

Читать »

Программирование последовательного порта Bascom-8051

Добавлено Дата: 16 February, 2013 категория: Bascom-8051, Basic, Железо

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

Читать »

Программирование прерываний Bascom-8051

Добавлено Дата: 13 February, 2013 категория: Bascom-8051, Basic, Железо

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

Читать »

Команда trap: перехват прерываний

Добавлено Дата: 6 October, 2012 категория: Программирование для UNIX

Если  нажать клавишу Del или  повесить телефонную трубку во время выполнения команды watchwho, в каталоге /tmp останутся один или  два временных файла. Перед  выходом watchwho должна удалять свои  временные файлы. Необходимо иметь возможность обнаруживать подобные ситуации и способ восстановления нормального хода событий.

Читать »

Сигналы и прерывания в системе UNIX

Добавлено Дата: 16 September, 2012 категория: Программирование для UNIX

В этом  разделе поэтапно рассмотрим процесс обработки сигналов (таких как прерывания), поступающих из внешнего мира, а также ошибок программы. Ошибки программ возникают в основном из-за непра-

вильных обращений к памяти, при  выполнении специфических инст рукций или  из-за  операций с плавающей точкой. Наиболее  распространенные сигналы,  поступающие из  внешнего мира:  прерывание (interrupt)  –  этот  сигнал посылается, когда вы  нажимаете  клавишу DEL;  выход (quit)– порождается  символом  FS  (ctl-\);  отключение (hangup) – вызван тем, что повешена телефонная трубка, и завершение (terminate) –  порождается  командой  kill. Когда  происходит одно  из вышеуказанных  событий, сигнал посылается  всем  процессам, запу щенным с данного терминала, и если не существует соглашений, пред писывающих иное, сигнал завершает процесс. Для  большинства сигналов создается  дамп  памяти, который может потребоваться  для  отладки. (См. adb(1) и sdb(l).)

Читать »

Вытеснение и переключение контекста

Добавлено Дата: 27 April, 2012 категория: Ядро Linux

Переключение контекста — это  переключение от одной, готовой  к выполнению задачи  к другой.  Это  переключение производится с помощью функции context_switch() , определенной в файле  kernel/sched.с . Данная функция вызывается функцией schedule  (), когда новый  процесс выбирается для выполнения. При  этом  выполняются следующие шаги.

Читать »

Не нужно прерывать, мы почти закончили!

Добавлено Дата: 27 April, 2012 категория: Ядро Linux

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

Читать »

Управление прерываниями

Добавлено Дата: 25 April, 2012 категория: Ядро Linux

В ядре  Linux  реализовано семейство интерфейсов для управления состояниями прерываний в машине. Эти  интерфейсы позволяют запрещать прерывания для текущего  процессора или  маскировать линию  прерывания для всей  машины. Эти функции очень  сильно  зависят  от аппаратной платформы и  находятся  в файлах

Читать »

Написание обработчика прерывания

Добавлено Дата: 22 April, 2012 категория: Ядро Linux

Следующее описание является типичным для обработчика прерывания.

static irqreturn_t intr_handler (int irq, void *dev_id, struct pt_regs *regs)

Заметим, что оно должно  соответствовать аргументу, который передается в функцию request_ir q () . Первый параметр, irq , — это численное значение номера  прерывания, которое  обслуживается обработчиком. Сейчас  этот параметр практически не используется, кроме разве что при печати  сообщений. Для версий  ядра, меньших

Читать »

Обзор операционных систем и ядер

Добавлено Дата: 17 April, 2012 категория: Ядро Linux

Из-за неуклонного роста  возможностей и не  очень  качественного построения некоторых современных операционных систем, понятие операционной системы стало несколько неопределенным. Многие пользователи считают, что  то, что они  видят  на экране, — и есть операционная система. Обычно, и в этой  книге  тоже, под  операционной системой понимается часть  компьютерной системы, которая отвечает  за основные  функции использования и администрирования. Это включает в себя  ядро  и драйверы  устройств, системный  загрузчик (boot  loader), командный  процессор и другие интерфейсы пользователя, а также  базовую  файловую систему  и системные утилиты. В общем, только необходимые компоненты. Термин система обозначает операционную систему  и все  пользовательские программы,  которые работают под  ее управлением.

Читать »

Механизм отложенных прерываний (softirq) – ЧАСТЬ 1

Добавлено Дата: 14 April, 2012 категория: Ядро Linux

Обсуждение существующих методов  обработки нижних половин начнем с механизма  softirq.  Обработчики на основе  механизма отложенных прерываний используются  редко.  Тасклеты — это более часто используемая форма  обработчика нижних половин. Поскольку тасклеты построены на основе  механизма softirq, с механизма softirq  и стоит  начать.  Код, который касается обработчиков отложенных прерываний, описан в файле  kernel/softirq.с .

Читать »

Реализациясистемыобработкипрерываний

Добавлено Дата: 14 April, 2012 категория: Ядро Linux

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

Читать »

Нижние половины

Добавлено Дата: 7 April, 2012 категория: Ядро Linux

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

Читать »

Обработчики прерываний

Добавлено Дата: 5 April, 2012 категория: Ядро Linux

Функция,  которую выполняет  ядро в ответ на определенное  прерывание,  называется   обработчиком   прерывания   (interrupt   handler)   ил и  подпрограммой  обслуживания прерывания (interrupt service routine). Каждому  устройству, которое  генерирует прерывания, соответствует свой обработчик  прерывания.  Например,  одна функция  обрабатывает прерывание  от системного таймера,  а другая — прерывания, сгенерированные  клавиатурой.  Обработчик  прерывания  для какого-либо устройства является  частью драйвера этого устройства — кода ядра,  который управляет устройством.

Читать »

Прерывания и обработка прерываний

Добавлено Дата: 4 April, 2012 категория: Ядро Linux

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

Читать »