Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save anonymous/b3e89710462b2fa397eb29386ff089e8 to your computer and use it in GitHub Desktop.
Save anonymous/b3e89710462b2fa397eb29386ff089e8 to your computer and use it in GitHub Desktop.
Проблемы системных ресурсов

Проблемы системных ресурсов



Системные ресурсы В определенном смысле все в РС является системным ресурсом - системная память, скорость процессора, емкость жесткого диска и др. Однако в системе есть несколько специальных ресурсов, которые разделяют использующие их различные устройства. Большей частью это не физические компоненты системы, хотя они реализованы аппаратными средствами. По существу, это логические компоненты системы, которые управляют ее работой; именно поэтому их называют системными ресурсами system resources РС. Системные ресурсы имеют важное значение, потому что их разделяют различные устройства РС. К этим устройствам относятся не только материнская плата и другие основные компоненты РС, но устройства расширения, дополнительные карты и периферийные устройства. Ресурсы используются, главным образом, для взаимодействия и передач информации между этими устройствами. По историческим причинам объем системных ресурсов довольно ограничен и по мере добавления в РС новых периферийных устройств становится труднее найти достаточно ресурсов для удовлетворения всех требований. Такая ситуация может привести к конфликтам ресурсов resource conflicts , которые являются наиболее распространенными проблемами при конфигурировании новых РС, а эти проблемы наиболее трудно диагностировать и устранять. Далее рассмотрены все типы системных ресурсов РС и основные аппаратные устройства, которые управляют ими или доступом к ним. Для каждого ресурса приведены таблицы, показывающие распределение ресурсов в типичном РС, а также какие ресурсы обычно используют различные периферийные устройства. Отметим, что звуковая карта считается основным компонентом современного РС и она требует для работы значительных ресурсов. Обсуждаются также конфликты ресурсов и их устранение. Рассмотрена также технология Plug and Play, которая упрощает распределение ресурсов и автоматически устраняет конфликты ресурсов. Термин "системный ресурс" иногда применяется для областей памяти, используемых операционной системой Windows. Однако это совершенно другое понятие и мы этого касаться не будем. Прерывания Прерывания являются наиболее известными системными ресурсами и о них слышал каждый пользователь РС. Прерывание interruption представляет собой сообщение от одного компонента компьютера другому обычно процессору , которое указывает ему остановить текущие действия и выполнить что-то другое. Запрос прерывания Interrupt ReQuest - IRQ - это название реального сигнала, который используется, когда периферийное устройство запрашивает прерывание процессора. Прерывания играют ключевую роль в выполнении процессором ввода-вывода и интерфейсах с каждым периферийным устройством компьютера - от клавиатуры и мыши до жесткого диска и модема. При установке карты расширения в слот она подключается к шине ввода-вывода и теперь может передавать и принимать данные. Управление передачами данных осуществляется с помощью прерываний. Причины применения прерываний Процессор может одновременно выполнять только одну работу. Однако мы используем компьютеры таким образом, который требует, чтобы процессор, хотя бы виртуально, выполнял одновременно несколько работ. В операционной системе Windows 95 это проявляется наиболее отчетливо: Процессор способен реализовать это, разделяя свое время между различными выполняемыми программами и различными устройствами, требующими его внимания. Нам только кажется, что процессор одновременно выполняет несколько работ благодаря той огромной скорости, с какой он может переключаться между задачами. Большинству компонентов РС требуется посылать информацию процессору и принимает ее от процессора и они должны "уметь" привлечь внимание процессора, когда им требуется произвести передачу информации. Процессор должен организованно управлять передачами информации от различных компонентов РС. Имеются два основных способа, которыми может воспользоваться процессор: Процессор может по очереди обращаться к каждому устройству, проверяя требуется ли им его внимание. Такой способ называется опросом , или полингом polling. В некоторых компьютерах такой способ применяется на практике, но для процессора РС он не годится по двум основным причинам. Во-первых, на него бесполезно расходуется время процессора: Это тем более малоэффективно, потому что в большинстве случаев ответом будет "нет". Во-вторых, разные устройства требуют от процессора разной скорости опроса, например мышь требует внимания намного реже, чем жесткий диск, когда он активно передает данные. Второй способ для процессора управлять передачами информации состоит в том, чтобы разрешить устройствам самим запрашивать процессор, когда им требуется его внимание. Собственно, этот способ и лежит в основе прерываний. Когда устройство имеет данные для передачи, оно генерирует прерывание, которое сообщает "Мне требуется внимание". Процессор прекращает текущую работу и работает с устройством, которое запросило его внимание. Фактически процессор может одновременно обрабатывать несколько таких запросов, учитывая приоритеты каждого запроса и определяя, какое устройство обслуживать первым. Может показаться, что постоянно прерываемый РС будет работать неэффективно. Это напоминает ситуацию, когда телефон в офисе звонит через пять минут и вы не можете делать ничего другого кроме ответов на звонки. Однако без звонка в телефоне вам пришлось бы брать трубку через каждые 30 секунд, проверяя, не пытается ли кто-то связаться с вами. Интересно сравнить, насколько быстрее процессор по сравнению с другими устройствами, которые передают ему информацию. Предположим, что ввод с клавиатуры производится с очень быстрой скоростью слов в минуту. Если принять, что в среднем слово состоит и пяти букв, получается символов в минуту. Оказывается, при вводе с такой скоростью процессор с рабочей частотой МГц выполнит 50 млн команд между каждым ударом по клавише! Теперь становится понятнее, почему процессор практически будет простаивать, постоянно проверяя, готов ли символ на клавиатуре. Наряду с рассматриваемыми здесь аппаратными прерываниями имеются и программные прерывания software interrupts. Их используют различные программы в ответ на разнообразные события, возникающие при выполнении операционной системы или приложения. По существу оказывается, что процессор прерывает сам себя! Этим объясняется, почему процессор способен выполнять много работ одновременно. Программные прерывания позволяют также одной программе обращаться к другой, не зная, где в памяти находится эта вторая программа. Контроллеры прерываний Прерывания устройств подаются в процессор с помощью схемы, называемой контроллером прерываний interrupt controller. С первых РС контроллером прерываний служила микросхема фирмы Intel; полное название этой микросхемы - программируемый контроллер прерываний Programmable Interrupt Controller - PIC. В современных материнских платах микросхема встроена в чипсет. Контроллер прерываний имеет восемь входных линий, которые воспринимают запросы от восьми устройств. Контроллер передает запрос в процессор, сообщая, какое устройство выдало запрос номер прерывания от 0 до 7, запущенного устройством. В первых компьютерах PC и XT был один контроллер и они поддерживали только прерывания от 0 до 7. На рисунке приведена блок-схема контроллера прерываний. Восемь линий запросов прерываний вначале подаются в регистр маски прерываний Interrupt Mask Register - IMR для проверки того, замаскированы запрещены они или нет. Если прерывание замаскировано, оно больше не обрабатывается. Незамаскированные прерывания регистрируют свои запросы в регистре запроса прерывания Interrupt Request Register - IRR. Регистр запроса прерывания сохраняет все запрошенные IRQ до их полной обработки. При необходимости содержание этого регистра процессор может считать для анализа. Далее схема учета приоритетов Priority Resolver просто выбирает IRQ с высшим приоритетом. Высший приоритет имеют прерывания с меньшими номерами. Например, наивысший приоритет имеет IRQ0, затем идет IRQ1 и т. После того, как контроллер определил подлежащий обработке запрос IRQ, он должен сообщить об этом процессору, чтобы он выполнил соответствующую процедуру обслуживания прерывания Interrupr Service Routine - ISR. Для этого контроллер формирует активный сигнал на выходной линии INT. При восприятии этого сигнала процессор прекращает текущие операции и подтверждает получение запроса прерывания сигналом подтверждения прерывания INTA INTerrupt Acknowledge. При получении сигнала INTA от процессора соответствующий запрос IRQ сохраняется в регистре обслуживания In Service Register - ISR контроллера, который показывает текущий обслуживаемый запрос IRQ. Кроме того, сбрасывается бит IRQ в регистре запроса прерывания IRR, так как запрос с точки зрения контроллера обслужен. Еще один сигнал INTA от процессора заставляет контроллер поместить на шину данных 8-битовый указатель, соответствующий номеру IRQ. Этот указатель с помощью таблицы векторов прерываний , которая находится в самом начале системной памяти RAM, преобразуется в начальный адрес процедуры обслуживания прерывания. Процессор осуществляет переход по этому адресу и выполняет команды процедуры. После того, как процедура обслуживания прерывания выполнила необходимые действия, в контроллер выдается сигнал конца прерывания End Of Interrupt - EOI. Этот сигнал используется для сброса бита в регистре обслуживания прерывания ISR. После этого контроллер определяет следующее прерывание с высшим приоритетом и повторяет аналогичный процесс. Если запросы прерываний отсутствуют, контроллер ожидает появления следующего прерывания. Начиная с компьютера IBM AT был введен второй контроллер для расширения системы; это совпало с расширением системной шины ISA с восьми до 16 битов. Чтобы обеспечить совместимость, разработчики не захотели изменять одну линию прерывания, идущую в процессор. Поэтому они каскадировали два контроллера прерываний. Первый контроллер по-прежнему имеет восемь входов и один выход, поступающий в процессор. Второй аналогичный контроллер воспринимает восемь новых входов удваивая число прерываний , а его выход подается на линию 2 первого контроллера. Если любой из входов второго контроллера становится активным, выход этого контроллера запускает прерывание 2 на первом контроллере, который затем сигнализирует процессору. Так что же произошло с линией IRQ 2? Теперь эта линия используется для каскадирования второго контроллера, поэтому разработчики АТ изменили монтаж на печатной плате для направления всех устройств, которые использовали IRQ2, на IRQ9. В результате все старые устройства, которые использовали IRQ2, теперь используют IRQ9, и если настроить любое устройство на использование IRQ2 в АТ и последующих компьютерах, оно фактически будет использовать IRQ9. Устройства, расчитанные на использование IRQ2 как первичной установки, в современных РС встречаются редко, так как IRQ2 не применяется уже более 10 лет. В большинстве случаев IRQ2 просто считается "не используемой", а IRQ9 считается обычной линией прерывания. Однако некоторые модемы все еще предлагают использование IRQ2 как способ обхода того факта, что COM3 и COM4 по умолчанию разделяют прерывания с COM1 и COM2. Это может потребоваться при наличии многих устройств, претендующих на IRQ с малыми номерами что встречается довольно часто. Если выбрать IRQ2 для устройства, например модема, фактически будет использоваться IRQ9. Любой программе, которая использует устройство, необходимо указать, что она работает с IRQ9, а не с IRQ2. Кроме того, сделав это, невозможно использовать "настоящую" IRQ9 ни для какого устройства. Никогда нельзя пытаться использовать IRQ2, если в РС уже используется IRQ9, и наоборот. Линии IRQ и системная шина Использующие прерывания устройства инициируют их сигналами на системной шине ISA или PCI. Большинство прерываний доступны на системной шине для использования устройствами, но некоторые из них уже заняты системой и для них линий на системной шине нет. Эти прерывания 0, 1, 2, 8 и 13 никогда недоступны картам расширения помните, что на материнской плате IRQ2 подключена к IRQ9. Первоначально шина ISA была 8-битовой и карты расширения имели только один разъем. Впоследствии шина была расширена до 16 битов и рядом с первым слотом был добавлен второй; все современные РС используют битовые слоты. Добавление дополнительного разъема совпало с введением второго контроллера прерываний и линии для новых IRQ были подключены ко второму слоту. Поэтому для использования этих IRQ 10, 11, 12, 14 и 15 карта должна иметь оба разъема. Хотя сейчас практически нет материнских плат только с 8-битовыми слотами, но есть много карт расширения, которые используют только один разъем ISA. Наиболее типичным примером служит внутренний модем. Такие карты могут использовать только IRQ с номерами 3, 4, 5, 6 и 7 линия 6 почти всегда недоступна, так как ее использует контроллер гибкого диска. Они могут также косвенно использовать IRQ 9, если могут использовать IRQ2, так как линия 9 подключена к линии 2. Все сказанное применимо только к слотам шин ISA и VESA Local Bus. Слоты шины PCI работают с прерываниями по-другому, используя свою внутреннюю систему прерываний. Если карта шины PCI должна использовать обычную линию IRQ, то BIOS и чипсет обычно "отображают" прерывание PCI на обычную систему прерываний. Для этого обычно используется IRQ9 вместо IRQ Приоритеты прерываний PC обрабатывает прерывания устройств в соответствии с их уровнями приоритетов. Приоритет зависит от линий прерывания, которые устройства используют для сигнализации контроллеру прерываний. Другими словами, уровни приоритетов прямо связаны с номерами прерываний: В современном РС ситуация несколько сложнее. Напомним, что второй набор из восьми прерываний направляется через канал IRQ2 первого контроллера прерываний. Следовательно, первый контроллер считает любое из этих прерываний имеющим уровень приоритета его "IRQ2". В результате приоритеты принимают вид 0, 1, 8, 9, 10, 11, 12, 13, 14, 15 , 3, 4, 5, 6, 7. Линии IRQ от 8 до 15 используются вместо IRQ2. В любом случае уровень приоритета IRQ почти не влияет на производительность РС, поэтому о них можно не заботиться. Однако помните, что линии IRQ с более высоким приоритетом немного повышают производительность использующих их устройств. Немаскируемые прерывания Все обычные прерывания с номерами называются еще маскируемыми maskable прерываниями. Процессор при необходимости может временно замаскировать то есть временно игнорировать любое прерывание, чтобы закончить более важную работу. Однако в РС имеется также немаскируемое прерывание Non-Maskable Interrupt - NMI , которое можно использовать для серьезных событий, требующих немедленного внимания процессора. Система не может игнорировать прерывание NMI, если оно специально не отключено. Когда принимается сигнал NMI, процессор немедленно прекращает свои действия и обрабатывает это прерывание. Конечно, при неправильном использовании это может вызвать хаос. На практике сигнал NMI обычно применяется только для критических ситуаций, например серьезных аппаратных ошибок. Чаще всего NMI применяется для сигнализации об ошибке паритета в подсистеме памяти. Такую ошибку необходимо обработать немедленно для предотвращения возможного искажения данных. Прерывания нескольких устройств и конфликты В общем, прерывания считаются ресурсами отдельных устройств. Из-за способа организации системной шины нельзя, чтобы несколько устройств использовали прерывание одновременно, так как это может запутать процессор и заставить его реагировать на неверное устройство в неверное время. Если попытаться использовать с одним IRQ два устройства, возникает конфликт IRQ , который представляет собой один из типов конфликтов ресурсов resource conflicts. Возможно разделять IRQ среди нескольких устройств, но только в ограниченных ситуациях. Если, например, в РС есть два устройства, которые используются редко и никогда одновременно, можно организовать разделение ими IRQ. Однако этот способ не рекомендуется, так как он менее удобен по сравнению с ситуацией, когда каждое устройство имеет свою линию прерывания. Одной из частых проблем с разделением IRQ связана с использованием последовательных портов COM3 и COM4. По умолчанию порт COM3 использует то же прерывание, что и COM1 IRQ4 , а COM4 использует то же прерывание, что и COM2 IRQ3. Если мышь подключена к COM1 и модем настроен на COM3 такая настройка встречается очень часто , то представляете, что произойдет при выходе в Internet? Можно разделять порты COM с одним и тем же прерыванием, но одновременно использовать оба устройства нельзя; в общем, такая конфигурация не рекомендуется. Чтобы избежать этой проблемы, многие модемы позволяют изменить используемую ими IRQ на IRQ5 или IRQ2. Конфликты прерываний также возникают на линиях IRQ5, IRQ7 и IRQ Сводка IRQ и их типичных применений В следующей таблице приведена сводная информация о линиях IRQ в типичном РС. Эту информацию можно использовать при конфигурировании системы и разрешения конфликтов IRQ: IRQ Линии шины Приоритет Типичное применение Другие применения 0 Нет 1 Системный таймер Нет 1 Нет 2 Контроллер клавиатуры Нет 2 Нет перенаправлена - Нет; каскад для IRQ Работа DMA-каналов совсем не похожа на работу системных ресурсов IRQ - этих каналов меньше и их используют меньше устройств. Однако конфликты в DMA-каналах могут вызвать серьезные проблемы и их трудно диагностировать. Сейчас DMA-каналы наиболее широко применяются для накопителей на гибком диске, ленточных накопителей и звуковых карт. Функция и работа DMA-канала Далее рассмотрены типы DMA-каналов и контроллер DMA, а также приведена сводка различных DMA-каналов современных РС. Почему DMA-каналы применяются для передачи данных Напомним, что процессор считается "мозгом" РС, но его также можно считать и "дирижером оркестра". В первых РС процессор управлял практически всем. В дополнение к выполнению программ он также управлял и передачами данных в периферийные устройства и из этих устройств. К сожалению, заставлять процессор выполнять эти передачи оказалось неэффективным, так как при этом он не мог делать больше ничего. Разработка DMA-каналов позволила устройствам убрать "посредника", разрешив процессору выполнять другую работу, а устройствам самим производить передачи данных, что повышает производительность РС. Были разработаны специальные каналы и схемы управления ими, поэтому стало возможны производить передачи данных без участия процессора. Такие схемы обычно являются компонентами системного чипсета на материнской плате. Отметим, что DMA-каналы имеются только на шинах ISA и VLB, а устройства на шине PCI совсем не используют стандартные DMA-каналы. Мастеринг шины Стандартный DMA иногда называется "трехсторонним " third party DMA. Это подчеркивает тот факт, что передачу данных осуществляет системный контроллер DMA двумя другими "сторонами" являются отправитель и получатель данных. Имеется также такой тип DMA, который называется "односторонним" first party DMA. Здесь выполняющее передачу данных периферийное устройство в процессе передачи само управляет системной шиной. Такой способ называется также мастерингом шины bus mastering. Мастеринг шины повышает производительность по сравнению с обычным DMA, так как в современные устройства встроены более "интеллектуальные" и быстрые схемы DMA, чем в старом стандартном контроллере ISA DMA. Разработаны новые режимы DMA, например Ultra DMA режим 3 или DMA , которые обеспечивают очень высокие скорости передачи данных. Ограничения стандартного DMA Несмотря на то, что применение DMA обеспечивает значительное повышение производительности по сравнению с управлением передачами процессором, DMA неизбежно достигает точки, в которой его производительность становится ограничивающим фактором. DMA на шине ISA "застыл" на том же уровне производительности, что и 10 лет назад. Для старых жестких дисков 10 МБ DMA-канал вполне подходил, но для современных жестких дисков 20 МБ, передающих много мегабайтов в секунду, скорости DMA недостаточно. Современный DMA не привлекает медленных контроллеров ISA DMA и обеспечивает быстрым устройствам необходимую пропускную способность. Сейчас многие из устройств, например карты SCSI, сетевые карты и видеокарты, которые использовали DMA на шине ISA, применяют мастеринг шины на шине PCI. Контроллеры DMA В современных РС передачами данных в стандартных DMA-каналах управляет контроллер DMA, встроенный в системный чипсет. Старые компьютеры PC и XT имели один контроллер, который поддерживал четыре DMA-канала от 0 до 3. Начиная с компьютера IBM AT, был добавлен второй контроллер DMA. Аналогично тому, как второй контроллер прерываний был каскадирован с первым, первый контроллер DMA был каскадирован со вторым. В результате появилось восемь DMA-каналов от 0 до 7, но DMA 4 не используется. Перенаправления, аналогичного IRQ2 и IRQ9, здесь нет, так как все первоначальные DMA-каналы от 0 до 3 продолжают использоваться прямо. DMA-каналы и системная шина Все DMA-каналы, за исключением канала 4, доступны устройствам на системной шине ISA. Канал 4 используется для каскадирования двух контроллеров DMA. Устройства на шине PCI не используют стандартных DMA-каналов. Как и в случае с линиями IRQ, второй контроллер DMA был добавлен при расширении шины ISA до 16 битов в компьютере АТ. Линии для доступа к новым DMA-каналам были расположены на второй части слота АТ, которая использовалась битовыми картами. Это означает, что DMA-каналы 5, 6 и 7 доступны только битовым картам. К сожалению, даже сейчас многие устройства используют 8-битовые карты. Об этом можно узнать по их разъему. Запрос DMA DRQ и подтверждение DMA DACK Каждый DMA-канал представлен двумя сигналами: На картах некоторых устройств имеются отдельные перемычки для этих сигналов вместо одной перемычки для DMA-канала. В этом случае необходимо установить сигналы DRQ и DACK на один и тот же номер, так как в противном случае устройство не будет работать. DMA нескольких устройств и конфликты Как и прерывания, DMA-каналы являются ресурсами отдельных устройств. Если два устройства попытаются одновременно использовать один и тот же DMA-канал, возникает множество проблем. Конфликты DMA-каналов очень трудно диагностировать. Однако при определенных условиях можно разделять DMA-канал между несколькими устройствами. Если имеются два устройства, которые требуются редко и никогда одновременно, можно выделить им один DMA-канал. Однако этот прием не рекомендуется, так как здесь могут возникнуть такие проблемы, которых не бывает при выделении каждому устройству своего ресурса. Большинство устройств "хотят" использовать DMA-каналы с номерами от 0 до 3 первого контроллера DMA. DMA-каналы от 5 до 7 привлекаются реже, потому что они требуют битовые карты. С учетом того, что DMA-канал 0 никогда недоступен, а канал DMA 2 занят контроллером гибкого диска, остается совсем немного вариантов. Еще одним источником конфликтов DMA является параллельный порт ECP. Многие пользователи не знают, что этот скоростной порт требует использования DMA-канала. Программа настройки BIOS обычно имеет параметр для выбора DMA-канала там, где производится разрешение порта ECP. По умолчанию для порта принимается DMA 3, который также используется и другими устройствами. Сводка DMA-каналов и их типичных применений В следующей таблице приведена сводная информация о восьми DMA-каналах типичного РС. Эта информация полезна для конфигурирования РС и разрешения конфликтов DMA. В общем, они довольно простые; они являются запоминающими ячейками регистрами , предназначенными для использования различными устройствами с целью обмена данными между самими устройствами и остальными компонентами РС. Отметим, что адреса ввода-вывода обычно даются в ричной нотации. Ввод-вывод с отображением на память Можно считать адреса ВВ набором небольших двунаправленных "почтовых ящиков" в системной памяти. Рассмотрим для примера коммуникационный СОМ порт, к которому подключен модем. Когда модем принимает информацию, ему необходимо передать ее РС. Куда он должен помещать информацию, полученную из телефонной линии? Ответ на этот вопрос состоит в том, чтобы выделить каждому устройству небольшую область рабочей памяти. Когда модем принимает байт данных, он посылает его через порт СОМ в выделенное порту адресное пространство ввода-вывода. Когда процессор готов обрабатывать принятые данные, он знает, где найти их. Когда впоследствии процессору нужно отправить данные через модем, он вновь использует этот адрес или другой близкий адрес. Таким простым способом решается проблема обмена данными между устройствами. Ширина адресного пространства ввода-вывода В отличие от линий IRQ и DMA-каналов, которые имеют постоянный размер и выделяются по одному на устройство, адреса ВВ оказываются переменными по размеру. Объясняется это тем, что некоторые устройства, например сетевые карты, должны передавать намного больше данных, чем другие, например клавиатура. Размер адресного пространства ввода-вывода иногда определяется конструкцией карты и причинами совместимости со старыми устройствами. Многие устройства используют адресное пространство ввода-вывода в 4, 8 или 16 байтов; другие - всего один байт, а третьи - 32 байта и более. Широкое разнообразие адресов ВВ затрудняет определение и разрешение конфликтов ресурсов, так как часто адреса ВВ задаются только первым байтом адреса ВВ. Например, пользователь может сказать "помести сетевую карту по адресу h", что вроде бы не конфликтует с параллельным портом LPT1 по адресу h. Фактически многие сетевые карты используют для ввода-вывода до 32 байтов; в результате получается диапазон Fh, который полностью перекрывается с параллельным портом Fh. Приведенная далее сводная карта адресов ВВ поможет определить наиболее часто используемые адреса ВВ и разобраться в потенциальных конфликтах. Адреса ВВ нескольких устройств и конфликты Адреса ВВ, как и другие системные ресурсы, обычно используются отдельными устройствами. Когда несколько устройств пытаются использовать один и тот же адрес, информация перепутывается и перезаписывается, вызывая трудно диагностируемые проблемы. Однако имеется несколько необычных исключений, объясняемых историческими причинами см. Одна из проблем с адресами ВВ и конфликтами состоит в том, что нужно просто следить за ними. Адреса ВВ довольно запутаны, так как различные устройства используют адресные пространства разного размера. Адреса ВВ страдают от той же проблемы, что и линии IRQ и DMA-каналы: Слишком много устройств пытаются использовать одни и те же адреса или имеют мало вариантов конфигурирования, позволяющих достаточно разнести адреса. Все это объясняется, в основном, историческими причинами. Адреса ВВ, используемые для различных параллельных портов LPT1, LPT2, LPT3 не универсальны. Первоначально компания IBM определила различные значения по умолчанию для РС с монохроматическими дисплеями и с цветными дисплеями. Сейчас все РС имеют цветные дисплеи, но даже в некоторых новых РС для LPT1 по умолчанию принимается 3BCh. В таблице слева приведены два способа распределения. Численные адреса ВВ Приведем наиболее важные адреса ВВ в типичном РС: Эти адреса иногда предлагаются как опции для хост-адаптеров SCSI. Отметим, что эти опции частично перекрываются Fh. Это принимаемый по умолчанию адрес для многих звуковых карт. Он также служит опцией для некоторых хост-адаптеров SCSI первые 16 байтов. Необязательный адрес для звуковых карт и сетевых карт первые 16 байтов для карт NE Необязательный адрес для звуковых карт и сетевых карт. NEсовместимые сетевые карты занимают 32 байта; при конфигурировании на этот адрес ВВ они будут конфликтовать с несколькими системными устройствами, а также с адресом ВВ для LPT2 или LPT3 в области Fh. Принимаемые по умолчанию адреса ВВ для многих сетевых карт карты NE расширяют диапазон до 31Fh. Адреса h являются также опциями для порта MIDI во многих звуковых картах. Это очень занятая область на карте ввода-вывода. Адреса h принимаются по умолчанию для порта MIDI во многих звуковых картах. Адреса Fh являются опцией для некоторых NEсовместимых сетевых карт и будут конфликтовать с портом MIDI при этой установке. Некоторые хост-адаптеры SCSI также предлагают адреса Fh как опцию. Здесь перекрываются области для некоторых типов устройств, включая две опции для хост-адаптеров SCSI Fh и Fh , а также сетевых карт. Это еще одна область с напряженным "трафиком". Адреса Fh используются в большинстве систем для первого параллельного порта, а адреса h для ведомого накопителя вторичного контроллера IDE. Может возникнуть конфликт с NEсовместимой сетевой картой, установленной на адрес h. Используются видеоадаптерами VGA, которые занимают все области, ранее выделявшиеся для монохроматических карт 3BBBh , адаптеров CGA 3DDFh и адаптеров EGA 3CCFh. Здесь возникает потенциальный конфликт по адресам 3EE-3EFh, если используется третий последовательный порт COM3. Здесь возникает "стандартный" конфликт: Эти устройства присутствуют во многих РС. К счастью, это конфликт который объясняется историческими причинами хорошо известен и компенсируется, поэтому в типичном РС проблем не возникает. Логические устройства Некоторые устройства имеют и физический адрес, и логическое имя. Наиболее известны из них последовательные порты называемые COM1 - COM4 и параллельные порты LPT1 - LPT3. Фактически так же обозначаются и жесткие диски, например A: Логическое именование упрощает обращение к устройствам, не зная их конкретных адресов. В программе проще обратиться к порту COM по имени, чем по адресу. BIOS отыскивает устройства по адресам ВВ в предопределенном порядке и динамически присваивает им логические имена в численном порядке. В таблице слева приведены принимаемые по умолчанию присваивания для последовательных портов COM-портов по порядку. Первоначально компания IBM определила разные значения по умолчанию для РС с монохроматическими дисплеями и цветными дисплеями. Конечно, уже давно выпускаются только "цветные" РС, но даже в некоторых новых РС порт LPT1 имеет адрес 3BCh. Проблемы с именами логических устройств Большинство проблем с именами логических устройств возникают при добавлении или удалении устройств. Наиболее распространенная состоит в том, что программа не работает потому, что имя логического устройства, присвоенное физическому устройству, изменилось в результате добавления или удаления устройства. Большинство программ обращаются к устройству по имени, например "LPT1". Однако имена динамически присваивает BIOS во время загрузки, когда он проверяет аппаратные средства РС. Если в РС был порт "LPT1" по адресу Fh и пользователь добавил новый параллельный порт и определил для него адрес 3BC-3BFh, то теперь новый порт будет LPT1, а старый порт превратится в LPT2. Это объясняется тем, что порты именуются динамически в предопределенном порядке поиска и 3BC обнаруживается первым. В этом случае все программы, которые ранее использовали для печати LPT1, теперь будут печатать на LPT2, и придется либо переключить соединения устройств, либо изменить программы. Адреса памяти и BIOS устройств Адреса памяти обычно не считаются системными ресурсами, но их целесообразно рассмотреть. Некоторые устройства наряду с линиями IRQ, DMA-каналами и адресами ВВ требуют для себя некоторое пространство области верхней памяти Upper Memory Area - UMA. Как и с другими ресурсами, могут возникнуть проблемы и конфликты при попытке перекрыть пространства двух таких устройств или использовать память для программ, когда она требуется адаптеру. Обычно устройства используют память для своих BIOS, которые содержат код для управления устройством и вызываются прямыми вызовами или вызовами системного BIOS. Эти BIOS устройств "отображаются" в определенные места области верхней памяти и системный BIOS отыскивает их именно там и выполняет. Такие операции являются частью процесса загрузки системы. В большинстве РС есть три стандартных BIOS, которые размещаются в одних и тех же местах: Основной системный BIOS находится в блоке памяти 64 КБ по адресам Fh - FFFFFh. Это BIOS, который управляет видеокартой. Обычно он занимает блок 32 КБ с адресами Ch - C7FFFh. BIOS жесткого диска IDE: BIOS, который управляет жестким диском IDE, находится по адресам Ch - CBFFFh. Дополнительным устройством, которое использует для своего BIOS особое адресное пространство памяти, является хост-адаптер SCSI. По умолчанию принимаются адреса C - CBFFFh, которые конфликтуют с имеющимся в системе накопителем IDE, но хост-адаптер можно конфигурировать на другие адреса, например D - D7FFFh. Кроме того, сетевые карты, которые способны загружать РС через сеть, обычно также используют область памяти для загрузочного BIOS. Многие системы используют менеджер памяти типа EMM, чтобы программы могли работать с неиспользуемой памятью в области верхней памяти ради экономии стандартной памяти обычно программам доступны КБ. Если в системе работает менеджер памяти и добавляется устройство, которому для своего BIOS требуется часть области верхней памяти, нужно ввести в менеджер памяти параметр для указания менеджеру не использовать занятое устройством пространство памяти. Конфигурирование системы Под конфигурированием системы system configuration понимается процесс настройки аппаратных устройств и присваивания им ресурсов, чтобы они работали без проблем. Правильно конфигурированная система позволяет избежать раздражающих проблем конфликтов ресурсов и проще осуществлять модернизацию системы в будущем. Неправильно конфигурированная система вызывает появление странных ошибок и проблем, а ее модернизация превращается в мучение. Знание конфигурации системы Чтобы система работала без проблем, ее необходимо правильно конфигурировать. Для достижения этого нужно разобраться с ее конфигурацией. Довольно трудно узнать, какие устройства имеются в системе и какие ресурсы они используют. Чтобы помочь пользователям в этом, разработаны специальные программы, которые обычно называются диагностическими утилитами diagnostic utilities. Некоторые из них встроены в операционную систему, а другие имеются в Internet. Кроме того, определенную помощь в конфигурировании могут оказать таблицы системных ресурсов, приведенные ранее в настоящем разделе см. Присваивание ресурсов устройствам Для многих устройств присваивание ресурсов фиксировано и его изменить нельзя. К таким устройствам относится большинство системных устройств. Кроме того, рекомендуется не изменять параметры ресурсов для стандартных устройств, например жестких дисков IDE, если нет веских причин для такого изменения. Следующие устройства обычно имеют фиксированные параметры ресурсов, которые изменять нельзя: Ресурсы других устройств можно изменять. Для установки или изменения параметров ресурсов устройства применяются следующие способы: Присваивание ресурсов на некоторых картах, особенно старых, производятся аппаратно - изменяются состояния перемычек на схемной плате устройства для указания используемого ресурса. Этот способ похож на конфигурирование большинства материнских плат. Основной недостаток этого способа очевиден - чтобы добраться до перемычек, нужно открыть корпус и вытащить карту. Однако к него имеется и достоинство - определенность: Кроме того, всегда можно визуально проверить, какой ресурс использует карта. Многие новые карты конфигурируются с помощью поставляемых с ними программ конфигурирования. Пользователь запускает программу и выбирает используемые ресурсы, а программа записывает информацию в специальную микросхему EEPROM. Этот способ похож на применение флэш-BIOS, но в меньшем масштабе. Устройства с программами конфигурирования намного удобнее устройств с аппаратными параметрами, так как допускают изменение ресурсов без открывания корпуса. Но у этого способа имеются и недостатки, объясняемые зависимостью от программы конфигурирования: Технология Plug and Play PnP: Новые устройства, рассчитанные на PnP-технологию, допускают автоматическое конфигурирование в РС, который поддерживает PnP-технологию, и операционной системой, которая также поддерживает эту технологию. PnP-технология явилась попыткой упростить присваивание ресурсов устройствам и разрешения конфликтов. При правильной работе PnP-технологии ресурсы динамически присваиваются и переприсваиваются, так что пользователь совершенно не касается этого. Кроме того, операционная система типа Windows 95 позволяет изменять параметры ресурсов устройств с помощью встроенного Device Manager, с помощью которого пользователь может заменить присвоенные ресурсы. Рекомендуется всегда записать наиболее удобную конфигурацию системы. Проблемы изменения принимаемого по умолчанию присваивания ресурсов Теоретически любое устройство должно работать с любыми параметрами ресурсов, которые оно поддерживает. К сожалению, на практике так бывает не всегда. Одна из частых причин состоит в том, что программы иногда делают такие предположения , которые делать нельзя. Одно из таких предположений заключается в том, что устройство использует принимаемые по умолчанию параметры ресурсов. Если пользователь изменил параметры, программа не будет работать. Такая ситуация больше характерна для старых программ. Одной из самых неприятных проблемных областей является звуковая карта, а из программ наиболее часто вызывают проблемы игры. Игры требуют от РС наибольшей производительности и для этого игровые программы часто работают непосредственно с аппаратными средствами. Для этого применяются специальные драйверы и иногда игровые программы поддерживают только устройства с принимаемыми по умолчанию параметрами ресурсов. Поэтому рекомендуется оставить принимаемые по умолчанию параметры звуковой карты, а при необходимости изменять параметры других устройств. Еще одна проблема изменения принимаемых по умолчанию параметров вызывается недостаточным тестированием программ, которое должно выполняться с разнообразными аппаратными средствами при различных параметрах. Программисты часто не проводят полного тестирования в результате чего при необычных значениях параметров появляются странные ошибки. Поэтому не рекомендуется изменять в РС принимаемые по умолчанию ресурсы для "стандартных" устройств. Сводка использования ресурсов устройствами В следующей таблице показаны основные устройства типичного РС и используемые ими ресурсы. Ее можно использовать как справочник при добавлении нового устройства, а также для отладки. Конечно, приведенные сведения следует считать правилами, из которых всегда имеются исключения. Жирным шрифтом показано использование ресурсов по умолчанию в типичном РС, а обычным шрифтом показано необязательное распределение ресурсов и ресурсы, используемые нестандартными устройствами: Когда несколько устройств пытаются использовать один и тот же ресурс, возникает конфликт ресурсов resource conflict. Природа конфликтов ресурсов Конфликты ресурсов проявляются несколькими способами. Некоторые конфликты распознать довольно легко, а другие найти и исправить очень трудно, так как они проявляют себя косвенно, а также такими симптомами, которые, на первый взгляд, не имеют ничего общего с вызвавшим проблему устройством. Приведем некоторые способы проявления конфликтов: Зависание или блокировка системы, особенно при использовании периферийного устройства. Ошибки паритета памяти в системах, поддерживающих паритет. Шум или другие проблемы в звуковых картах. Неразборчивая печать "мусор" на принтере. Указатель мыши отказывается перемещаться или движется хаотично. Сообщения об ошибках операционной системы Windows Ошибки и зависания в приложения без очевидных причин. Как видно, некоторые способы явно связаны с ресурсами, а другие нет. Например, зависание системы могут вызвать многие проблемы, не относящиеся к ресурсам. Если мышь работает до тех пор, пока не используется модем, можно разобраться в причине проблемы или, по крайней мере, определиться, с чего начать. В общем, если после добавления в РС нового устройства возникает конфликт ресурсов, то причиной почти наверняка является новое устройство. Если приведенный список проблем напоминает список симптомов компьютерных вирусов, схожесть вполне закономерна. Возможно, что РС, показывающий проблему конфликта ресурсов, на самом деле страдает от вируса. При появлении любой проблемы необходимо прежде всего проверить возможность наличия вирусов. Разделять или не разделять Имеются ситуации, когда можно разделять ресурсы между несколькими устройствами, но обычно это не рекомендуется. Действительно, разделение опирается на то, что программа или пользователь "не делают" того, что создает конфликт, а соблюдать это условие иногда затруднительно. Это также создает запутанную ситуацию для других пользователей РС и затрудняет модернизацию компьютера. Более того, разделение ресурсов может вызвать странные проблемы, так как система выполняет такие операции с устройствами, о которых не знает пользователь. Например, многие мультизадачные системы типа Windows 95 могут обращаться к аппаратным средствам, даже когда пользователь прямо не запрашивает этого. Но в некоторых случаях разделение ресурсов имеет смысл. Если, например, в РС есть два устройства, которые редко используют последовательный порт, и пользователю не хватает линий IRQ, остается присвоить обоим устройствам одну и ту же линию IRQ, но после этого никогда не использовать оба устройства одновременно. Однако все же этот прием не рекомендуется, особенно разделение DMA-каналов, так как их конфликты очень трудно диагностировать. Разрешение конфликтов ресурсов Если в РС подозревается конфликт ресурсов, его необходимо устранить. Сделать это довольно легко, если знать, с чего начать, или очень трудно, если таких сведений нет. Разработаны общие этапы устранения конфликтов, которые вкратце сводятся к следующему: Определить ресурсы, используемые всеми устройствами в РС. В этом большую помощь может оказать сводная таблица использования ресурсов устройствами. Изменить параметры ресурсов для одного или нескольких устройств так, чтобы они больше не конфликтовали. Технология Plug and Play Огромное разнообразие различных карт, которые можно добавить в РС для расширения их возможностей оказывается и привлекательным, и опасным. Приведенный материал по системным ресурсам показывает, что конфигурирование системы и конфликты ресурсов представляют опасность наличия в РС множества нестандартных устройств. Решение возникающих при этом проблем оказывается очень сложной и трудоемкой задачей. Фактически для многих пользователей эта задача оказывается наиболее неприятной при модернизации РС. Для решения этой проблемы компания Microsoft и многие компании, выпускающие аппаратные средства, разработали спецификацию, или технологию, Plug and Play или PnP. Цель заключалась в создании компьютера, в котором аппаратные и программные средства могли автоматически конфигурировать устройства и присваивать ресурсы, чтобы изменения и добавления устройств не влекли за собой перенастройки ресурсов вручную. Как показывает название технологии, нужно просто вставить Plug новое устройство и получить возможность сразу же использовать Play его без сложной настройки. Разновидность Plug and Play появилась много лет назад при разработке шин EISA и MCA. Однако ни одна из этих шин не получила широкого распространения. Интерес к Plug and Play возник в г. Требования к Plug and Play Автоматическое обнаружение и конфигурирование аппаратных и программных средств оказывается непростой задачей. Для решения ее требуются совместные усилия в нескольких аппаратных и программных областях. Чтобы все работало правильно, необходимы четыре "партнера", которые удовлетворяют требованиям Plug and Play: Аппаратные средства системы, от чипсета до контроллеров системной шины, должны "уметь" работать с PnP-устройствами. Для современных систем на базе шины PCI это обеспечивается автоматически. Большинство таких систем поддерживают PnP и на своей шине ISA благодаря специальным схемам, которые объединяют обе шины для разделения информации о ресурсах. Старые РС с шинами ISA и VLB не поддерживают Plug and Play. Добавляемые в систему устройства должны быть PnP-совместимыми. Сейчас PnP поддерживается многими устройствами от модемов и сетевых карт до принтеров и даже мониторов. Такие устройства должны по запросу идентифицировать себя и воспринимать присваивания ресурсов от системы. Системный BIOS играет ключевую роль в обеспечении работы Plug and Play. Встроенные в BIOS процедуры собирают информацию об имеющихся в системе устройствах и определяют, какие ресурсы они должны использовать. BIOS также сообщает эту информацию операционной системе, которая использует ее для конфигурирования своих драйверов и других программ, чтобы устройства работали правильно. Наконец, и операционная система должна быть рассчитана на работу с BIOS и косвенно с аппаратными средствами. Операционная система настраивает программы нижнего уровня, например драйверы устройств, которые требуются для использования устройства приложениями. Она также взаимодействует с пользователем, извещая его об изменениях в конфигурации и позволяя при необходимости внести изменения в параметры ресурсов. Работа Plug and Play Большую часть работы в обеспечении функционирования Plug and Play выполняет системный BIOS в процессе загрузки. На определенном этапе процесса загрузки BIOS выполняет специальную процедуру для определения и конфигурирования PnP-устройств. Приведем вкратце те операции, которые BIOS выполняет при загрузке системы: Создать таблицу ресурсов доступных линий IRQ, DMA-каналов и адресов ввода-вывода, исключая ресурсы, зарезервированные для системных устройств. Отыскать и идентифицировать PnP- не-PnP-устройства на шинах PCI и ISA. Загрузить последнюю известную конфигурацию системы из области ESCD, которая хранится в энергонезависимой памяти. Сравнить текущую конфигурацию с последней известной конфигурацией. Если она не изменилась, продолжать процесс загрузки. Данная часть процесса загрузки заканчивается и продолжается обычная загрузка. Если конфигурация новая, начать реконфигурирование системы. Начать с таблицы ресурсов и удалить все ресурсы, используемые не-PnP-устройствами. Проверить параметры BIOS - не зарезервированы ли дополнительные системные ресурсы для не-PnP-устройств и удалить их из таблицы ресурсов. Присвоить ресурсы PnP-картам из тех ресурсов, которые остались в таблице ресурсов, и сообщить устройствам о новых присваиваниях. Обновить область ESCD, сохраняя в ней новую конфигурацию системы. Большинство BIOS выводят при этом сообщение "Updating ESCD Расширенные данные системной конфигурации Если бы BIOS присваивал ресурсы каждому PnP-устройству при каждой загрузке, сразу возникли бы две проблемы. Во-первых, пришлось бы расходовать время на то, что уже сделано раньше в предыдущей загрузке. Ведь большинство пользователей изменяют аппаратные средства РС довольно редко. Во-вторых, и это важнее, вполне возможно, что BIOS не всегда примет одно и то же решение при распределении ресурсов, и может оказаться, что распределение ресурсов изменилось даже в том случае, когда аппаратные средства не изменились. Для решения этих проблем в РС введены расширенные данные системной конфигурации Extended System Configuration Data - ESCD. Область ESCD представляет собой специальную часть CMOS-памяти BIOS, в которой хранятся настройки BIOS. Эта область памяти применяется для хранения информации о конфигурации аппаратных средств РС. Во время загрузки BIOS проверяет эту область памяти и, если после последней загрузки изменений не произошло, конфигурировать ничего не нужно и данный этап процесса загрузки можно пропустить. ESCD также используется как коммуникационный канал между BIOS и операционной системой. BIOS и операционная система считывают из ESCD текущее состояние аппаратных средств и регистрируют изменения. Windows 95 считывает ESCD, проверяя, не изменились ли аппаратные средства, и соответственно реагирует. Windows 95 также разрешает пользователям вручную заменить присваивания ресурсов Plug and Play с помощью Device Manager. Эта информация записывается в область ESCD, поэтому BIOS знает об изменении при следующей загрузке и не пытается вновь сменить присваивание. PnP- и не-PnP-устройства Устройства, которые не поддерживают PnP-технологию, все же можно использовать в PnP-системе, но при этом возникают специальные проблемы. Такие устройства называются "старьем" legacy. Они значительно затрудняют присваивание ресурсов, так как BIOS не может конфигурировать их автоматически. В общем, BIOS игнорирует не-PnP-устройства и избегает всех ресурсов, которые используют эти устройства. Обычно проблем с применением не-PnP-устройств в PnP-системе не возникает, но наличие слишком большого числа не-PnP-устройств затрудняет работу Plug and Play из-за большого числа ресурсов, которых нельзя "трогать". LPT2, COM3, COM4, модемы, звуковые карты, сетевые карты. Сетевые карты, звуковые карты, хост-адаптеры SCSI, устройства PCI, устройства с перенаправленной IRQ2. Сетевые карты, звуковые карты, хост-адаптеры SCSI, вторичный канал IDE, устройства PCI. Сетевые карты, звуковые карты, хост-адаптеры SCSI, видеокарты VGA, устройства PCI. Хост-адаптеры SCSI, параллельный порт ECP, сетевые карты, речевые модемы.


Как поставить квадратные кавычки
Гомель жлобин расписание
Проститутки становятся хорошими женами
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment