Взаимодействие устройств компьютера
Взаимодействие устройств компьютера
Все рассмотренные выше устройства, из которых может состоять компьютерная система, определенным образом взаимодействуют между собой.
Схематично взаимодействие устройств показано на рис. 2.1. На нем видно, что центральными передаточными узлами являются системный и функциональный контроллеры – основные элементы чипсета материнской платы. Системный контроллер обменивается данными с процессором (и кэш-памятью) по системной шине, с оперативной памятью с помощью шины памяти и с видеоадаптером по шине AGP. Функциональный контроллер поддерживает «диалог» с платами расширения на шинах ISA, PCI, VLB, USB, IDE, с устройствами, подключенными к портам PS/2, последовательному и параллельному, а также с приводом гибких дисков и микросхемой BIOS.
Рис. 2.1. Схема взаимодействия устройств в компьютере.
Координатором всех действий является процессор, который выполняет программы и иногда в процессе должен принимать информацию от различных устройств. Чтобы устройства могли вовремя сообщать процессору о необходимости обработки поступившей информации, используется система прерываний.
Получив сигнал об активном прерывании, процессор приостанавливает текущий процесс, например выполнение программы. Это делается, чтобы обработать поступившую информацию. После этого и, возможно, соответствующих действий, процессор возвращается к прерванному ранее процессу.
Систему прерываний обычно поясняют, используя бытовую метафору. Замените мысленно процессор, выполняющий программу, на обедающего человека. Прием пищи – это процесс. Вдруг зазвонил телефон – это сигнал на прерывание: обед приостанавливается, обрабатывается информация, поступившая от собеседника. Когда информация обработана – разговор закончен, человек возвращается к обеду. Можно при этом создать список возможных прерываний обедающего человека: телефонный звонок, стук в дверь, захныкавший ребенок в соседней комнате и т. д.
Таким же образом процессор, выполняющий программу, может в случае необходимости приостанавливать текущий процесс, чтобы обработать поступившую информацию (например, о нажатой клавише) и, возможно, совершить соответствующее действие в ответ (сформировать сигнал для вывода на экран соответствующей буквы).
Существует определенный порядок обработки процессором прерываний (в зависимости от их приоритета, выраженного определенным номером). Чем меньше номер прерывания, тем выше его приоритет. Сигналы прерываний поступают от устройств не прямо на процессор, а на специальный контроллер прерываний, который знает, прерывание с каким номером соответствует какому устройству, и, получив сигнал от устройства, устанавливает сигнал прерывания с соответствующим номером в активное состояние.
Всего существует 16 прерываний, которые нумеруются числами от 0 до 15. Этого, как выясняется, очень мало.
ПРИМЕЧАНИЕ.
В некоторых случаях может быть задействован расширенный контроллер прерываний, и тогда их становится 24.
Почему же прерываний недостаточно, если плат расширения обычно подключено не более трех-четырех?
Дело в том, что некоторые прерывания уже закреплены за системными устройствами, поэтому свободных остается совсем немного. Кроме того, существуют устройства, которые норовят занять более одного прерывания (если в плате совмещены несколько различных устройств). Хорошо еще, что современные устройства для шины PCI, как правило, «знают» о проблемах с недостатком прерываний, и часто вполне могут уживаться на одном прерывании вдвоем или даже втроем. Впрочем, несложно догадаться, что стабильность и скорость работы системы от этого снижается.
Рассмотрим кратко, каким образом используются прерывания и какие из них можно выделить для плат расширения.
? Прерывание 0 – наиболее приоритетное, жестко закреплено за системным таймером. Оно не может быть использовано каким-либо другим устройством.
? Прерывание 1 – жестко закреплено за контроллером клавиатуры. Таким образом, сигналы от клавиатуры по умолчанию являются наиболее приоритетными пользовательскими сигналами. Первое прерывание не может быть назначено какому-либо другому устройству.
? Прерывание 2 – имеет техническое значение. С его помощью изначальное количество прерываний путем некоторых системных манипуляций в свое время было увеличено с 8 до 16. Таким образом, это прерывание также не может быть использовано каким-либо устройством.
? Прерывание 3 – обычно используется вторым последовательным портом компьютера. Если это так, то оно не может быть назначено другим устройствам. Однако если данный порт не нужен, то его можно отключить, и тем самым прерывание 3 освободится для использования другими устройствами.
? Прерывание 4 – аналогично использованию прерывания № 3 только для первого последовательного порта.
? Прерывание 5 – изначально является свободным и может назначаться различным устройствам по усмотрению пользователя (или операционной системы, если в ней предусмотрена автоматическая настройка).
ВНИМАНИЕ!
Если необходимо использовать звук в играх (особенно старых) или же в системе установлена звуковая карта, совместимая с Sound Blaster Pro и подключаемая к шине ISA, то пятое прерывание должно быть закреплено за звуковой картой.
? Прерывание 6 – жестко закреплено за контроллером привода гибких дисков. Оно не может использоваться какими-либо другими устройствами (за исключением случая, когда привод гибких дисков в системе отсутствует и BIOS может сообщить операционной системе об этом).
? Прерывание 7 – обычно используется параллельным портом компьютера. Однако если данный порт не нужен, то его можно отключить, а прерывание 7 назначить другим устройствам.
? Прерывание 8 – жестко закреплено за часами реального времени и не может быть использовано другими устройствами.
? Прерывание 9 – изначально является свободным и может использоваться платами расширения по усмотрению пользователя или операционной системы. Однако довольно часто данное прерывание использует система расширенного управления питанием или контроллер USB-порта, так что претендентов на него вполне достаточно.
? Прерывание 10 – является изначально свободным и может использоваться платами расширения по усмотрению пользователя или операционной системы.
? Прерывание 11 – также является изначально свободным и может использоваться платами расширения по усмотрению пользователя или операционной системы. Однако обычно оно закрепляется за видеоадаптером, если, конечно, для него вообще выделено отдельное прерывание.
? Прерывание 12 – жестко закреплено за мышью, подключаемой к порту PS/2. Поскольку большинство современных компьютеров оснащены именно такой мышью, прерывание 12 оказывается занятым. Если PS/2-мышь в системе отсутствует, то прерывание можно освободить и назначить другим устройствам.
? Прерывание 13 – жестко закреплено за встроенным или внешним математическим сопроцессором. Даже если такой отсутствует (например, используется система на базе процессора 80 386SX при отсутствующем сопроцессоре 80 387), прерывание 13 остается занятым, и другие устройства не могут его использовать.
? Прерывание 14 – жестко закреплено за первым каналом контроллера IDE. Обычно IDE-контроллер в системе используется, поэтому о назначении прерывания 14 платам расширения можно забыть.
ПРИМЕЧАНИЕ.
Теоретически в редчайших случаях, когда первый канал встроенного IDE-контроллера оказывается ненужным, его можно отключить, и, если позволяет программа настройки параметров BIOS, освободить прерывание № 14 для назначения другим устройствам.
? Прерывание 15 – возможности его использования аналогичны прерыванию 14, только в отношении второго канала контроллера IDE.
Таким образом, для использования платами расширения остается совсем немного прерываний – номера 5, 9, 10 и, возможно, 11.
В некоторых случаях для корректного взаимодействия с системой платы расширения используют также каналы прямого доступа к памяти (DMA – Direct Memory Access). Хотя существует всего восемь таких каналов (они нумеруются числами от 0 до 7), из них недоступными для плат расширения являются только канал 4, который используется самим контроллером прямого доступа к памяти для корректной работы, и 2, жестко закрепленный за контроллером привода гибких дисков.
Если параллельный порт компьютера работает в режиме ECP, то для него обычно выделяется DMA-канал 3 (с другим каналом он, скорее всего, просто не будет работать).
Понятие о взаимодействии устройств при помощи системы прерываний и каналов прямого доступа к памяти может помочь быстро решить проблему на уровне операционной системы или BIOS в случае возникновения конфликта устройств по ресурсам.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Целиться на взаимодействие
Целиться на взаимодействие Если в течение последних нескольких лет мы все делали правильно, то работали на основе веб-стандартов (семантическая HTML-разметка и CSS для форматирования, шрифтов, цветов и так далее), оставляя большинство интерактивных эффектов – анимацию,
Преобразовывая взаимодействие
Преобразовывая взаимодействие Результат получился довольно впечатляющим, учитывая совсем небольшое количество написанного CSS-кода. Б?льшая часть эффекта достигается непосредственно за счет браузеров, которые поддерживают CSS-свойства, – вместо того, чтобы привлекать
Взаимодействие XT с Java
Взаимодействие XT с Java Процессор XT также может работать с Java. API XT спроектирован для работы с классами, определенными в Project X TR2 фирмы Sun, которые поддерживают обработку XML. Вам будет необходим файл xml.jar фирмы Sun, который можно получить, загрузив Project X TR2. Чтобы получить xml.jar,
Взаимодействие
Взаимодействие Уведомите свою группу и начальство о неприятностях. Изложите свой план по выходу из кризиса. Обратитесь к ним за информацией и советом. Избегайте сюрпризов. Ничто не сердит людей и не делает их менее рациональными так, как сюрпризы. Сюрпризы повышают
11.3 ВЗАИМОДЕЙСТВИЕ В СЕТИ
11.3 ВЗАИМОДЕЙСТВИЕ В СЕТИ Программы, поддерживающие межмашинную связь, такие, как электронная почта, программы дистанционной пересылки файлов и удаленной регистрации, издавна используются в качестве специальных средств организации подключений и информационного
3.3. Взаимодействие процессов
3.3. Взаимодействие процессов Из всех средств межпроцессного взаимодействия, которыми так богаты UNIX-подобные ОС, в этой главе мы рассмотрим только конвейеры и
Взаимодействие транзакций
Взаимодействие транзакций Интересен процесс определения, является ли текущая версия мусором или, возможно, она еще нужна какой-то транзакции.Для описания этого процесса придется ввести несколько важных понятий. Прежде всего, надо отметить, что все определения строятся
18.2.3. Взаимодействие с РОР-сервером
18.2.3. Взаимодействие с РОР-сервером Многие серверы электронной почты пользуются почтовым протоколом (Post Office Protocol — POP). Имеющийся в Ruby класс POP3 позволяет просматривать заголовки и тела всех сообщений, хранящихся для вас на сервере, и обрабатывать их как вы сочтете нужным.
Взаимодействие ограничений
Взаимодействие ограничений Комбинируя формальное ссылочное ограничение с другими ограничениями целостности (см. главу 16), можно реализовать большинство (если не все) бизнес-правил с высокой степенью точности. Например, ограничение столбца NOT NULL будет корректировать
Взаимодействие с ActiveSync
Взаимодействие с ActiveSync Разработчики теперь могут запускать и останавливать процесс синхронизации ActiveSync, используя методы ActiveSyncStart и
3.9. Калибровка устройств компьютера
3.9. Калибровка устройств компьютера Профили устройств Что делать, если один и тот же файл на разных мониторах выглядит по-разному? И откуда берутся различия в картинке, если один и тот же снимок распечатать на разных принтерах? В таких случаях устройства чаще всего
Взаимодействие с не объектным ПО
Взаимодействие с не объектным ПО До сих пор, элементы ПО выражались полностью в ОО-нотации. Но программы появились задолго до распространения ОО-технологии. Часто возникает необходимость соединить объектное ПО с элементами, написанными, например, на языках С, Fortran или
Взаимодействие с мышью
Взаимодействие с мышью Для взаимодействия с мышью служит объект Mouse. Единственный экземпляр этого объекта под именем Mouse создается самим Flash.Прежде всего, этот объект предоставляет методы hide и show. Первый метод скрывает курсор мыши, а второй — вновь выводит его на экран. Ни