Выполняется корректировка модулей управления памяти

Обновлено: 04.07.2024

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

Устранение неполадок оперативной памяти

Для устранения неполадок памяти, сначала для её диагностики, необходимо запустить некоторые программы тестирования. BIOS каждой материнской платы имеет POST диагностику памяти, которая выполняется при включении системы. В большинстве случаев, у вас также имеются специальные дисковые утилиты диагностики памяти, которые пришли с вашей системой. К тому же, в продаже имеется много коммерческих программ диагностики и почти все они включают тесты памяти.

POST диагностика памяти

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

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

К счастью для бесплатной загрузки доступны несколько отличных программ тестирования памяти. Вот некоторые, которые мы рекомендуем:

Они не только бесплатны, но и доступны в загрузочном формате, то есть, вам не придётся устанавливать программное обеспечение на тестируемой системе. Загрузочный формат фактически необходим, поскольку Windows и другие ОС препятствуют прямому доступу к памяти и другому требуемому для тестирования оборудованию. Эти программы, чтобы убедиться, что всё читается и пишется правильно, используют алгоритмы, которые записывают различные типы шаблонов для всей памяти в системе, проверяя каждый бит.

Они также, чтобы обеспечить непосредственное тестирование модулей, а не кеша, отключают кеш процессора. Некоторые из них, например, «Windows Memory Diagnostic», если вы столкнулись с ошибкой, даже указывают на неисправность модуля. Обратите внимание, что версия Windows Memory Diagnostic включена в Windows 7/8.1/10. Её можно найти в разделе инструментов администрирования (mdsched.exe), а также на DVD-дисках загрузочной установки в режиме восстановления.

Ultimate Boot CD включает в себя Memtest86 и некоторые другие программы диагностики памяти. Ultimate Boot CD в Windows 7 и более поздних установочных DVD (содержащих Windows Memory Diagnostic) может также устанавливаться на загрузочный USB флэш-накопитель, что делает её гораздо более удобной в использовании.

Обратите внимание, что хотя инструмент имеет название «Windows 7», он также работает и на Windows 8.1/10. Если вы хотите протестировать память в системе, на которой уже установлены Windows 7/8.1/10, просто запустите команду mdsched.exe или откройте панель управления, средства администрирования и выберите «Диагностика памяти Windows», что позволит перезапустить систему и сразу запустить тест или настроить автоматическое выполнение теста при следующем перезапуске.

Одна из связанных с программной диагностикой памяти проблем, заключается в том, что они выполняют только тестирование типа pass/fail. То есть всё, что они могут сделать, это записывать шаблоны в память и читать их обратно. Они не могут определить, насколько близка память к краху - только работает она или нет.

Для самого высокого уровня тестирования лучшее, что можно сделать, это специальный тест памяти машины, обычно с помощью тестера модуля. Эти устройства позволяют вставлять модуль и тщательно тестировать его на различных скоростях, напряжениях и таймингах. Определяя наверняка, хорошая эта память или плохая. Доступны версии этих тестеров для обработки всех типов модулей памяти. Например, у вас есть дефектные модули, которые работают в одних системах (медленнее), и не работают в других. Имеем в виду, что одна и та же программа тестирования памяти показывает провал модуля на одной машине, и нормальную его работу на другой. В тестере модуля, он всегда определяется как плохой, вплоть до отдельного бита, и даже указывает фактическую скорость устройства, а не только его рейтинг.

Ошибки оперативной памяти

  • Parity errors\Ошибки четности. Схема контроля чётности на материнской плате обнаружила изменение в памяти, поскольку данные были первоначально сохранены.
  • General or global protection faults\Общие или глобальные ошибки защиты. Общая ошибка, указывающая на то, что программа была повреждена в памяти, что обычно приводит к немедленному завершению работы приложения. Это также может быть вызвано багами или неисправными программами.
  • Fatal exception errors\Фатальные ошибки исключения. Коды ошибок, возвращаемые программой при обнаружении нелегальной команды, недействительных данных или кодов доступа к привилегированному уровню операции.
  • Divide error\Ошибки деления. Общая ошибка, указывающая на то, что было выполнено деление на 0, или результат операции не помещается в регистр назначения.

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

Если вы подозреваете, что проблемы вызваны памятью, есть способы проверить память и определить, является ли это проблемой. Большая часть этого тестирования включает в себя запуск одной или нескольких программ тестирования памяти.

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

