Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Загрузка ОС и прикладных программ



Последним шагом программы POST является выполнение процедуры началь­ной загрузки (bootstrap loader), которая вызывается как программное прерыва­ние Int 19h BIOS (см. 5.2). Ее задача довольно скромная — с выбранного уст­ройства загрузить в память один блок (сектор) данных, и если он похож на загрузчик — передать ему управление. Напомним, что «передать управление» оз­начает выполнить инструкцию перехода на адрес точки входа в программу, за­груженную в оперативную память. На этом деятельность POST заканчивается, и компьютер отдается во власть загружаемому ПО.

Процедура определяет первое готовое устройство из списка разрешенных и доступных загрузочных устройств. Загрузочным устройством может быть НГМД, жесткий диск, диск LS-120, CD/DVD, флэш-память, сетевой адаптер. Список устройств, разрешенных для загрузки, а также порядок их опроса зада­ются параметрами CMOS Setup. При традиционном порядке опроса (А, С) сна­чала анализируется готовность НГМД попыткой прочитать загрузочную запись дискеты — первый сектор нулевой дорожки. Если дискета отсутствует (при этом дисковод не может прочитать никаких данных), то процедура переходит к попытке чтения главной загрузочной записи жесткого диска С. Если сектор с дискеты прочитать удалось, то по определенному признаку в его содержимом процедура определяет, имеется ли в нем загрузчик ОС. Если загрузчик имеется, то ему передается управление для загрузки операционной системы. Если в счи­танном секторе загрузчик не обнаружен, то компьютер останавливается с сооб­щением Non-system disk or disk error (несистемный диск или ошибка чтения), после которого остается лишь установить системную дискету или, наоборот, извлечь дискету и сделать «комбинацию из трех пальцев» — нажать клавиши Ctrl+Alt+Del. Это приведет к повторному запуску теста POST, но в сокращенном варианте, который завершится вызовом прерывания Int 19h — следующей по­пыткой загрузки. Такой способ перезапуска (перезагрузки) называется «теп­лым» (warm). Повторный запуск POST можно выполнить и «холодным» (cold) способом, нажав кнопку Reset, но при этом POST будет выполняться полно­стью, как после включения питания, что несколько дольше.

Загрузка с жесткого диска (в нашем случае — если не обнаружена готовность НГМД) тоже начинается с попытки чтения первого сектора нулевой головки нулевого цилиндра, но здесь ищется главный загрузчик, или главная загрузоч­ная запись (Master Boot Record, MBR), с таблицей разделов диска (см. 9.6). Этот загрузчик должен найти описатель активного раздела, загрузить в память его первый сектор и, убедившись в том, что в нем находится загрузчик ОС, пе­редать ему управление. Загрузчик ОС и должен загрузить операционную систе­му из выбранного (активного) раздела в память и передать ей управление. Главный загрузчик может являться и средством для выбора загружаемой ОС (boot manager) по желанию пользователя (из меню). На пути этого двухступен­чатого загрузчика могут встречаться различные препятствия: не окажется MBR на штатном месте, не найдется описатель активного раздела, не найдется загруз­чик в том секторе, который посчитали первым сектором активного раздела. Не­приятности могут быть и у самого загрузчика ОС — он может не найти файлов, требуемых для загрузки ОС (это относится и к загрузчику дискеты). Наконец, может оказаться физически невозможным чтение какого-либо из требуемых секторов. Все эти препятствия отражаются соответствующими консольными сообщениями и приводят к остановке компьютера, после которой его можно пе­резапустить только «теплым» или «холодным» способом. Подробнее процедура загрузки описана в 5.2. Главный з&грузчик универсален для всех операционных систем. Загрузчики активных разделов, как и загрузчик на дискете, ориентиро­ваны на загрузку только своих операционных систем. Если загрузчику не уда­ется найти и загрузить файлы ОС, он, скорее всего, остановит компьютер с со­общением вида Missing Operation System (отсутствует операционная система). Раньше был шанс встретить машину, которая при невозможности загрузки ОС запускает интерпретатор языка BASIC, «зашитый» в ее ПЗУ. И сейчас некоторые компьютеры при невозможности загрузки ОС «жалуются» на отсутствие интерпретатора BASIC, но и его присутствие дело бы не улучшило. Заметим также, что загрузчики проверяют то, что они загружают, весьма условно, так что возможна нештатная ситуация, когда под видом очередного фрагмента за­грузчика или файлов ОС загружаются бессмысленные (в данном контексте) данные и этому загруженному «мусору» передается управление. В этом случае компьютер, скорее всего, «зависнет» безо всяких сообщений (а может и вывес­ти на консоль абракадабру), и остается лишь попытаться его перезагрузить — возможно, с другого устройства. Такое поведение компьютера может быть при­знаком неисправного ОЗУ, дисковода и его контроллера, а также шин, их со­единяющих.

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

