Главный параметр этих систем – время. В системах управления промышленным процессом необходимо четко синхронизировать время работы конвейера, различных промышленных роботов. Это жесткая система реального времени. Есть и гибкие системы реального времени – в ней допустимы пропуски сроков выполнения операции, например мультимедийные системы. К операционным системам реального времени относятся VxWorks и QNX.
Встроенные операционные системы
К ним относятся операционные системы «карманных компьютеров» PDA (Personal Digital Assistant – персональный цифровой помощник). Кроме того, встроенные системы работают на машинах, в телевизорах, мобильных телефонах. В этих операционных системах обычно присутствуют все характеристики операционных систем реального времени с ограничением памяти, мощности и т.п. Примеры систем – PalmOS, Windows CE.
Операционные системы для смарт-карт
Смарт-карта – устройство размером с кредитную карту, содержащее центральный процессор. На такие системы налагаются жесткие ограничения по мощности и памяти. Некоторые управляют только одной операцией – электронным платежом к примеру. Отдельные смарт-карты включают в себя поддержку виртуальной машины Java.
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, а также на других компьютерах. Так как настоящий интерфейс устройства скрыт с помощью контроллера, то операционная система видит только интерфейс контроллера, который может сильно отличаться от интерфейса самого устройства.