Суть в том, если вы тестируете память с включённым кешем, вы на самом деле пишете не в модули, а только в кеш. Перед запуском любых программ тестирования памяти убедитесь, что кеши процессора/памяти отключены. У многих старых систем для отключения кешей есть опции в BIOS Setup. Программное обеспечение для тестирования памяти на базе программного обеспечения, такое как Windows Memory Diagnostic и Memtest86, может отключать кеши на более новых системах.

Процедура тестирования памяти

Следующие шаги позволяют эффективно тестировать и устранять неполадки в системной ОЗУ. На рисунке ниже приведена развёрнутая процедура, которая поможет вам быстро пройти весь процесс.

Во-первых, давайте рассмотрим процедуры проверки памяти и устранения неполадок:

  • Включите питание системы и следите за POST. Если POST завершается без ошибок, была протестирована базовая функциональность памяти. Если возникают ошибки, перейдите к процедурам изоляции дефектов.
  • Перезагрузите систему и войдите в настройки BIOS (или CMOS). В большинстве систем это делается нажатием во время POST клавиши Del, F1 или F2, но до начала процесса загрузки (подробности смотрите в документации к вашей системе или материнской плате). После, в настройках BIOS убедитесь, что количество памяти равно установленной сумме. Если сосчитанное не соответствует установленному, перейдите к процедурам изоляции дефектов.

тестирование_устранение_неполадок_памяти

  • Найдите параметры настройки BIOS для кеша, а затем, если ваша система поддерживает эту опцию, отключите все параметры кеша. На следующем рисунке показано типичное меню Advanced BIOS Features с выделенными опциями кеша. Сохраните настройки и перезагрузите, содержащий программу диагностики памяти загрузочный носитель.

Подсказка. Большинство систем не позволяют отключать кеш в настройках BIOS. В таких случаях, чтобы отключить кеш-память перед тестированием памяти, рекомендуется использовать Windows Memory Diagnostic и расширенные параметры.

  • Чтобы проверить систему и расширенную память, следуйте инструкциям, прилагаемым к вашей диагностической программе. Большинство программ имеют режим, который позволяет им зацикливать тест, то есть непрерывно запускать его, что отлично подходит для поиска прерывистых проблем. Если программа сталкивается с ошибкой памяти, перейдите к процедурам изоляции дефектов.
  • Если ошибок нет в POST или в более полной диагностике памяти, ваша память проверена на аппаратном уровне. Убедитесь, что в момент перезагрузки системы, вошли в настройки BIOS и снова включили кеш. Если кэш не будет включён, система будет работать очень медленно.

кэш_bios

Для получения точных результатов перед тестированием памяти, кеши CPU Внутренний (L1) и Внешний (L2 и L3) должны быть отключены в системной настройке BIOS, если система имеет эту опцию.

Под памятью ( memory ) в данном случае подразумевается оперативная (основная) память компьютера. В однопрограммных операционных системах основная память разделяется на две части. Одна часть для операционной системы (резидентный монитор , ядро ), а вторая – для выполняющейся в текущий момент времени программы. В многопрограммных ОС "пользовательская" часть памяти – важнейший ресурс вычислительной системы – должна быть распределена для размещения нескольких процессов, в том числе процессов ОС. Эта задача распределения выполняется операционной системой динамически специальной подсистемой управления памятью ( memory management ). Эффективное управление памятью жизненно важно для многозадачных систем. Если в памяти будет находиться небольшое число процессов, то значительную часть времени процессы будут находиться в состоянии ожидания ввода-вывода и загрузка процессора будет низкой.

В ранних ОС управление памятью сводилось просто к загрузке программы и ее данных из некоторого внешнего накопителя (перфоленты, магнитной ленты или магнитного диска) в ОЗУ . При этом память разделялась между программой и ОС. На рис. 6.3 показаны три варианта такой схемы. Первая модель раньше применялась на мэйнфреймах и мини-компьютерах. Вторая схема сейчас используется на некоторых карманных компьютерах и встроенных системах, третья модель была характерна для ранних персональных компьютеров с MS-DOS .

 Варианты распределения памяти

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

Функциями ОС по управлению памятью в мультипрограммных системах являются:

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

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

Для идентификации переменных и команд на разных этапах жизненного цикла программы используются символьные имена, виртуальные (математические, условные, логические – все это синонимы) и физические адреса (рис. 6.4).

Типы адресов

