Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



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

В [LIED96a] предлагается рассматривать аппаратное обеспечение как набор потоков, которые обладают уникальными идентификаторами и отправляют со­общения (содержащие только идентификатор данного потока) соответствующим программным потокам в пользовательском пространстве. Поток-получатель вы­ясняет, является ли данное сообщение прерыванием, а также определяет вид этого прерывания. Общая структура такого кода, выполняющегося на пользова­тельском уровне, имеет следующий вид:

driver thread;

do

waitFor (msg, sender);

if (sender== обрабатываемое_прерывание)

{

чтение/запись в порты ввода-вывода;

сброс аппаратного прерывания

}

else…

while (true);





Дата публикования: 2014-11-04; Прочитано: 201 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...