Как уже отмечалось, последовательность опроса устройств, с которых делается попытка загрузки операционной системы, задается параметрами CMOS Setup. «Классической» является последовательность А, С, и в старых компьютерах не было способа ее изменения. Позже появилась возможность ее изменения на об­ратную (С, А), а затем в нее стали включать и CD-ROM, и новые устройства LSI20, и флэш-память, и даже обнаруженные устройства удаленной загрузки (Remote Program Loader, RPL), позволяющие загружать ОС по сети. Если пер­вое по порядку загрузочное устройство не готово (не установлен сменный диск, на жестком диске нет активного раздела), то процедура обращается к следую­щему по списку устройству. Таким образом, современные компьютеры могут загружаться не только с первого жесткого диска (С), но и с другого, если на нем имеется активный раздел. Правда, активизировать раздел с помощью утилиты FDISK, как это обычно и делается, можно только на первом физическом жест­ком диске (таково ее ограничение), так что для этого приходится временно пе­реставлять устройства. Механизм упорядочивания начальной загрузки подроб­нее рассмотрен в 5.2.

Для регулярной работы попытка загрузки с гибкого диска вредна по ряду при­чин, самой безобидной из которых является то, что на опрос готовности нако­пителя затрачивается излишнеевремя. Хуже то, что случайно оставленная в на­копителе дискета может содержать вирус в загрузочном секторе, и попытка загрузки с такой дискеты, даже если на ней нет операционной системы, пере­даст управление коду этого вируса. При незагруженной операционной системе вирусу аккуратно залезть в файловую систему затруднительно, но поселиться в загрузочном секторе жесткого диска (ищется легко — «первое место в первом ряду») он не поленится. Дальнейшее развитие событий зависит от злобности вируса и опытности пользователя (пока операционную систему не загрузили, этот вирус из загрузчика не вылезет). Запрет попытки загрузки с дискеты слу­жит и средством защиты от несанкционированного доступа к данным. Если за­грузка операционной системы закрыта паролем, а разрешена загрузка с диске­ты, то, загрузив операционную систему, взломщик получит программный доступ к жесткому диску — по крайней мере, на физическом уровне. При задан­ной последовательности С, А загрузчик активного раздела жесткого диска не допустит передачи управления загрузчику с дискеты. Конечно, если изменение последовательности производится в целях защиты от несанкционированного доступа, вход в CMOS Setup также нужно закрыть паролем.

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

Приложения и утилиты располагаются в виде файлов на устройствах внешней памяти — локальных и сетевых дисках или иных устройствах хранения. Поль­зователь запускает интересующие его приложения, указывая имя требуемой программы (или командного файла) с клавиатуры в ответ на приглашение (prompt) ОС или же «щелкая» на представляющем его значке. В однозадачных системах (типа MS-DOS) приложения запускаются поочередно: следующее приложение может запускаться только после завершения работы предыдущего. Правда, можно запускать еще так называемые резидентные программы — после запуска часть их программного кода и требуемая область данных «поселяются» в оперативной памяти, и ОС выдает приглашение для ввода очередной коман­ды пользователя. Резидентные программы часто обозначают как TSR (Termi­nate and State Resident — завершить, оставив резидентно) по названию соответ­ствующего сервиса DOS. Резидентными могут быть, например, программа фоновой печати, перекодировщик клавиатуры, калькулятор, отладчик, антиви­русная программа и др. Резидентные программы «съедают» некоторый объем оперативной памяти, и программам, загружаемым после них, может не хватить свободной оперативной памяти. В ряде случаев резидентные программы удает­ся разместить вне дефицитной стандартной памяти (см. 4.2). Управление рези­дентным программам передается по каким-либо событиям: аппаратным пре­рываниям (от устройств или таймера), вызовам определенных сервисов DOS или BIOS. Процессы в однозадачных системах могут быть и вложенными — одно приложение, не будучи завершенным, может загрузить дочернее приложение и передать ему управление. В свою очередь, и дочернее приложе­ние может быть родительским процессом для следующего вложенного. По за­вершении дочернего процесса управление возвращается родительскому процес­су, так что активным все-таки является лишь один процесс. Возможности порождения процессов ограничиваются и малым объемом стандартной памяти, предоставляемой в распоряжение программам.