Символьные имена присваивает пользователь при написании программ на алгоритмическом языке или ассемблере. Виртуальные адреса вырабатывает транслятор , переводящий программу на машинный язык . Поскольку во время трансляции неизвестно, в какое место оперативной памяти будет загружена программа , транслятор присваивает переменным и командам виртуальные (условные) адреса, считая по умолчанию, что начальным адресом программы будет нулевой адрес .

Физические адреса соответствуют номерам ячеек оперативной памяти, где в действительности будут расположены переменные и команды.

Совокупность виртуальных адресов процесса называется виртуальным адресным пространством. Диапазон адресов виртуального пространства у всех процессов один и тот же и определяется разрядностью адреса процессора (для Pentium адресное пространство составляет объем, равный 2 32 байт , с диапазоном адресов от 0000.000016 до FFFF.FFFF16).

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

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

6.3. Распределение памяти

Существует ряд базовых вопросов управления памятью, которые в различных ОС решаются по -разному. Например, следует ли назначать каждому процессу одну непрерывную область физической памяти или можно выделять память участками? Должны ли сегменты программы, загруженные в память , находиться на одном месте в течение всего периода выполнения процесса или их можно время от времени сдвигать? Что делать, если сегменты программы не помещаются в имеющуюся память ? Как сократить затраты ресурсов системы на управление памятью ? Имеется и ряд других не менее интересных проблем управления памятью [5, 10, 13, 17].

Ниже приводится классификация методов распределения памяти, в которой выделено два класса методов – с перемещением сегментов процессов между ОП и ВП (диском) и без перемещения, т.е. без привлечения внешней памяти (рис. 6.5). Данная классификация учитывает только основные признаки методов. Для каждого метода может быть использовано несколько различных алгоритмов его реализации.

Классификация методов распределения памяти


Рис. 6.5. Классификация методов распределения памяти

На рис. 6.6 показаны два примера фиксированного распределения. Одна возможность состоит в использовании разделов одинакового размера. В этом случае любой процесс, размер которого не превышает размера раздела, может быть загружен в любой доступный раздел. Если все разделы заняты и нет ни одного процесса в состоянии готовности или работы, ОС может выгрузить процесс из любого раздела и загрузить другой процесс, обеспечивая тем самым процессор работой.

Варианты фиксированного распределения памяти


Рис. 6.6. Варианты фиксированного распределения памяти

При использовании разделов с одинаковым размером имеются две проблемы.

  1. Программа может быть слишком велика для размещения в разделе. В этом случае программист должен разрабатывать программу, использующую оверлеи, чтобы в любой момент времени требовался только один раздел памяти. Когда требуется модуль, отсутствующий в данный момент в ОП, пользовательская программа должна сама его загрузить в раздел памяти программы. Таким образом, в данном случае управление памятью во многом возлагается на программиста.
  2. Использование ОП крайне неэффективно. Любая программа, независимо от ее размера, занимает раздел целиком. При этом могут оставаться неиспользованные участки памяти большого размера. Этот феномен появления неиспользованной памяти называется внутренней фрагментацией (internal fragmentation).

Бороться с этими трудностями (хотя и не устранить полностью) можно посредством использования разделов разных размеров. В этом случае программа размером до 8 Мбайт может обойтись без оверлеев, а разделы малого размера позволяют уменьшить внутреннюю фрагментацию при загрузке небольших программ.

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

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

Недостаток заключается в том, что отдельные очереди для разделов могут привести к неоптимальному распределению памяти системы в целом. Например, если в некоторый момент времени нет ни одного процесса размером от 7 до 12 Мбайт, то раздел размером 12 Мбайт будет пустовать, в то время как он мог бы использоваться меньшими процессами. Поэтому более предпочтительным является использование одной очереди для всех процессов. В момент, когда требуется загрузить процесс в ОП, выбирается наименьший доступный раздел, способный вместить данный процесс.

В целом можно отметить, что схемы с фиксированными разделами относительно просты, предъявляют минимальные требования к операционной системе; накладные расходы работы процессора на распределение памяти невелики. Однако у этих схем имеются серьезные недостатки.

  1. Количество разделов, определенное в момент генерации системы, ограничивает количество активных процессов (т.е. уровень мультипрограммирования).
  2. Поскольку размеры разделов устанавливаются заранее во время генерации системы, небольшие задания приводят к неэффективному использованию памяти. В средах, где заранее известны потребности в памяти всех задач, применение рассмотренной схемы может быть оправдано, но в большинстве случаев эффективность этой технологии крайне низка.

