Вычислительный процесс и обслуживание прерываний

Автор работы: Пользователь скрыл имя, 03 Мая 2013 в 20:33, реферат

Описание работы

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

Файлы: 1 файл

Реферат_Вычислительный процесс_обработка_прерываний_ГаврикП.doc

— 251.00 Кб (Скачать файл)

Программные прерывания. Эти прерывания происходят по соответствующей команде прерывания т. е. по этой команде процессор осуществляет те же действия, что и при обычных внутренних прерываниях. Данный механизм был специально введен для того, чтобы переключение на системные программные модули происходило не просто как переход на подпрограмму, а точно таким же образом как и в обычных прерываниях. Этим обеспечивается автоматическое переключения процессора в привилегированный режим с  возможностью исполнения любых команд. Сигналы, вызывающие прерывания, формируются вне процессора или в самом процессоре, при этом возникать они могут одновременно. Выбор одного из них для обработки осуществляется на основе приоритета, приписанных к каждому типу прерывания. Учет приоритета прерывания может быть встроен в технические средства, а также определяться ОС. Распределение прерываний по уровням приоритета представлены в таблице 1

 

Таблица 1.

Средства контроля CPU

Высший приоритете

Системный таймер

 

Магнитные диски

Сетевое оборудование

Терминалы

Программные прерывания

Низший приоритете


 

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

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

Первые 3 шага реализуются аппаратными  средствами , а остальные – программно.

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

 

 

6.Обслуживание  прерываний

 

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

    1. С относительным приоритетом. При этом обслуживание не прерывается даже при наличии запросов с более высокими приоритетами. после окончания обслуживания данного запроса (текущего) обслуживается запрос с наивысшим приоритетом. для организации такой дисциплины необходимо в программе обслуживания данного запроса наложить маски на все остальные прерывания или просто отключить систему прерываний.
    2. С абсолютным приоритетом. Всегда обслуживаются задачи с наивысшим приоритетом. Для реализации этой дисциплины при запросе на обработку прерываний маскируются все прерывания с низшим приоритетом. При этом возможно многоуровневое прерывание, т. е. прерывание программы обработки прерывания. Число уровней прерывания в этом режиме изменяется и зависит от приоритета запроса по принципу стека: LCFS – last come first served, т . е. запрос с более высоким приоритетом может прервать запрос с более низким приоритетом. При появлении запроса на прерывание система прерываний идентифицирует сигнал и если прерывания разрешены, то управление передается на соотв. программу обработки прерываний. Служебные секции, в которых осуществляется сохранение контекста прерванной задачи и последняя секция в которой осуществляется восстановление контекста, чтобы система прерываний не среагировала повторно на сигнал запроса на прерывание. Эта система прерываний автоматически отключает прерывания, поэтому необходимо в подпрограмм обработки прерываний вновь включать эту систему обработки прерываний. Итак, на время выполнения центральной секции обработки прерываний прерывания разрешены, на время работы заключительной секции подпрограмма обработки прерываний должна быть отключена, а после восстановления контекста прерванной задачи включена вновь. Эти действия нужно выполнять в каждой обработке прерываний. Во многих ОС 1 секция обработки прерываний выделяется в специальный программный модуль называемый. супервизором прерываний.

 

 

7.Организация аппаратных прерываний в персональном компьютере

 

Суть механизма управления прерываниями PCI-устройств в следующем. В общем случае существует четыре физических линии PCI-прерываний, называемых PIRQ0, PIRQ1, PIRQ2 и PIRQ3. Они подключены к контроллеру прерываний. Каждое PCI-устройство со своей стороны как бы имеет четыре разъема, называемые INT A, INT B, INT C и INT D. Подключать линии к разъемам можно в любом порядке. Обычно устройство требует только одну линию прерывания, подключенную к INT A. Будучи установленным в первый слот, устройство использует линию PIRQ0, а во втором слоте на том же контакте будет линия PIRQ1. Тем самым устройства в разных слотах будут использовать разные физические линии прерываний. Аппаратный конфликт между ними будет исключен.

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