В многозадачных системах (Windows, Unix, Linux) одновременно могут запус­каться множество программ (процессов), и они могут работать псевдопарал-лельно (см. 7.1). Если процессоров (физических или логических, см. 7.5) не­сколько и используется ОС с мультипроцессорной поддержкой, то процессы будут работать действительно параллельно. Многозадачные системы работают в защищенном режиме процессора и используют виртуальную память, что по­зволяет всем запущенным процессам расходовать даже больше оперативной па­мяти, чем реально установлено. Конечно же, в этих системах можно запускать и резидентные программы (процессы), а также порождать дочерние процессы.

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

По окончании работы современные ОС тоже требуют корректного закрытия (shutdown) — завершения работы приложений и сохранения информации, не­обходимой пользователю и операционной системе, на энергонезависимых носи­телях (на диске). Только после этого компьютер можно выключать или выпол­нять «теплый» или «холодный» перезапуск. «Комбинация из трех пальцев» (Ctrl+Alt+Del) для старых ОС (типа MS-DOS), как правило, безусловно приво­дит к «теплому» перезапуску компьютера с потерей всех несохраненных дан­ных. Правда, программы могут перехватить обработчик прерывания Int 19h и предложить пользователю подтвердить свои намерения. В ОС защищенного режима неуместный перезапуск чреват неприятностями, и комбинация Ctrl+Alt Del обычно вызывает запрос о намерениях пользователя с предупреждением о возможных последствиях. Сервер ОС NetWare вообще игнорирует эту комби­нацию. Если выключить или сбросить (в смысле нажать кнопку Reset) компью­тер до завершения работы ОС, могут появиться проблемы при последующей за­грузке: потеря несохраненных пользовательских данных или системных настроек, потеря фрагментов дисковой памяти (кластеров) и даже разрушение ОС, требующее ее переустановки. Компьютеры в конструктиве АТХ (и ВТХ), а также портативные умеют сами выключать питание по завершении работы ОС, что упрощает правила поведения пользователя.

В старых ОС (MS DOS) «комбинация из трех пальцев» (Ctrl+Alt+Del) может приводить к малоприятным «чудесам», если используются контроллеры дисков или сетевые карты с прямым управлением шиной PCI или ISA. «Чудеса» обу­словлены тем, что при «теплом» перезапуске не вырабатывается сигнал аппа­ратного сброса устройств, и мастер шины будет продолжать обмен данными ме­жду своим устройством и областью памяти, на которую он был предварительно «нацелен». Однако при перезагрузке в этой области могут оказаться уже совер­шенно не те данные. Если мастер выполняет запись в память (чтение диска или прием кадра из сети), неожиданные данные могут затереть область памяти, от­веденную для других целей. Последствия могут быть различными — некоррект­ная работа какой-либо загруженной программы, «зависание» и т. п. Если мас­тер выполняет чтение памяти (запись на диск или передачу кадра в сеть), то он может послать не те данные. В случае записи на диск последствия могут быть катастрофическими, если, например, на диск вместо таблицы размещения фай­лов запишется случайная информация. Передача ложных данных в сеть тоже нежелательна.

«Засыпание» и «пробуждение» компьютера

