Многие компьютеры поддерживают схему, которая называется виртуальной памятью (файл подкачки). Она дает возможность запускать программы, превышающие по объему физическую память компьютера, за счет помещения их на диск и использования оперативной памяти как некой разновидности кэша для наиболее интенсивно исполняемых частей.
ПЗУ - постоянное запоминающее устройство. Оно же память, предназначенная только для чтения, — ROM (ReadOnlyMemory). В отличие от ОЗУ она не утрачивает свое содержимого при отключении питания, то есть является энергонезависимой. ПЗУ программируется на предприятии-изготовителе и впоследствии не подлежит изменению. Эта разновидность памяти характеризуется высоким быстродействием
ПЗУ содержит набор программ:
1) программу первоначальной загрузки компьютера. Программа первоначальной загрузки получает управление после успешного завершения тестов и делает первый шаг для загрузки операционной системы.
2) программу первоначального тестирования компьютера. Эта программа получает управление сразу после включения компьютера. Она проверяет все подсистемы компьютера. В случае обнаружения ошибки или неисправности компьютера отображает на экране соответствующее сообщение;
3) базовую систему ввода-вывода. Она представляет набор программ, используемых для управления основными устройствами компьютера. Базовая система ввода-вывода позволяет отображать на экране компьютера символы и графику, записывать и читать данные с магнитных дисков, печатать на принтере и решать много других важных задач. BIOS может быть обновлена операционной системой в случае обнаружения в BIOS различных ошибок
На материнской плате располагается микросхема, которую называют CMOS-памятью (ComplementaryMetal-Oxid-Semicondactor – технология «комплементарные пары метал-оксид-полупроводник»). Она энергонезависима. Микросхема CMOS-памяти питается от специальной маленькой батарейки или аккумулятора, которые также находятся на системной плате. Эта память содержит:
1) текущую дату и время (значение текущего времени исправно обновляется, даже если компьютер полностью отсоединен от внешнего источника питания);
2) параметры конфигурации компьютера, например количество и тип дисковых накопителей, тип видеоадаптера;
3) диск, с которого загружается ОС.
Некоторые компьютеры хранят в CMOS-памяти пароль, запрашиваемый сразу при включении питания. Задав пароль вы можете ограничить доступ к компьютеру. Вам надо быть очень осторожным при задании пароля. В случае, если вы его забудете вам придется повозиться, чтобы загрузить компьютер. Для удаления пароля и для заполнения CMOS-памяти значениями, принятыми по умолчанию (они хранятся в ПЗУ), можно отключить питание (аккумулятор) от микросхемы часов, содержащей CMOS-память. Однако если аккумулятор расположен непосредственно в микросхеме часов, вам остается только отправить компьютер в ремонт.
После изменения конфигурации компьютера (например после замены видеоадаптера или дисковода), для изменения текущей даты, времени, пароля необходимо обновить содержимое CMOS-памяти. Для этого предназначена специальная программа, часто называемая SETUP-программой или программой установки конфигурации.
Устройства ввода-вывода
Модуль ввода-вывода служит для передачи данных от внешних устройств как в процессор и память, так и в обратном направлении. Устройства ввода-вывода обычно состоят из двух компонентов: самого устройства и его контроллера.
Контроллер – набор микросхем, которые управляют устройством на физическом уровне. Он принимает от операционной системы команды, например, считать данные с помощью устройства, а затем их выполняет. Достаточно часто непосредственное управление устройством очень сложно, поэтому задачей контроллера является предоставление операционной системе простого (но не упрощенного) интерфейса.
Так как все типы контроллеров отличаются друг от друга, для управления ими требуется различное программное обеспечение. Программа, предназначенная для общения с контроллером, выдачи ему команды и воспринятая поступающих от него ответов, называется драйвером устройства. Каждый производитель контроллеров должен поставлять вместе с ними драйверы для каждой поддерживаемой операционной системы.
Для использования драйвера его нужно поместить в операционную систему, предоставив ему тем самым возможность работы в режиме ядра. Существует три способа установки драйвера в ядро.
1. Первый: заново скомпоновать ядро вместе с новым драйвером и затем перезагрузить систему. Многие устаревшие UNIX-системы именно так и работают.
2. Второй: создать запись в специальном файле операционной системы, сообщающую ей о том, что требуется, и затем перезагрузить систему. Во время загрузки операционная система сама находит нужные ей драйверы и загружает их. Именно так и работает система Windows.
3. Третий: динамическая загрузка драйверов — операционная система может принимать новые драйверы в процессе своей работы и оперативно устанавливать их, не требуя для этого перезагрузки. Этот способ ранее использовался довольно редко, но сейчас он получает все большее распространение.
Существуют внешние устройства, работающие по принципу «горячего подключения» (устройства, которые могут быть подключены к компьютеру или отключены от него без необходимости останавливать работу операционной системы и отключать компьютер от источника питания), они всегда нуждаются в динамически загружаемых драйверах.
Ввод и вывод данных можно осуществлять тремя различными способами.
Программируемый ввод-вывод
1) Пользовательская программа производит системный вызов, который преобразуется ядром ОС в программу вызова соответствующего драйвера.
2) Драйвер приступает к процессу ввода-вывода. В это время драйвер выполняет очень короткий цикл, постоянно опрашивая устройство и отслеживая завершение операции (обычно занятость устройства определяется состоянием специального бита).
3) По завершении операции ввода-вывода драйвер помещает данные (если таковые имеются) туда, куда требуется, и возвращает управление.
4) Затем операционная система возвращает управление вызывающей программе.
Недостаток такого способа заключается в том, что он загружает процессор опросом устройства об окончании работы.
Ввод-вывод с использованием прерываний
1) Драйвер запускает устройство и просит его выдать прерывание по окончании выполнения команды (завершении ввода или вывода данных). Прерывание - сигнал, сообщающий процессору о наступлении какого-либо события.
2) Сразу после этого драйвер возвращает управление ОС.
3) Затем операционная система блокирует вызывающую программу, если это необходимо, и переходит к выполнению других задач.
4) Когда контроллер обнаруживает окончание передачи данных, он генерирует прерывание, чтобы сообщить о завершении операции.
Прямой доступ к памяти
Используется специальный контроллер прямого доступа к памяти (DMA, DirectMemoryAccess). Когда надо прочитать или записать блок данных, то:
1) Процессор посылает модулю DMA следующую информацию:
a. что надо выполнить – чтение или запись;
b. адрес устройства ввода-вывода;
c. сколько байт требуется передать.
2) Затем процессор прекращает работу.
3) Модуль DMA передает весь блок данных в память или из нее, не задействуя процессор.
4) Когда модуль DMAзавершает работу, то он генерирует прерывание, чтобы сообщить процессору об окончании работы.
Таким образом, процессор задействован только в начале и конце передачи данных.
Загрузка компьютера
В кратком изложении загрузка компьютера на базе процессора Pentium происходит следующим образом. У каждого компьютера Pentium есть материнская плата (системная). На материнской плате находится программа, которая называется базовой системой ввода-вывода — BIOS (BasicInputOutputSystem). BIOS содержит низкоуровневое программное обеспечение ввода-вывода, включая процедуры считывания состояния клавиатуры, вывода информации на экран и осуществления, ко всему прочему, дискового ввода-вывода.
При начальной загрузке компьютера BIOS начинает работать первой. Сначала она проверяет объем установленной на компьютере оперативной памяти и наличие клавиатуры, а также установку и нормальную реакцию других основных устройств.
Все начинается со сканирования шин с целью определения всех подключенных к ним устройств. Эти устройства регистрируются. Если присутствующие устройства отличаются от тех, которые были зарегистрированы в системе при ее последней загрузке, то производится конфигурирование новых устройств.
Затем BIOS определяет устройство, с которого будет вестись загрузка, по очереди проверив устройства из списка, сохраненного в CMOS-памяти. Пользователь может внести в этот список изменения, войдя сразу после начальной загрузки в программу конфигурации BIOS. Обычно делается попытка загрузки с гибкого диска, если, конечно, он присутствует в системе. В случае неудачи идет запрос к приводу компакт-дисков и проверяется наличие в нем загрузочного диска. Если отсутствует и гибкий, и компакт-диск, система загружается с жесткого диска. С загрузочного устройства в память считывается первый сектор, а затем выполняется записанная в нем программа. Обычно эта программа проверяет таблицу разделов, которая находится в конце загрузочного сектора, чтобы определить, какой из разделов имеет статус активного. Затем из этого раздела считывается вторичный загрузчик, который в свою очередь считывает из активного раздела и запускает операционную систему.
После этого операционная система запрашивает BIOS, чтобы получить информацию о конфигурации компьютера. Для каждого устройства она проверяет наличие драйвера.