Линии PIRQ подключаются к контроллеру  прерываний. Им, как и другим линиям, назначаются логические IRQ-номера. Если на одной физической линии находятся несколько устройств (а это допустимо), то все они будут иметь один и тот же номер IRQ. Если устройства находятся на разных физических линиях, они все равно могут получить одинаковые номера IRQ. Нормальные драйверы позволят им свободно работать без потери производительности, так как шина PCI все равно может захватываться только одним устройством. Главное - распознать, от какого устройства пришел сигнал.

Номера линиям PIRQ назначаются автоматически  благодаря пресловутому механизму Plug&Play. Но ведь есть и ISA-устройства, поддерживающие Plug&Play. Они тоже имеют возможность автоматически получить номер IRQ. Но их линия прерывания принадлежит им монопольно, и если такой же номер получит одна из линий PIRQ, возникнет неразрешимый конфликт.

Итак, мы выяснили, что устройства PCI должны быть лишены проблем с конфликтами IRQ. Если они, конечно, правильно работают, а так бывает не всегда. К тому же драйверы должны поддерживать механизм совместного использования прерываний. Устройства ISA не умеют делиться линиями прерываний и потому являются провокаторами конфликтов. Следовательно, задача устранения конфликтов сводится к правильному распределению номеров (источник проблем - ISA-устройства и "кривые" драйверы) или к разведению по разным физическим линиям ("кривые" PCI-контроллеры). Давайте рассмотрим, каким образом в системе происходит распределение номеров, и как мы можем повлиять на этот процесс.

Большинство номеров IRQ уже заняты стандартными устройствами, точнее, назначены их линиям прерываний. Пройдемся по порядку:

0 - системный таймер (номер всегда  занят);

1 - клавиатура (номер всегда занят);

2 - второй контроллер прерываний (всегда занят);

3 - порт COM2 (может быть отключен, а номер - освобожден);

4 - порт COM1 (может быть отключен, а номер - освобожден);

5 - порт LPT2 (обычно номер свободен);

6 - контроллер гибких дисков (может  быть отключен, а номер - освобожден);

7 - порт LPT1 (если не в режиме EPP или ECP, то номер свободен);

8 - часы реального времени (всегда занят);

9 - свободен;

10 - свободен;

11 - свободен;

12 - мышь PS/2 (может быть свободен, если нет такой мыши);

13 - сопроцессор (всегда занят);

14 и 15 - контроллер жестких дисков (может быть отключен, а номер  - освобожден).

В типичной системе свободны номера 5, 7, 9-11, то есть пять из пятнадцати. Кроме того, можно смело отключить COM2 и LPT1-порты, увеличив число свободных номеров до семи. Свободны - не значит, что не заняты, просто между ними возможна свободная перетасовка. В любой системе имеется три стандартных PCI-устройства - ACPI-, USB-контроллеры и видеокарта, каждое из которых займет по одному номеру. Сложное устройство (например, звуковая карта) может потребовать несколько линий - INT A, INT B и т.д. для своих компонентов, которые между собой не будут конфликтовать (как-никак разные физические линии), а вот с другими устройствами - запросто. В Windows 9x В панели управления есть иконка "Система", в вызываемом апплете - закладка "Устройства. Выбираем свойства устройства "Компьютер", и там будут перечислены все устройства с указанием их IRQ, которые показаны на рисунке 2

 

Рисунок 2

В Windows 2000 у нас нет доступа  к управлению прерываниями, поэтому  для просмотра списка IRQ нужно  воспользоваться стандартной информационной утилитой, представленной на рисунке 3.

Рисунок 3

 

 

 

 

 

Заключение

 

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

 

Список использованных источников

 

 

    1. Степанов Б.М. «Организация вычислительных процессов» ВСГТУ, 2001
    2. http://sait.tti.sfedu.ru/electro_book/CPO/glava1.htm- - Вычислительный процесс и ресурс
    3. http://ermak.cs.nstu.ru/~mos/www/85.htm - Алгоритм обслуживания прерываний



Информация о работе Вычислительный процесс и обслуживание прерываний