В работе персонального компьютера после загрузки ОС и запуска приложений часто возникают довольно длительные паузы (когда пользователь отвлекается на свои дела). В это время вхолостую расходуются электроэнергия (выделяется тепло), а также жизненные ресурсы некоторых устройств (например, зря выго­рает люминофор монитора). Чтобы сократить эти напрасные потери, уже давно в компьютер ввели средства управления энергопотреблением (power manage­ment), а затем и улучшили их, обеспечив расширенное управление энергопо­треблением АРМ (Advanced Power Management). Цель АРМ — переводить в «спящее» состояние (sleep) устройства, не требующиеся для работы в данный момент, и «будить» их (wake up) по первому требованию, по возможности неза­метно для приложений и пользователей. Менеджер АРМ представляет собой часть системного ПО (BIOS и ОС), для работы ему требуется поддержка со стороны устройств. В спячку разные устройст ваможно вводить по-разному: у монитора можно погасить лучи и даже остановить генераторы развертки, у винчестера — остановить шпиндель, у процессора — остановить внутреннее тактирование или понизить эффективную тактовую частоту, память можно пе­ревести в режим саморегенерации. С самого начала подобие спячки применяют для НГМД — мотор останавливается, если в течение 2 с нет обращений к диске­те. Заснувшее устройство должно реагировать на свои интерфейсные сигналы, чтобы проснуться по сигналу от АРМ или по команде обычного обращения. В спящий режим устройства могут переходить по таймерам, отсчитывающим время от последнего обращения, прекращения активности пользователя (отсут­ствия сигналов от устройств ввода), а также по команде пользователя. Пробуж­дение системы выполняется по какому-либо внешнему событию — нажатию клавиши на клавиатуре (или специальной кнопки на системном блоке), движе­нию мыши, специальному обращению по локальной сети (wake on LAN) или телефонному вызову модема. Конечно же, пробуждение устройства занимает некоторое время, требующееся на разгон двигателя, нагрев трубки монитора и тому подобные операции, и первое обращение к заснувшему устройству вы­полняется относительно долго. Иногда это просто раздражает темпераментного пользователя, а в ряде случаев может приводить к неприятным последствиям. Например, при записи компакт-дисков (CD-R и CD-RW), которую в произ­вольный момент прерывать нельзя (испортится болванка), засыпание источни­ка данных (винчестера или привода CD-ROM) неуместно. Пользователи, не желающие возиться с настройкой АРМ (установкой параметров CMOS Setup и ОС), часто просто запрещают работу АРМ, в результате их компьютер всегда готов к работе, но, возможно, потребляет больше энергии, чем необходимо. Во­прос энергосбережения стоит особо остро для мобильных (блокнотных) ПК при питании от аккумуляторов. Помимо энергопотребления, АРМ снижает шум работающего компьютера: шумят вентиляторы блока питания, процессора и видеокарт; шумят винчестеры и приводы CD и DVD, особенно высокоскоро­стные. Если охлаждаемые устройства переходят в энергосберегающий режим, то можно снизить и скорость вращения вентиляторов, а следовательно, и их шум. Современные винчестеры позволяют регулировать уровень шума: появляется выбор между быстрой, но шумной работой и тихой, но менее производительной.

В плане управления потреблением различают следующие состояния устройств (в порядке «углубления сна»):

On — активная (нормальная) работа, полное потребление, максимальная
производительность;

Standby — отключение питания некоторых узлов, с возможностью быстрого
(порядка секунды) перехода в активное состояние;

Suspend — более глубокое отключение (например, строчной развертки и на­
кала трубки монитора), выход из которого (resume) требует единиц — десят­
ков секунд;

Off — отключение питания всех узлов, кроме цепей, обеспечивающих после­
дующее включение по команде.

Для ряда устройств (в том числе процессоров) применяют и иные названия со­стояния, например sleep (сон) и deep sleep (глубокий сон). Для других уст­ройств применимо понятие уровня активности (АРМ level), который выражает­ся численно: 0 — минимальное потребление, 255 — максимальная активность. Кроме того, имеется состояние механического отключения, когда устройство обесточено механическим выключателем и никакой менеджер АРМ его уже не включит.