Для преодоления сложностей, связанных с фиксированным распределением, был разработан альтернативный подход, известный как динамическое распределение. В свое время этот подход был применен фирмой IBM в операционной системе для мэйнфреймов в OS/MVT ( мультипрограммирование с переменным числом задач – Multiprogramming With a Variable number of Tasks). Позже этот же подход к распределению памяти использован в ОС ЕС ЭВМ [12] .

При динамическом распределении образуется перемененное количество разделов переменной длины. При размещении процесса в основной памяти для него выделяется строго необходимое количество памяти. В качестве примера рассмотрим использование 64 Мбайт (рис. 6.7) основной памяти. Изначально вся память пуста, за исключением области, задействованной ОС. Первые три процесса загружаются в память , начиная с адреса, где заканчивается ОС, и используют столько памяти, сколько требуется данному процессу. После этого в конце ОП остается свободный участок памяти, слишком малый для размещения четвертого процесса. В некоторый момент времени все процессы в памяти оказываются неактивными, и операционная система выгружает второй процесс, после чего остается достаточно памяти для загрузки нового, четвертого процесса.

Вариант использования памяти

Поскольку процесс 4 меньше процесса 2, появляется еще свободный участок памяти. После того как в некоторый момент времени все процессы оказались неактивными, но стал готовым к работе процесс 2, свободного места в памяти для него не находится, а ОС вынуждена выгрузить процесс 1, чтобы освободить необходимое место и разместить процесс 2 в ОП. Как показывает данный пример, этот метод хорошо начинает работу, но плохо продолжает. В конечном счете, он приводит к наличию множества мелких свободных участков памяти, в которых нет возможности разместить какой-либо новый процесс. Это явление называется внешней фрагментацией ( external fragmentation ), что отражает тот факт, что сильно фрагментированной становится память , внешняя по отношению ко всем разделам.

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

Перечислим функции операционной системы по управлению памятью в этом случае.

  1. Перемещение всех занятых участков в сторону старших или младших адресов при каждом завершении процесса или для вновь создаваемого процесса в случае отсутствия раздела достаточного размера.
  2. Коррекция таблиц свободных и занятых областей.
  3. Изменение адресов команд и данных, к которым обращаются процессы при их перемещении в памяти, за счет использования относительной адресации .
  4. Аппаратная поддержка процесса динамического преобразования относительных адресов в абсолютные адреса основной памяти.
  5. Защита памяти, выделяемой процессу, от взаимного влияния других процессов.

Уплотнение может выполняться либо при каждом завершении процесса, либо только тогда, когда для вновь создаваемого процесса нет свободного раздела достаточного размера. В первом случае требуется меньше вычислительной работы при корректировке таблиц свободных и занятых областей, а во втором – реже выполняется процедура сжатия.

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

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

Ситуация усложняется, если размеры разделов равны (или неравны) и существует единая очередь процессов, – процесс по ходу работы может занимать разные разделы . Такая же ситуация возможна и при динамическом распределении. В этих случаях расположение команд и данных, к которым обращается процесс, не является фиксированным и изменяется всякий раз при выгрузке, загрузке или перемещении процесса. Для решения этой проблемы в программах используются относительные адреса. Это означает, что все ссылки на память в загружаемом процессе даются относительно начала этой программы. Таким образом, для корректной работы программы требуется аппаратный механизм, который бы транслировал относительные адреса в физические в процессе выполнения команды, обращающейся к памяти.

Применяемый обычно способ трансляции показан на рис. 6.8. Когда процесс переходит в состояние выполнения, в специальный регистр процесса, называемый базовым, загружается начальный адрес процесса в основной памяти. Кроме того, используется "граничный" (bounds) регистр , в котором содержится адрес последней ячейки программы. Эти значения заносятся в регистры при загрузке программы в основную память . При выполнении процесса относительные адреса в командах обрабатываются процессором в два этапа. Сначала к относительному адресу прибавляется значение базового регистра для получения абсолютного адреса. Затем полученный абсолютный адрес сравнивается со значением в граничном регистре. Если полученный абсолютный адрес принадлежит данному процессу, команда может быть выполнена. В противном случае генерируется соответствующее данной ошибке прерывание .

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

Как это работает

После включения компьютера в его оперативной памяти нет операционной системы. А без операционной системы, аппаратное обеспечение компьютера не может выполнять сложные действия, такие как, например, загрузку программы в память. Таким образом возникает парадокс, который кажется неразрешимым: для того, чтобы загрузить операционную систему в память, мы уже должны иметь операционную систему в памяти.

