Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Определение конфигурации компьютера программными средствами.↑ Стр 1 из 9Следующая ⇒ Содержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Определение конфигурации компьютера программными средствами.
Если ваша программа работает с устройствами компьютера на низком уровне или использует какие-либо аппаратные особенности периферии, она должна "уметь" определять конфигурацию аппаратных средств. В настоящее время выпускается много различных моделей персональных компьютеров и серверных платформ. В компьютере могут быть установлены процессоры различных моделей и различные версии BIOS. Что же касается номенклатуры периферийных устройств, таких как сетевые контроллеры, видеоадаптеры, сетевые и звуковые адаптеры и т.д., то она практически безгранична. Конфигурация аппаратных средств записывается в область данных BIOS и в энергонезависимую память CMOS специальной программой BIOS Setup.
BIOS (слайд №2) Базовая система ввода-вывода (BIOS - Basic Input/Output System) - это программный интерфейс между программами и оборудованием ПЭВМ. BIOS изолирует операционную систему и прикладные программы от аппаратных особенностей конкретных устройств и позволяет программистам, пишущим на языках ассемблера, Си и т.п., выполнять операции ввода-вывода, не заботясь об адресах устройств или их аппаратных характеристиках. Кроме того, BIOS обеспечивает ряд системных услуг, например, позволяет узнать размер памяти ПЭВМ или текущее время дня. Рекомендуется использовать запросы к BIOS вместо прямой манипуляции портами ввода-вывода при написании как системных, так и прикладных программ. Программирование на уровне BIOS уменьшает зависимость программ от изменения параметров оборудования ПЭВМ и, тем самым, повышает их мобильность. После включения компьютера BIOS за несколько секунд выполняет проверку практически всех компонентов системы. BIOS в своем нынешнем виде существует уже около 15 лет, и до сих пор ее работа не вызывает нареканий. Тем не менее, у этой системы уже есть преемник — EFI (Extensible Firmware Interface). Данный интерфейс поддерживает 64-битные системы, благодаря чему совместим и с компьютерами следующего поколения. Кроме того, обладающий графической оболочкой EFI обеспечивает возможность более простого конфигурирования ПК. Однако до сих пор эта новая технология проверки встречается только на компьютерах Macintosh и лишь немногих обычных ПК. После включения питания ПК к работе приступает первая составляющая BIOS — программа самотестирования POST (Power On Self Test). Она проверяет корректность функционирования основных аппаратных компонентов ПК. После этого BIOS инициализирует чипсет компьютера. Сначала система выполняет сброс центрального процессора, запрещая линии немаскируемых прерываний в нем (Non-Maskable Interrupt). Почти одновременно с этим, как только поступает напряжение, выполняется аналогичная процедура для клавиатурного контроллера. На этапе Reset Determination (определение способа) BIOS проверяет, можно ли ограничиться только программным сбросом. Для этого считываются соответствующие биты в контроллере клавиатуры. Преимущество программного сброса заключается в том, что он выполняется на несколько миллисекунд быстрее. Теперь BIOS осуществляет самопроверку, выполняя подсчет контрольной суммы на основе всех битов микросхемы своего ПЗУ. В сумме с определенной заданной величиной должно получиться значение «00». Далее компьютер посылает контроллеру клавиатуры команду, которая вызывает выполнение следующего теста и выделяет буфер для программных команд. В него BIOS записывает командный байт, проверяя, таким образом, встроенный контроллер клавиатуры. Далее выполняется проверка CMOS-чипа (Complementary Metal Oxide Semiconductor), в котором хранятся пользовательские настройки BIOS. Эти конфигурационные файлы считываются при каждом запуске системы. Сохранность данных и настроек в чипе зависит от того, подключена ли питающая его батарея. Система тестирует также контрольную сумму микросхемы CMOS. Эта операция нацелена, прежде всего, на выявление неисправности батареи: при длительном сроке службы она будет не в состоянии обеспечить определенные компоненты микросхемы достаточным напряжением. Первые признаки неисправности — сброс пользовательских настроек BIOS и системного времени. (слайд №3) Затем POST тестирует работоспособность таймера, отвечающего за корректное распределение аппаратных прерываний (IRQ, Interrupt Request). Запрос на такое действие — команда, посылаемая процессору жестким диском или видеоплатой с целью оповестить CPU о наличии данных, подлежащих обработке. При этом с момента поступления запроса до начала обработки данных проходит определенный промежуток времени, который называется задержкой прерывания. После этого BIOS готовит к работе таблицу векторов прерываний и загружает пользовательские настройки в память CMOS. Запросы на прерывание вначале обрабатываются программируемым контроллером прерывания,который затем передает их процессору. CPU останавливает выполнение текущей команды и в ответ направляет сигнал подтверждения. Процессор считывает из контроллера номер соответствующего прерывания (вектора) и использует его в качестве индекса в таблице. В ней содержатся инструкции, предусмотренные для каждого отдельного прерывания, — например, определенное действие по обслуживанию какого либо устройства. Поскольку количество свободных прерываний в системе ограничено, в современном компьютере несколько устройств располагаются на одной линии прерывания (Interrupt Sharing). В этом случае обработчик должен запускать на выполнение драйверы всех устройств, от которых мог поступить запрос. Это может вызвать проблемы, если написанный с ошибками драйвер слишком долго имеет статус активного. Другое устройство данной линии прерывания выполняет в это время запись информации в буфер, который в определенный момент окажется переполненным, что может привести к потере данных. Поэтому в современных ПК операционная система самостоятельно распределяет номера IRQ между периферийными устройствами. Затем BIOS тестирует адресные линии в первом блоке памяти размером 1 Мбайт на наличие ошибок. Для этого POST осуществляет запись шаблонов данных в оперативную память с целью их последующего сравнения. Далее BIOS определяет тип видеоадаптера, подвергает его и монитор ряду тестов, а затем инициализирует видеоплату. Только после этого на экране могут отображаться сообщения об ошибках. Далее наступает очередь контроллераDMA (Direct Memory Access). Главный мост (Host Bridge), который также называют северным (мостом, связывает процессор и оперативную память с системной шиной материнской платы). Основное количество транзакций на шине выполняется между мостом и остальными периферийными устройствами. Для сокращения времени обработки своих данных последние могут напрямую обращаться к главному мосту и таким образом «без посредников» производить запись информации в оперативную память. В тесте BIOS вновь использует шаблоны данных, которые система помещает в ОЗУ. Интерфейс клавиатуры также подлежит проверке. При его неисправности BIOS выдает сообщение об ошибке именно на данном этапе. BIOS еще раз проверяет оптические приводы, жесткие диски и разъемы, перед тем как выполнить прерывание INT 19 и передать управление загрузчику, который отвечает за запуск операционной системы и обмен данными между жестким диском и его контроллером. Многие версии BIOS позволяют отключить выполнение IRQ 19 — это целесообразно в тех случаях, когда в системе имеется дополнительный дисковый контроллер, например PCI RAID. Если на каком-либо этапе самотестирования возникает ошибка, компьютер подает несколько звуковых сигналов и выводит на экран сообщение о ней. Для расшифровки сигналов BIOS существуют таблицы POST-кодов. Если вы хотите точно знать, какой компонент неисправен, вам поможет стандартная карта PCI POST для диагностики неисправностей материнских плат, которая устанавливается в слот PCI. Неисправность отображается в виде числового кода. С помощью, поставляемой в комплекте с платой, таблицы кодов можно определить проблемный компонент системы. Если все в порядке, BIOS сгенерирует короткий звуковой сигнал, после чего на загрузочном устройстве будет выполнен поиск запускаемой операционной системы. Если на данном этапе возникает ошибка, то причина, как правило, кроется в отсутствии главной загрузочной записи — MBR (Master Boot Record). В этом случае можно попытаться оживить систему с помощью установочного DVD.
(слайд №4) В последнее время также стали широко обсуждаться и развиваться вопросы, связанные с заменой BIOS интерфейсом UEFI (Unified Extensible Firmware Interface). Данный интерфейс призван стать новым стандартом базовой системы для ПК. Для чего нужны BIOS и UEFI?
Для обозначения базовой системы (микропрограммы) используют также термин Firmware: аппаратно реализованное (встроенное) ПО. Он указывает на то, что программа «зашита» в микросхему на материнской плате (то есть ее не нужно устанавливать) и запускается автоматически. Сразу после включения ПК BIOS и UEFI выполняют несколько задач:
Почему BIOS должна уйти? Разрабатывая BIOS, программисты не задумывались о том, в течение какого времени будет использоваться эта система. Поэтому в этой базовой системеесть несколько компонентов, изменение которых невозможно либо связано с весьма большими трудностями. Например, BIOS (без специальных ухищрений) способна распознать диск емкостью лишь до 2 Тб, а современные 3,5-дюймовые жесткие диски могут хранить уже до 3 Тб данных. В UEFI подобных ограничений нет.Притом новая система предоставляет единый интерфейс программирования – это облегчает разработку программ, запускаемых до загрузки операционной системы. Кроме того, UEFI позволяет интегрировать дополнительные функции, например программу резервного копирования данных. Наконец, в UEFI отсутствуют некоторые технически устаревшие функции, имеющиеся в BIOS, – например, переключение процессора при загрузке системы в медленный режим работы Real Mode.
Преимущества UEFI: (слайд №5)
1. Поддержка жестких дисков большой емкости. Для управления жесткими дисками BIOS использует MBR (Master Boot Record, главная загрузочная запись) – она содержит информацию о разделах жесткого диска. Основной недостаток MBR: размер каждой записи в ней составляет 32 бита. В результате BIOS может контролировать приблизительно 4 млрд (232) секторов. К тому же базовая система «рассчитывает» на то, что размер каждого сектора составляет 512 байт; в итоге оказывается, что BIOS не может работать с дисками свыше 2 Тб. И если двадцать лет назад подобный объем считался несбыточной мечтой, то сейчас это суровая реальность. Секторы больших размеров позволили бы использовать диски емкостью 3 Тб, но не все программы из тех, которые напрямую обращаются к жесткому диску, работают с ними корректно. Что касается интерфейса UEFI, он использует для управления жесткими дисками технологию GPT (GUID Partition Table), обеспечивающую возможность записи на жесткий диск большего объема данных. В итоге стандарт GPT поддерживает жесткие диски емкостью до почти 8 млрд Тб.
Доступ к BIOS. (слайд №6)
Для доступа к BIOS используются программные прерывания. При этом каждая точка входа в BIOS использует свой вектор прерываний. Если точка входа обслуживает несколько процедур (называемых функциями BIOS), то номер функции задается в регистре AH. За процедурами BIOS закреплены прерывания Int 10h – Int 11Ah. Например, Int 12h вызывает процедуру, которая возвращает вызвавшей ее программе размер оперативной памяти ПЭВМ. Входные и выходные параметры процедур BIOS передаются в регистрах общего назначения центрального процессора ПЭВМ. Например, для установки системного времени нужно подать следующие команды: MOV AH, 1; Функция 1 - установка времени MOV CX, HIGH_COUNT; CX:DX = новое значение времени MOV DX,LOW_COUNT INT 1AH; Точка входа в BIOS, обслуживающая запросы к таймеру Для чтения времени используется следующая программа: MOV AH,0; Функция 0 - чтение времени INT 1AH; Запрос к BIOS. Результат будет возвращен в регистрах CX и DX. Процедуры BIOS сохраняют значения всех регистров, кроме тех из них, в которых возвращаются значения.
Области данных BIOS. (слайд №7)
Области данных BIOS - это либо области ОЗУ, в которых хранится текущая информация о состоянии ПЭВМ, либо области ПЗУ, в которых записаны аппаратные характеристики устройств. Сведения о наличии основных устройств компьютера записывается в область данных BIOS с адресом 0000:0410 размером в двухбайтовое слово - слово конфигурации. С помощью прерывания INT 11h программа может получить в регистре AX слово конфигурации из указанной выше области данных BIOS. Лекция №6. Функции BIOS.
Int 10h - Управление экраном: Для варианта №12, Лабораторной работы №2 - Определить режим видеоадаптера (текстовый, графический, разрешение(BIOS 10h)). 00h Задание видеорежима 01h Задание формы курсора 02h Задание позиции курсора 03h Чтение позиции и формы курсора 04h Чтение позиции светового пера 05h Задание активной страницы дисплея 06h Прокрутка окна вверх 07h Прокрутка окна вниз 08h Чтение атрибута и символа в текущей позиции курсора 09h Вывод атрибута и символа в текущую позицию курсора 0Ah Вывод символа в текущую позицию курсора 0Bh Задание цветовой палитры 0Ch Вывод пикселя на экран 0Dh Чтение пикселя 0Eh Вывод символов в режиме телетайпа Примечания. 1. Это слово хранится в области данных BIOS по адресу 00413h. 2. Для определения размера расширенной памяти используйте Int 15h, функцию 88h. Для определения размера дополнительной памяти используйте Int 67h, функцию 42h. Анализируя эту величину из AX, программы могут при нехватке памяти либо вывести на экран соответствующее сообщение и отказаться от работы, либо изменить алгоритмы работы, организовав, например, "виртуальную" память на диске или просто записывая в файл промежуточные результаты.
Int 15h - Системные утилиты
Это прерывание объединяет большую группу функций, не связанных с каким-либо конкретным внешним устройством, например: 88h Получить размер расширенной памяти (AT, XT-286, PS/2)
Выход: AX = число непрерывных 1K блоков сверх 1M (1024K)
Интерфейс EMS
Дополнительная память (EMS) — способ для программ, запускающихся в реальном режиме, обращаться к памяти, находящейся за пределами первого мегабайта. EMS позволяет отобразить сегмент памяти, начинающийся обычно с 0D000h,на любые участки памяти. Вызывать функции EMS (прерывание 67h) можно, только если в системе присутствует драйвер с именем ЕММХХХХ0. Для проверки его существования можно, например, вызвать функцию 3Dh (открыть файл или устройство), причем на тот случай, если драйвер EMS отсутствует, а в текущей директории есть файл с именем ЕММХХХХ0, следует дополнительно вызвать функцию IOCTL — INT 21h с АХ = 4400h и ВХ = идентификатор файла или устройства, полученный от функции 3Dh. Если значение бита 7 в DX после вызова этой функции 1, то драйвер EMS наверняка присутствует в системе.
INT 67h, АН = 42h — Получить объем памяти
H - получить текущие параметры дисковода (НМД). (слайд №19)
С помощью этой функции программа может определить тип дисковода, количество дисководов, обслуживаемых первым дисковым контроллером и другие параметры дисковода, которые нужны программе для организации доступа к диску на физическом уровне. Тип дисковода, возвращаемый в регистре BL, может принимать следующие значения:
Еще раз отметим, что прерывание INT 13h используется для организации ввода/вывода на диск. Для определения количества установленных НГМД используется значение из слова конфигурации прерывания INT 11h, а также для определения наличия НЖМД. Для того же, чтоб определить тип установленных НЖМД и НГМД можно использовать информацию, хранимую в CMOS-памяти.
H – Получить тип дисковода (слайд №20)
Возвращаемый этой функцией тип дисковода может принимать следующие значения:
С помощью этой функции программа может определить тип диска и возможность обнаружения замены магнитного носителя (дискеты).
Mov al,12h out 70h,al; задаем адрес в CMOS-памяти jmp $+2; небольшая задержка in al,71h; записываем в AL считанное значение
Запись в CMOS-память выполняется аналогично. При анализе конфигурации дисковой системы для нас представляют наибольший интерес ячейки CMOS-памяти со следующими адресами 14h, 10h и 12h.
В памяти CMOS хранится: (слайд №22)
Рассмотрим подробно назначение отдельных ячеек CMOS-памяти.
Eh - байт диагностики Для варианта №7, Лабораторной работы №2 –Определить состоние байта диагностики из области CMOS (0Eh) и написать программу, анализирующую возможные неисправности в системе.
Байт диагностики содержит результаты выполнения диагностики при включении питания компьютера. Выполнив анализ содержимого байта 0Eh, программа может выявить неисправность НМД, часов реального времени, разрядку аккумулятора и ошибки в конфигурации. Приведем формат этого байта:
H - тип НГМД Для варианта №8, Лабораторной работы №2 –Определить количество и тип установленных накопителей на гибких магнитных дисках (НГМД). (слайд №24)
Младшая и старшая тетрады этого байта описывают, соответственно, второй и первый НГМД:
12h - тип НМД C: и D: Для варианта №1, Лабораторной работы №2 –Определить наличие и тип установленного в системе накопителя на жестких магнитных дисках (НЖМД).
Этот байт разделен на две тетрады аналогично байту, который описывает НГМД. Однако в тетраде можно закодировать только 16 значений, а различных типов НМД значительно больше. Поэтому тип 15 используется специальным образом - если тип НМД в младшей тетраде (диск C:) равен 15, то правильное значение типа находится в CMOS-памяти по адресу 19h. Аналогично для диска D: этот тип можно взять из байта по адресу 1Ah (если содержимое старшей тетрады байта с адресом 12h равно 15).
Если в вашем компьютере установлен НМД с интерфейсом ESDI, SCSI или другим специализированным интерфейсом, то, как правило, для работы с ними используется специальная "дисковая" базовая система ввода/вывода. Соответствующая микросхема ПЗУ может быть расположена непосредственно в контроллере. При этом в CMOS-памяти в ячейке 12h для типа диска может быть указано нулевое значение, несмотря на то, что диск установлен. Прерывание INT 11h, тем не менее, скажет вам, что в системе имеется НМД.
Если используется "дисковая" базовая система ввода/вывода, то она сама инициализирует таблицу параметров диска и выполняет обработку прерывания INT 13h. Так как MS-DOS при обращении к дискам использует именно это прерывание, то не возникает никаких проблем, связанных с отсутствием типа диска в CMOS-памяти. Другие операционные системы, такие как Windows NT и OS/2, используют для работы с дисками специальные драйверы.
Приведем сокращенную таблицу параметров для стандартных типов НМД (зависит от версии BIOS): (слайд №25)
Для всех приведенных в таблице типов дисков на одной дорожке располагается 17 секторов. Стандартный компьютер IBM PC/XT комплектуется обычно НМД с типом 1, тип 2 используется в стандартном компьютере IBM PC/AT. Остальные типы НМД используются главным образом старыми версиями BIOS.
Примечания. Номер стыка в описанных ниже функциях задается так: COM1, COM2 и т. д. При этом в PS/2 он может варьироваться от 0 до 3, в остальных ПЭВМ - от 0 до 1. Базовый адрес порта для стыка извлекается из области данных по адресу 00400h.
Рассмотрим некоторые функции данного прерывания более подробно:
INT 14h AH = 03 — Получить текущее состояние порта
INT 14h АН = 00 — Инициализация последовательного порта (слайд №32)
Более того информацию о портах можно извлечь и из области данных BIOS (Data Area BIOS).
Как говорилось ранее, после зоны векторов прерываний идет область, называемая BIOS Data Area, где размещаются данные, полученные в ходе тестирования оборудования, буфера системных устройств, например буфер клавиатуры, и различные служебные регистры. Эта область данных имеет размер не менее 256 байтов и начинается с адреса 0000:0400h или 0040:0000h. Назначение наиболее интересных для пользователя зон в области BIOS Data Area следующее: (слайд №33)
Лекция №7. Int 15h - Системные утилиты Для варианта №5, Лабораторной работы №2 – Определить модель компьютера (BIOS 15h) и версию BIOS. (слайд №34)
Это прерывание объединяет большую группу функций, не связанных с каким-либо конкретным внешним устройством, а именно:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-04-26; просмотров: 1335; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.220.85.96 (0.012 с.) |