Конечно, самый тихий и холодный компьютер — выключенный, но его «пробу­ждение» (включение) требует загрузки ОС и приложений, которые, по мере технического прогресса, требуют все больше времени на разгрузку. В принципе, можно процесс загрузки обойти, для чего достаточно сохранить все содержимое ОЗУ, а также содержимое всех регистров процессора и внутренних регистров (буферов памяти) всех устройств, например, на жестком диске. После этого можно обесточить компьютер, а по включении быстро восстановить запомнен­ное состояние и продолжить работу с точки останова. Такой способ «усыпления» называется «зимней спячкой» {hibernate), при этом сохранение и восста­новление состояния компьютера занимает всего десятки секунд. Приложения, работа которых была приостановлена, продолжают работу с того места, в кото­ром были остановлены. В принципе, пользоваться таким способом выключения компьютера можно сколь угодно большое число раз, но на практике периодиче­ски приходится перезагружать ОС и приложения «по-честному». К этому вы­нуждают и сбои работы ОС и приложений, и накапливающиеся «отходы» памяти, которые не всегда могут быть использованы до перезагрузки. Для под­страховки перед усыплением компьютера рекомендуется все-таки явно сохра­нять пользовательские файлы на диске — риск невозможности восстановления состояния после включения хоть и невелик, но есть. Менее радикальный спо­соб «усыпления», называемый Standby, сводится к остановке винчестеров, вы­ключению дисплея, максимальному торможению процессора и всех остальных устройств. При этом состояние подсистем компьютера сохраняется, но на своих местах (данные остаются в памяти, регистрах процессора и всех устройств). Пе­реход в нормальный режим происходит гораздо быстрее (время уходит только на раскрутку диска и на прогрев монитора, и то если он традиционный элек­тронно-лучевой). Однако в таком состоянии компьютер все-таки потребляет заметную мощность, вентилятор настольного ПК продолжает работать. Надеж­ность сохранения состояния получается ниже: провал (скачок) питания, толч­ки, способные нарушить контакт в модулях памяти или карт расширения, и прочие возмущения могут привести к потере состояния (впрочем, как и в нормальном рабочем режиме).

Идею быстрого доступа к ПК продвигают Microsoft и Intel, выступая с инициа­тивами OnNow PC (можно перевести как «PC всегда готов») и Instantly Avai­lable PC. Эти идеи отражены в спецификациях РС99 и РС2001, и для управле­ния питанием требуется спецификация ACPI (Advanced Configuration and Power Interface — расширенный интерфейс конфигурирования и питания). Спецификация ACPI представляет собой описание довольно сложной комби­нации функций, часть из которых раньше возлагалась на относительно незави­симые системы РпР (в части конфигурирования) и АРМ. Этот интерфейс дол­жен по возможности разумно управлять питанием различных подсистем. Если раньше управляли лишь потреблением монитора, винчестера и процессора (приостанавливая синхронизацию), то теперь могут «останавливаться» и опе­ративная память, и любые отдельные подсистемы, не используемые в данный момент времени. Система и устройства в «спящем» состоянии должны казаться выключенными — не шуметь, не мигать индикаторами, но иметь индикатор ре­жима. Включение-выключение питания должно быть программно-управляе­мым. Система должна уметь «засыпать» (sleep state) и программно отключать­ся (soft off)- «Просыпаться» она должна по нажатию кнопки, внешнему сигналу от периферийного устройства (в том числе и на шине USB) или по заранее спланированному расписанию. Эта возможность может потребоваться, напри­мер, для автоматического запуска в ночное время утилит обслуживания дисков (дефрагментации), загрузки почты и т. п. Система должна иметь таблицу, опи­сывающую методы управления всеми устройствами и шинами. В рамках ACPI требуется и контроль терморежима с управлением вентиляторами. Управление засыпанием и пробуждением может выполняться как от специальных кнопок на системном блоке, так и от специальных клавиш на клавиатуре. Кнопка-вы­ключатель питания, используемая в современных системных блоках (АТХ) вместо механического выключателя, через CMOS Setup может быть запрограм­мирована на управление «спячкой».

Система управления потреблением настраивается параметрами CMOS Setup (раздел Power Management), а также средствами современных ОС, включая Win­dows 9х/200х/ХР. Основной аппаратной базой управления являются систем­ная плата и BIOS, поддерживающие спецификацию ACPI (а прежде АРМ). Возможность программного включения обеспечивает «дежурный» (standby) источник блока питания АТХ; также важна поддержка АРМ и ACPI перифе­рийными устройствами. Для быстрого запуска со стороны BIOS предусматри­вается сокращение времени выполнения начального теста POST — подробное тестирование может выполняться лишь при обнаружении проблем во время предыдущей загрузки. Время от включения до начала загрузки ОС стремятся сократить до нескольких секунд; правда, процесс может затянуться медленно запускаемыми дисками или необходимостью инициализации всего объема ОЗУ при обнаружении и коррекции ошибок (ЕСС). В BIOS должна быть возмож­ность отключить визуализацию теста POST — тогда после включения ПК, если все в порядке, пользователь сразу увидит любимую заставку загружаемой им ОС.

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.