Решением данного парадокса является использование нескольких микропрограмм размещаемых в одной или нескольких микросхемах, BIOS (Basic Input/Output System). Процесс загрузки начинается с автоматического выполнения процессором команд, расположенных в постоянной (или перезаписываемой) памяти ( EEPROM или Flash ROM ), начиная с заданного адреса. Эти микропрограммы не обладает всей функциональностью операционной системы, но её (функциональности) достаточно для того, чтобы чтобы выполнить последовательную загрузку других программ, которые выполняются друг за другом до тех пор, пока последняя из них не загрузит операционную систему.

Последовательность основных блоков функций BIOS в PC -совместимых компьютерах:

1. - POST - самотестирование при включении питания процессора, памяти, набора микросхем системной логики, видеоадаптера, контроллера дисков, клавиатуры, мыши и других контроллеров и устройств;

2. - Setup BIOS ( программа установки параметров BIOS) - конфигурирование параметров системы. Она может быть запущена во время выполнения процедуры POST при нажатии определенной комбинации клавиш. Если она не была вызвана пользователем, загружаются параметры установленные и сохраненные в постоянной памяти в о время последнего конфигурирования Setup BIOS .

3. - Загрузчик операционной системы - подпрограмма, выполняющая поиск действующего основного загрузочного сектора на дисковом устройстве.

4. - BIOS - набор драйверов, предназначенных для взаимодействия операционной системы и аппаратного обеспечения при загрузке системы.

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

Зачем это нужно?

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

В процессе его выполнения проверяется наличие загрузочных устройств которые должны быть проинициализировано до загрузки операционной системы.

К ним относятся:

  • устройства ввода (клавиатура, мышь),
  • базовое устройство вывода (дисплей),
  • устройство, с которого будет произведена загрузка ОС — дисковод, жесткий диск, CD-ROM, флэш-диск, SCSI-устройство, сетевая карта (при загрузке по сети)

В случае жесткого диска, начальный загрузчик называется главной загрузочной записью (MBR) и часто не зависит от операционной системы. Обычно он ищет активный раздел жесткого диска, загружает загрузочный сектор данного раздела и передает ему управление. Этот загрузочный сектор, как правило, зависит от операционной системы. Он должен загрузить в память ядро операционной системы и передать ему управление.

Если активного раздела не существует, или загрузочный сектор активного раздела некорректен, MBR может загрузить резервный начальный загрузчик и передать управление ему. Резервный начальный загрузчик должен выбрать раздел (зачастую с помощью пользователя), загрузить его загрузочный сектор и передать ему управление.

Последовательность загрузки стандартного IBM-совместимого персонального компьютера

После включения персонального компьютера его процессор еще не начинает работу.

Первое устройство, которое запускается после нажатия кнопки включения компьютера, — блок питания. Если все питающие напряжения окажутся в наличии и будут соответствовать норме, на системную плату будет подан специальный сигнал Power Good, свидетельствующий об успешном тестировании блока питания и разрешающий запуск компонентов системной платы.

После этого чипсет формирует сигнал сброса центрального процессора, по которому очищаются регистры процессора, и он запускается.

Первая выполняемая команда расположена по адресу FFFF0h и принадлежит пространству адресов BIOS. Данная команда просто передает управление программе инициализации BIOS и выполняет следующую команду (микропрограмму BIOS ).

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

Таким образом, его работа — последовательно читать и выполнять команды из памяти.

Системная память сконфигурирована так, что первая команда, которую считает процессор после сброса, будет находиться в микросхеме BIOS.

Последовательно выбирая команды из BIOS, процессор начнет выполнять процедуру самотестирования, или POST.

Процедура самотестирования POST состоит из нескольких этапов.

  • Первоначальная инициализация основных системных компонентов;
  • Детектирование оперативной памяти, копирование кода BIOS в оперативную память и проверка контрольных сумм BIOS;
  • Первоначальная настройка чипсета;
  • Поиск и инициализация видеоадаптера. Современные видеоадаптеры имеют собственную BIOS, которую системная BIOS пытается обнаружить в специально отведенном сегменте адресов. В ходе инициализации видеоадаптера на экране появляется первое изображение, сформированное с помощью BIOS видео адаптера ;
  • Проверка контрольной суммы CMOS и состояния батарейки. Если контрольная сумма CMOS ошибочна, будут загружены значения по умолчанию ;
  • Тестирование процессора и оперативной памяти. Результаты тестирования обычно выводятся на экран ;
  • Подключение клавиатуры, тестирование портов ввода/вывода и других устройств.
  • Инициализация дисковых накопителей. Сведения об обнаруженных устройствах обычно выводятся на экран ;
  • Распределение ресурсов между устройствами и вывод таблицы с обнаруженными устройствами и назначенными для них ресурсами;
  • Поиск и инициализация устройств, имеющих собственную BIOS;
  • Вызов программного прерывания BIOS INT 19h, который ищет загрузочный сектор на устройствах, указанных в списке загрузки.

