Читать книгу Операционные системы - А. Ю. Кручинин - Страница 4

1 Начальные сведения об операционных системах
1.4 Обзор аппаратного обеспечения компьютера

Оглавление

Операционная система тесно связана с оборудованием компьютера, на котором она должна работать. Аппаратное обеспечение влияет на набор команд операционной системы и управление его ресурсами. Концептуально простой компьютер можно представить в виде модели, показанной на рисунке 1 [14]. Такая структура использовалась на первых моделях IBM PC.


Рисунок 1 – Некоторые компоненты персонального компьютера


На рисунке центральный процессор, память, устройства ввода-вывода соединены системной шиной, по которой они обмениваются информацией.

Процессор

«Мозгом» компьютера является центральный процессор (CPU – Central Processing Unit). Он выбирает из памяти команды и выполняет их. Обычный цикл работы процессора выглядит так: читается первая команда из памяти, декодируется для определения ее типа и операндов, выполняет команду, затем считывает, декодирует последующие команды. Таким образом осуществляется выполнение программ.

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

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

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

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

Память

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

Система памяти конструируется в виде иерархии слоев [13], которые иллюстрируются на рисунке 2. По мере продвижение по иерархии сверху вниз возрастают два параметра: время доступа, объём памяти.

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

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


Рисунок 2 – Иерархическая структура памяти


Далее следует оперативная память ОЗУ (RAM – Random Acces Memory или память с произвольным доступом) – главная рабочая область запоминающего устройства машины. Все запросы CPU, которые не могут быть выполнены кэшпамятью, поступают для обработки в ОЗУ. Объёмы от сотен мегабайт до нескольких гигабайт. Время доступа – десятки наносекунд.

Следующим идёт магнитный диск. Дисковая память на два порядка дешевле ОЗУ в пересчете на бит и на два порядка больше по величине. У диска есть одна проблема – случайный доступ к данным на нем занимает примерно на три порядка больше времени. Причиной низкой скорости жестких дисков (HDD) является то, что диск представляет собой механическую конструкцию. Он состоит из одной или нескольких металлических пластин, вращающихся с определенными скоростями, например 7200 об/мин. Объёмы дисков сейчас стремительно растут, в продаже для большинства пользователей находятся диски с сотнями гигабайт. Время доступа – не менее 10 мкс.

Магнитная лента часто используется для создания резервных копий HDD или для хранения очень больших наборов данных. Сейчас, конечно редко, где можно встретить применение магнитных лент, но всё же они ещё не вышли из употребления. К уровню магнитной ленты также можно отнести CD, DVD диски и флэш-память. Время доступа измеряется секундами.

Кроме описанных видов, в компьютерах есть небольшое количество постоянной памяти с произвольным доступом. В отличие от RAM, она не теряет свое содержимое при выключении питания. Она называется ПЗУ или ROM. ПЗУ программируется в процессе производства и после этого его содержимое нельзя изменить. Эта память достаточно быстра и дешева. Программы начальной загрузки компьютера, используемые при запуске, находятся в ПЗУ. Кроме этого, некоторые карты ввода-вывода содержат ПЗУ для управления низкоуровневыми устройствами. Вид памяти, называемый CMOS, является энергозависимым. CMOS используется для хранения текущей даты, времени и конфигурационных параметров, например, указания, с какого жесткого диска производить загрузку. Эта память потребляет энергию от установленного аккумулятора.

Устройства ввода-вывода

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

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

Следующей частью является само устройство. Устройства имеют достаточно простые интерфейсы, потому что их возможности невелики и их нужно привести к единому стандарту. Единый стандарт необходим, например чтобы каждый IDE контроллер диска (Integrated Drive Electronics) мог управлять любым IDE диском. IDE интерфейс является стандартным для дисков на компьютерах с процессором Pentium, а также на других компьютерах. Так как настоящий интерфейс устройства скрыт с помощью контроллера, то операционная система видит только интерфейс контроллера, который может сильно отличаться от интерфейса самого устройства.

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

• заново скомпоновать ядро вместе с новым драйвером и затем перезагрузить операционную систему (так работает множество операционных систем Unix);

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

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

Ввод-вывод данных можно осуществлять тремя различными способами [14].

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

• Драйвер запускает устройство и просит его выдать прерывания по окончании ввода-вывода; после этого драйвер возвращает управление операционной системе, и она начинает выполнять другие задания. Когда контроллер обнаруживает окончание передачи данных, он генерирует прерывание о завершении операции. Процесс ввода-вывода, использующий прерывания, состоит из четырех шагов (Рисунок 3). На первом шаге драйвер передает команду контроллеру, записывая информацию в регистры устройств. Затем контроллер запускает устройство. Когда контроллер заканчивает чтение или запись того количества байтов, которое ему было указано передать, он посылает сигнал микросхеме контроллера прерываний, используя определенные провода шины. Это шаг второй. На третьем шаге если контроллер прерываний готов к обработке прерываний, то он подает сигнал на определенный контакт CPU, информируя его таким образом. На четвертом шаге контроллер прерываний вставляет номер устройства на шину, чтобы центральный процессор мог узнать, какое устройство завершило работу.

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


Рисунок 3 – Действия, выполняемые при запуске устройства ввода-вывода и получении прерывания


Шины

Из-за роста быстродействия процессора и памяти, в систему добавились дополнительные шины как для ускорения общения устройств ввода-вывода, так и для пересылки данных между процессором и памятью. На рисунке 4 приведена схема вычислительной системы первых Pentium.

В этой системе 8 шин (шина кэша, локальная шина, шина памяти, PCI, SCSI, USB, IDE, ISA), каждая со своей скоростью передачи данных и своими функциями. В операционной системе для управления компьютером должны находиться сведения обо всех этих шинах.

Центральный процессор по локальной шине передает данные микросхеме PCIмоста, – который в свою очередь обращается к памяти по выделенной шине. Система Pentium I имеет кэш первого уровня (L1) встроенный в процессор и намного больший кэш второго уровня (L2), подключенный к процессору отдельной шиной кэша. Шина IDE служит для присоединения периферийных устройств к системе (CD-ROM, жесткий диск).


Рисунок 4 – Структура системы Pentium


Шина USB (Universal Serial Bus) предназначена для присоединения к компьютеру дополнительных устройств ввода-вывода, таких как клавиатура, мышь, принтер, флэш-память и т.д. С течением времени появляются и добавляются новые более быстрые шины.

Операционные системы

Подняться наверх