Общие определения
Системный уровень является переходным. Программы этого уровня обеспечивают взаимодействие других программ компьютера с программами базового уровня и непосредственно с аппаратным обеспечением. От программ этого уровня зависят эксплуатационные показатели всей вычислительной системы. При подсоединении к компьютеру нового оборудования на системном уровне должна быть установлена программа, обеспечивающая для остальных программ взаимосвязь с устройством. Конкретные программы, предназначенные для взаимодействия с конкретными устройствами, называют драйверами.
Другой класс программ системного уровня отвечает за взаимодействие с пользователем. Благодаря ему можно вводить данные в вычислительную систему, руководить ее работой и получать результат в удобной форме. Это средства обеспечения пользовательского интерфейса, от них зависит удобство и производительность работы с компьютером.
Совокупность программного обеспечения системного уровня образует ядро операционной системы компьютера.
Операционная система (ОС) – это комплекс программ, обеспечивающих:
· управление ресурсами, т.е. согласованную работу всех аппаратных средств компьютера;
· управление процессами, т.е. выполнение программ, их взаимодействие с устройствами компьютера, с данными;
· пользовательский интерфейс, т.е. диалог пользователя с компьютером, выполнение определенных простых команд-операций по обработке информации.
Операционная система имеет машинно-зависимое ядро (kernel) – небольшой набор программ, с помощью которых осуществляется более эффективное управление ЭВМ конкретного типа (семейство ЭВМ, тип процессора, конкретные аппаратные компоненты ЭВМ и внешние устройства). Наличие ядра операционной системы – это первое условие для возможности практической работы пользователя с вычислительной системой. Ядро операционной системы выполняет следующие функции: управление памятью, процессами ввода-вывода, файловой системой, организацию взаимодействия и диспетчеризацию процессов, учет использования ресурсов, обработку команд и т.д.
Остальные программы операционной системы стараются делать максимально независимыми от конкретной ЭВМ. Свойство программы, позволяющее переносить её без переделок с одной ЭВМ на другую, называется переносимостью (portability). Если программа является машинно-зависимой, то её переносимость определяется степенью совместимости ЭВМ. Переносимость программ имеет прямое влияние на коммерческие возможности программных продуктов.
Пользовательский и программный интерфейсы
Для упрощения доступа к ресурсам ЭВМ операционные системы поддерживают пользовательский и программный интерфейсы (рис. 6.2).
Рис. 6.2. Интерфейсы операционной системы
Пользовательский интерфейс (user interface)] – это набор команд и сервисных услуг, которые упрощают пользователю работу с ЭВМ.
Программный интерфейс (program interface) – это набор процедур, которые упрощают для программиста управление ЭВМ.
Процессорное время и организация памяти
Для организации многозадачного режима операционная система должна некоторым образом распределять время работы процессора между одновременно работающими программами. Обычно используется так называемый вытесняющий режим многозадачной работы. При вытесняющем режиме каждая программа непрерывно работает в течение строго определённого промежутка времени кванта времени, по истечении которого процессор переключается на другую программу. Так как квант времени очень небольшой, то при достаточной производительности процессора создаётся иллюзия одновременной работы всех программ.
Одной из главных задач операционной системы является управление памятью. Когда основной памяти не хватает, все данные, которые не используются в данный момент, записываются в особый файл подкачки. Память, представленная файлом подкачки, называется внешней страничной памятью (external page storage). Совокупность основной и внешней страничной памяти называется виртуальной памятью (virtual memory). Однако для программиста виртуальная память выглядит как единое целое, то есть рассматривается как неупорядоченный набор байтов. В этом случае говорят, что используется линейная адресация памяти.
Структура операционной системы
Современные операционные системы, как правило, имеют многоуровневое строение (рис. 6.3). Непосредственно с аппаратурой работает ядро операционной системы. Ядро (kernel) – это программа или совокупность связанных программ, которые используют аппаратные особенности ЭВМ. Таким образом, ядро является машинно-зависимой частью операционной системы.
Рис. 6.3. Уровни операционной системы
Ядро определяет программный интерфейс. На втором уровне находятся стандартные программы операционной системы и оболочка, которые работают с ядром и предоставляют пользовательский интерфейс. Программы второго уровня стараются делать машинно-независимыми. В идеале замена ядра равнозначна замене версии операционной системы.
Файловая система
Любые данные хранятся во внешней памяти ЭВМ в виде файлов. Файлами нужно управлять: создавать, удалять, копировать, изменять и др. Такие средства пользователю в виде пользовательского и программного интерфейсов предоставляет операционная система. Способ организации файлов и управления ими называется файловой системой (file system). Файловая система определяет, например, какие символы могут использоваться для имени файла, каков максимальный размер файла, каково имя корневого каталога и др. Способ организации файлов влияет на скорость доступа к нужному файлу, на безопасность хранения файлов и др.
Одна и та же операционная система может работать одновременно с несколькими файловыми системами. Как правило, функции файловой системы реализуются средствами ядра операционной системы.
Файловая система может быть реализована в виде драйвера, с которым через операционную систему общаются все программы, читающие или записывающие информацию на внешние устройства.
Файловая система может включать в себя средства безопасности хранения информации. Например, файловая система NTFS имеет средства автоматического исправления ошибок и замены дефектных секторов. Специальный механизм отслеживает и фиксирует все действия, выполняемые над магнитными дисками, поэтому в случае сбоя целостность информации восстанавливается автоматически. Кроме этого, файловая система может иметь средства защиты информации от несанкционированного доступа.
Защита информации
Защита информации – это очень большая проблема. В рамках работы операционной системы под защитой информации подразумевается обеспечение целостности информации и защита от несанкционированного доступа. Обеспечение целостности возлагается в основном на файловую систему, а защита от несанкционированного доступа – на ядро. Обычным механизмом такой защиты является использование паролей и уровней привилегий. Для каждого пользователя определяются границы доступа к файлам и приоритетность его программ. Наивысший приоритет имеет системный администратор.
Сетевые средства и распределённые системы
Составной частью современных операционных систем являются средства, которые позволяют связываться через вычислительную сеть с приложениями, работающими на других ЭВМ. Для этого операционная система решает в основном две задачи: обеспечения доступа к файлам на удалённых ЭВМ и возможности запуска программы на удалённой ЭВМ.
Первая задача наиболее естественно решается с помощью использования так называемой сетевой файловой системы (network file system – NFS), которая организует работу пользователя с удалёнными файлами так, как будто эти файлы находятся на магнитном диске самого пользователя.
Вторая задача решается с помощью механизма вызова удалённой процедуры (remote procedure call – RPC), который реализуется средствами ядра и также скрывает от пользователя разницу между локальными и удалёнными программами.
Наличие средств для управления ресурсами удалённых ЭВМ является основой для создания распределённых вычислительных систем. Распределённая вычислительная система (distributed computer system) – это совокупность нескольких связанных ЭВМ, работающих независимо, но выполняющих общее задание. Такую систему можно рассматривать как многопроцессорную.
Модель «клиент-сервер»
Важной особенностью современных операционных систем является то, что в основу взаимодействия прикладной программы и операционной системы заложена модель «клиент-сервер». Все обращения пользовательской программы (клиента) к операционной системе обрабатываются специальной программой (сервером). При этом используется механизм, аналогичный вызову удаленной процедуры, что позволяет легко перейти от взаимодействия между процессами в пределах одной ЭВМ к распределенной системе.
Технология «plug and play»
Под технологией «plug and play» (PnP-технология) понимается способ взаимодействия между операционной системой и внешними устройствами. Операционная система проводит опрос всех периферийных устройств и должна получить от каждого устройства определённый ответ, из которого можно определить, какое устройство подключено и какой драйвер требуется для его нормальной работы. Цель использования данной технологии заключается в упрощении подключения новых внешних устройств. Пользователь должен быть избавлен от сложной работы по настройке внешнего устройства, требующей высокой квалификации.
Оболочка (shell) – система, изменяющая пользовательский интерфейс. Оболочка создаёт для пользователя интерфейс, отличный от такового самой операционной системы. Задача оболочки – упрощение некоторых общеупотребительных действий с операционной системой. Однако оболочка не заменит ОС, и потому пользователь-профессионал должен изучать также командный интерфейс самой ОС (рис. 6.4).
Рис. 6.4. Роль оболочки операционной системы
Утилита (utility) – это система, дополняющая пользовательский интерфейс. Утилиты реализуют важные функции по управлению ЭВМ, которые, как правило, недостаточно полно представлены в программах, поставляемых с операционной системой (рис. 6.5).
Рис. 6.5. Роль утилиты
Наиболее важными функциями утилит являются:
· обслуживание жёсткого диска: форматирование, восстановление удалённых файлов, дефрагментация, низкоуровневое редактирования дисков и др.;
· обслуживание файлов и каталогов: поиск, сортировка, копирование по определённому условию и т.д.;
· работа с архивами: создание архивов и их обновление, сжатие файлов;
· защита от компьютерных вирусов: обнаружение вирусов, лечение файлов;
· предоставление пользователю расширенной информации о ПЭВМ и ОС;
· шифрование информации.