В зависимости от конкретной версии BIOS порядок процедуры POST может немного раз отличаться, но приведенные выше основные этапы выполняются при загрузке любого компьютера.

Что такое POST-коды?

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

Если быть совсем точным, во многих современных чипсетах перед передачей команд процессору системным контроллером предварительно конфигурируется «умная» системная шина. Но это не меняет сути дела.

Основная задача BIOS на данном этапе — проверка исправности и инициализация основных аппаратных компонентов компьютера. Вначале конфигурируются внутренние регистры чипсета и процессора, проверяется целостность кода BIOS. Затем происходит определение типа и размера оперативной памяти, поиск и инициализация видеокарты (интегрированной в чипсет или внешней). Следом конфигурируются порты ввода-вывода, контроллер дисковода, IDE/SATA-контроллер и подключенные к нему накопители. И, наконец, осуществляется поиск и инициализация интегрированных на материнскую плату дополнительных контроллеров и установленных карт расширения. Всего получается около ста промежуточных шагов, после чего управление передается загрузчику BOOTStrap, отвечающему за старт операционной системы.

Каждый из шагов POST-тестов имеет свой уникальный номер, называемый POST-кодом. Перед началом выполнения очередной процедуры ее POST-код записывается в специальный порт, именуемый Manufacturing Test Port. При успешной инициализации устройства в Manufacturing Test Port записывается POST-код следующей процедуры и так далее, до полного прохождения всех тестов. Если сконфигурировать устройство не удалось, дальнейшее выполнение POST-тестов прекращается, а в Manufacturing Test Port остается POST-код процедуры, вызывавшей сбой. Прочитав его можно однозначно идентифицировать проблемное устройство.

Имейте в виду, после перезагрузки компьютера средствами операционной системы («мягкая» или «горячая» перезагрузка) или при выходе из энергосберегающего режима обычно выполняются не все шаги по тестированию и конфигурированию аппаратных компонентов, а только необходимый минимум — так быстрее. При поиске неисправности необходимо всегда выполнять «жесткую» («холодную») перезагрузку — клавишей RESET или отключением питания компьютера. Только так гарантируется, что все этапы инициализации будут выполнены в полном объеме.

Award BIOS 6.0: вариант полной загрузки

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

Невыполнение или сбой выполнения любого шага в последовательности тестов приводит к остановке тестирования и выдаче POST - кода соответствующего данному шагу сбоя.

POST - коды других производителей можно найти на сайтах производителя Вашей системной платы или производителя DIOS или в Internet .

В мастерских или у занимающихся ремонтом специалистов контроль выполнения микропрограмм BIOS осуществляется с помощью специальной карты расширения. Она вставляется в свободный слот (большинство современных моделей рассчитано на шину PCI) и по мере загрузки отображает на своем индикаторе код выполняемой в текущий момент процедуры.

Примером может быть Post карта PCI BM9222 .

Однако POST-карта это не широко распространенное средство. Скорее, это инструмент профессионального ремонтника компьютеров. Осознавая данный факт, производители материнских плат стали оснащать модели, рассчитанные на энтузиастов экспериментирующих с настройками и разгоном компьютера, встроенными индикаторами POST-кодов.

Примером может быть системная плата ECS H67H2-M , или модели X58 Extreme3, P55 Deluxe3 и 890GX Extreme3 .

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

Но для этого необходимо, чтобы в корпусе ПК имел системный динамик и он был подключен к системной платы.

Звуковые сигналы особенно ценны на начальном этапе, когда видеокарта еще не проинициализирована и, как следствие, не в состоянии отобразить что-либо на экране. Уникальная комбинация длинных и коротких сигналов укажет на проблемный компонент.

Процедура Setup

Для этого необходимо нажать определенную клавишу или сочетание клавиш.

Обычно на экранной заставке при тестировании отображается надпись типа «Press DEL to enter Setup» — это означает, что для входа в BIOS Setup необходимо нажать клавишу DEL. Узнать, за которой клавишей закреплен вход в BIOS, можно из инструкции к материнской плате. Если инструкции нет, а экранная заставка не отображает подсказки, можно опробовать наиболее известные варианты комбинаций:

Delete
Esc
Ctrl + Shift + S или Ctrl + Alt + S
Ctrl + Alt + Esc
Ctrl + Alt + Delete

Безопасная работа с BIOS Setup

Работа с BIOS Setup связана с определенным риском, поскольку при неправильном или неосторожном изменении параметра система может функционировать нестабильно либо не функционировать вообще. Есть несколько простых советов, которые позволяют свести возможный риск к минимуму:

  • Экспериментировать с настройками BIOS Setup лучше всего на новом не заполненном информацией компьютере;
  • Старайтесь вообще не экспериментировать с BIOS на компьютерах, обрабатывающих или хранящих важную или объемную информацию. Перед настройкой системы с помощью BIOS позаботьтесь о резервном копировании важных данных. Главное в таких компьютерах — стабильность. Подвисший разогнанный компьютер через несколько часов обработки видео — это потеря времени, электроэнергии и результата работы. Неразогнанный справится с данной задачей гораздо эффективнее и сохранит ваши нервы;
  • Прежде, чем изменить важные параметры, всегда фиксируйте выставленное и измененное значение. Это позволит вам в случае нестабильной работы системы вернуть ее в рабочее состояние;
  • Не изменяйте значения параметров, которые вам неизвестны. Уточните их значение либо в инструкции к материнской плате, либо в сети Internet на ресурсе разработчика платы;
  • Не редактируйте за раз несколько важных не связанных между собой параметров. При нестабильной работе системы гораздо сложнее определить, какой параметр вызвал нестабильную работу;
  • Не разгоняйте компьютер без соответствующей изучения работы разгоняемой системы и подготовки;
  • Не используйте раздел Hard Disk Utility, который предназначен для низкоуровневого форматирования устаревших моделей жестких дисков и встречается в старых версиях BIOS, т.к. может вывести из строя современный жесткий диск;
  • Если после выставления параметров и выхода из BIOS компьютер перестает запускаться вообще, вернуть систему в рабочее состояние можно несколькими способами:
    • Если после перезагрузки компьютера возможно войти в BIOS Setup, нужно установить прежние значения отредактированных параметров. Некоторые версии BIOS сами осуществляют откат изменений за последнюю сессию.
    • Если сделанные изменения неизвестны, то лучше воспользоваться параметрами по умолчанию, использовав команду Load Fail-Safe Defaults. После этого придется настраивать систему на оптимальную работу.
    • Если компьютер вовсе не запускается из-за неправильных настроек BIOS, то в таком случае необходимо обнулить содержимое CMOS. При этом все значения включая дату/время будут изменены. Для этого сбросить неправильные установки, для этого просто переместить перемычку Flash Recovery ( IBM ) или джампер Clearing CMOS в положение "очистка CMOS ". В последнем случае нужно просто замкнуть перемычкой на несколько минут контакты соответствующего джампера.
    • В случае неудачных результатов настройки Setup BIOS , необходимо после сброса неудачной конфигурации с помощью джампера в процедуре Setup BIOS продублировать возвращение загрузку значений BIOS по умолчанию с помощью команды "Load Fail-Safe Defaults ". Ваша система вернется в исходное состояние.

    В Award BIOS 6.0 это строка меню Setup BIOS - " Load Optimized Defaults " или "Load Fail-Safe Defaults " в этом случае загружается исходная настройки Setup BIOS .

    Собственный BIOS имеется и на других платах устанавливаемых в компьютер, например:

    • видеоадаптерах;
    • SCSI адаптеры;
    • сетевые адаптеры и других.

    Сборка А. Сорокин

    2. Модернизация и ремонт ПК, 15-е издание, Пер. с англ, М, изд. дом "Вильямс" 2005


    Проблема с материнской платой GA-H55M-S2
    Добрый день, возникла проблема с материнской платой GA-H55M-S2, купленной через и на AliExpress в.

    Проблема с материнской платой GA-7VT600
    Здравствуйте. Может кто знает как быть. Есть внешний винт фирмы Western Digital, серии My Passport.

    Проблема с материнской платой GIGABYTE
    У меня такая проблема: Престал работать комп, он включается кулеры начинают крутиться, но дальше.

    Возможная проблема с материнской платой
    Привет всем. У меня пару вопросов возникло по моей материнской плате, у меня были как то проблемы.

    В самом начале решил не трогать, но вчера вечером нашел bios, перепрошил, все завершилось хорошо, не каких ошибок и тд не было, но вот после этого мать не запускается, пост карта выдает 3 вида ошибок, в самом начале ff, дальше 50 и потом вообще может 00. Сброс биоса путем полного обесточивания, перестановки перемычки и вытягивания батарейки не чего совсем не дают. Izera696, нужно проверять железо путём подмены на заведомо исправное. Процессор 100% рабочий, оперативная память тоже, видео карта тоже работает, означает что проблема в материнской плате? при попытке хоть как изменить параметры bios даже поменять приоритет загрузки с флешки Совсем не обязательно было в Биос заходить для этого, существует горячая клавиша для вызова бут меню на всех компах.
    Твои пост коды:
    FF - В точку FF выполняется переход в том случае, если программирование Flash BIOS успешно завершено. Запрещается запись у FlashROM. Выполняется отключение оборудования ATAPI. Восстанавливается значение CPUID.
    50 - Выполняется корректировка модулей управления памяти.
    00 - Выполнение прерывания BIOS INT 19h. Управление процессом загрузки передается загрузчику операционной системы.
    Начинается загрузка ОС.
    Отсоедини привод СД, винчестеры, флешки достань, клава проводная (не радио) и пробуй войти в Биос. Твоя задача не запустить винду, а сначала разобраться с Биос-ом. Сейчас отключил абсолютно все, оставил только процессор, одну планку памяти, видео карту и пост карту. И уже минут 15 висит ошибка 50. По поводу входа в bios, как это возможно сделать без клавиатуры?

    Izera696
    Попробуйте заменить батарейку.

    Добавлено через 3 минуты
    Сделайте хорошее обзорное фото материнки.

    Батарейка новая, думал она не рабочая, мультиметр обрадовал что все хорошо. Уточните пожалуйста, обзорное фото в каком плане, возможно необходима конкретная информация?

    Фото как на маркете, но только хорошего качества.

    Добавлено через 1 минуту
    Но батарейку все равно смените.

    Если после перезагрузки с новой батарейкой снова будет все плохо, то нужно менять блок питания - возможно, у него проблемы с дежурным питанием. Решил и правда поставить другой блок питания и снова ошибка 00. Не понимаю что с ней вообще происходит. Izera696
    Это лишь означает неисправность самой материнской платы. Из-за ее возраста диагностика и тем более ее ремонт лишены смысла. Только несколько перезагрузок дали возможность её запустить и теперь снова та самая ошибка не смотря на новую батарейку и совершенно другой блок питания. Я понимаю что в ней есть неисправность, но очень хотелось все же попробовать её устранить и по возможности привести в чувства. Если при перепрошивке Биос-а старый дамп (обычно это должно предлагатся) сохранился, попробуй обратно перешится с флешки со старого. vladj2007,
    Удивительно но после многих попыток что-то сделать сейчас bios сбросился до самой начальной версии и все работает, ошибку убрал с помощи замены бп и немного пошаманил в bios. очень хотелось все же попробовать её устранить и по возможности привести в чувства Купить новый мост NVIDIA nForce 520 и припаять его ( он частично либо умер , либо отвалился от платы) , а заодно сменить все конденсаторы по питанию памяти , процессора ( полимерных у него только 2 и их можно не трогать ) и моста . За 15 с лишним лет жизни ёмкости в них дай бог на половину осталось . Michael666,
    Ремонт будет очень дорогой, но сейчас вроде все завелось и надеюсь будет работать, конденсаторы все новые.

    Проблема с материнской платой ECS A740GM-M (V1.0)
    Всем привет! Столкнулся с такого рода проблемой. Системный блок перестал вообще включаться, грешил.

    Проблема с материнской платой - полосы на экране.
    доброго времени суток! у меня проблема когда ставлю видео на екране появляються полосы ставлю.

    Проблема с материнской платой Asus B85 Plus
    Вообщем народ- дело такое- вчера решил сделать себе апгрейд - докупить ссд на 120 и радоваться.

    Проблема с материнской платой Asus P5LD2-VM
    Всем доброго время суток. У меня материнка Asus P5LD2-VM. 5 лет все работало нормально. Буквально.

    Проблема с материнской платой, компьютер не издает гудка
    Здравствуйте! Компьютер год работал исправно, но в один день при включении не издает гудок и не.

    Читайте также: