Операционная система
Операцио́нная систе́ма (ОС), комплекс программ, обеспечивающий возможность удобного использования аппаратно-программных ресурсов ЭВМ прикладными программами и пользователем в соответствии с заданной политикой безопасности и разделения ресурсов; загружается обычно при включении ЭВМ. ОС решает две взаимодополняющие задачи: предоставляет набор функций с целью создания удобной среды для работы пользователя и прикладных программ; организует процесс работы множества приложений на одной ЭВМ, защищая приложения друг от друга, а также управляя разделением ресурсов ЭВМ в соответствии с заданными регламентами.
Основные функции, состав, архитектура ОС
Эффективная реализация многих функций ОС возможна только при наличии соответствующей поддержки со стороны аппаратных средств ЭВМ, в первую очередь уровней привилегированного выполнения команд, прерываний, средств защиты памяти. Уровни привилегированного выполнения команд определяют несколько режимов работы процессора. При работе в непривилегированном режиме процессор может выполнять команды, необходимые для прикладных вычислений, но ему недоступен набор команд, предназначенных для управления ЭВМ. Прерывания приостанавливают выполнение текущей программы в процессоре, переключают его в привилегированный режим и передают управление ОС (сообщая ей о наступлении некоторого события, требующего соответствующей обработки). Прерывания делятся на внешние и внутренние. Внешние прерывания извещают ОС о событиях, которые происходят в оборудовании ЭВМ (например, нажатие клавиши на клавиатуре). Внутренние прерывания информируют ОС о событиях, возникающих в ходе выполнения текущей программы, например попытка выполнить привилегированную команду в непривилегированном режиме, невозможность выполнения текущей команды (например, деление на ноль) процессором. Средства защиты памяти предназначены для формирования совокупности независимых адресных пространств (так, программа, работающая в одном адресном пространстве, не может обращаться к ячейкам памяти, принадлежащим другому адресному пространству памяти). Наиболее распространённый способ реализации защиты памяти в современных процессорах состоит в том, что адреса памяти, которые указываются в командах процессора, интерпретируются как т. н. логические адреса. При выполнении команды процессор автоматически транслирует логический адрес в физический адрес ячейки памяти ЭВМ в соответствии с таблицами трансляции, которые настраиваются ОС при помощи соответствующих привилегированных команд.
Рассмотренные выше механизмы позволяют ОС переложить контроль над работой прикладных программ на аппаратные средства; они также служат основой для построения эффективной защиты ОС от прикладных программ и прикладных программ друг от друга.
Одной из основных задач ОС является управление ресурсами ЭВМ (процессорами, оперативной и внешней памятью, устройствами ввода-вывода, каналами связи и др.). Ключевыми понятиями в организации управления ресурсами служат процессы, виртуальная память и файлы. Процесс рассматривается ОС в качестве потребителя ресурсов ЭВМ (т. е. участвует в их распределении). Также в большинстве ОС каждому процессу ставится в соответствие собственное адресное пространство (как правило, адресные пространства процессов не пересекаются). Многие ОС поддерживают выполнение нескольких потоков управления в рамках одного адресного пространства процесса. Иногда говорят о процессах как о представлении прикладных программ в ходе их выполнения на ЭВМ, однако следует учитывать, что в ряде случаев одной прикладной программе может соответствовать несколько процессов, а также несколько программ могут быть представлены одним процессом. Виртуальная память служит для повышения эффективности использования оперативной памяти ЭВМ и увеличения объёма адресного пространства процесса. Реализация виртуальной памяти также базируется на аппаратной поддержке ЭВМ в виде таблиц трансляции логических адресов в физические. Понятие файла (под которым обычно понимают поименованный набор данных, являющийся единицей хранения информации) позволяет единообразно работать с информацией независимо от того, где и как она хранится – в оперативной памяти, во внешней памяти или на удалённой ЭВМ.
ОС состоит из ядра и набора системных библиотек и утилит. К ядру обычно относят компоненты ОС, которые выполняются в привилегированном режиме работы процессора. Основные функциональные компоненты ядра ОС: подсистема управления памятью; подсистема управления процессами; файловые системы; драйверы, или программы управления внешними устройствами ЭВМ (принтерами, запоминающими устройствами и др.); подсистема организации межпроцессного взаимодействия. Наибольшее распространение получили два типа архитектуры ядра ОС – монолитный и микроядерный. В монолитных ядрах все компоненты работают в едином адресном пространстве и никак не защищены друг от друга, т. е. любой компонент может изменить данные другого компонента. При микроядерной архитектуре компоненты чётко разделены, работают в непересекающихся адресных пространствах и взаимодействуют между собой путём передачи сообщений. Большинство современных ОС, получивших широкое распространение, имеют монолитную архитектуру (Linux, Windows), однако существуют коммерчески успешные варианты ОС с микроядерной (QNX, PikeOS, Integrity) и гибридной (Symbian, Mac OS X) архитектурой.
Системные библиотеки содержат набор часто используемых подпрограмм, таких как операции ввода-вывода, математические функции, примитивы графического интерфейса пользователя и т. п.
Утилиты – это программы (реализующие некоторые функции ОС), которые выполняются в непривилегированном режиме.
Выделяют ОС общего назначения и специализированные. Современные версии распространённых ОС общего назначения – это крупные программные комплексы, где только ядро состоит из нескольких миллионов операторов ассемблера и/или других языков программирования, а размер библиотек и утилит доходит до сотен миллионов строк. Специализированные ОС применяются в ЭВМ, которые ориентированы на решение определённого класса задач. В первую очередь к таким задачам относятся управление какими-либо процессами (например, поддержания определённого температурного режима) или механизмами. ЭВМ, применяемые для этих целей, получили название управляющих; как правило, они являются встроенными. У встроенных ОС размер ядра часто не превышает 10 тысяч строк кода. Ключевые характеристики ОС для встроенных ЭВМ – повышенная надёжность, компактность и эффективность управления ресурсами в условиях ограниченного и заранее известного набора задач. Встроенные ЭВМ часто осуществляют управление в режиме реального времени, что требует соответствующей поддержки со стороны ОС (такие ОС называются ОС реального времени).
Историческая справка
Прототипами ОС на первых ЭВМ были специальные программы, называемые диспетчерами, мониторами, управляющими программами и т. п., которые в первую очередь поддерживали загрузку подпрограмм из библиотек стандартных подпрограмм. Отечественная система ИС-2 – значимое достижение в этом классе программных систем. В первых развитых ОС появилась возможность предоставлять поддержку т. н. пакетной обработке, позволившей автоматизировать последовательный пропуск задач на ЭВМ (GM-NAA I/O, США, 1956). Следующий шаг эволюции ОС – поддержка режима многозадачности (Burroughs Master Control Program, 1961, США; ОС ЭВМ «Урал-11», СССР, 1963–1965), что способствовало повышению эффективности использования центрального процессора; так, если выполнение текущей задачи останавливалось, например ожидая завершения операции ввода-вывода, ОС переключала процессор на выполнение другой задачи. При реализации режима разделения времени многим пользователям предоставлялась возможность одновременно работать на одной ЭВМ, при этом у каждого из них создавалась иллюзия того, что все ресурсы ЭВМ находятся в его полном распоряжении. Основные принципы разделения времени сложились в ОС CTSS (1961, США). Доминирующее положение ряда ЭВМ IBM System/360 (США) в 1960–1970-х гг. привело к появлению первой широко используемой ОС OS/360.
В СССР существенный прогресс в разработке ОС связан с созданием ЭВМ, имеющих развитые механизмы обработки прерываний и управления памятью. Пионерской стала ОС на ЭВМ «Весна», однако широкое использование новых возможностей ОС связано с появлением ЭВМ БЭСМ-6 (1967). Первой ОС для БЭСМ-6 был диспетчер Д-68; для решения задач в режиме реального времени создана ОС НД-70; при разработке ОС ИПМ предложено много новаторских решений по архитектуре ОС и систем программирования; основной ОС БЭСМ-6 стала ОС «Диспак». Развитыми ОС были снабжены самые массовые в СССР ЭВМ среднего класса «Минск-22» и «Минск-32». ОС на БЭСМ-6 и ЭВМ «Минск» обеспечивали пакетную и многозадачную обработку, а также режим разделения времени, поддерживая тем самым одновременную работу нескольких пользователей в диалоговом режиме, нескольких фоновых вычислительных задач и обработку данных в режиме реального времени. Успешно развивались отечественные ОС для ЭВМ специального, в том числе военного, назначения. С переходом отечественной электронной промышленности на выпуск машин типа ЕС ЭВМ и СМ ЭВМ усилия разработчиков ОС переключились на адаптацию зарубежных ОС, а именно ОС типа OS 360/370, RT-1, RSX-11, Unix и др. Вместе с тем создавались и оригинальные отечественные ОС, например ОС для советских супер-ЭВМ (семейства «Электроника» и «Эльбрус»).
Основные современные тенденции в развитии архитектуры ОС связаны с разработкой ОС CP 67/CMS (1967, США), ОС Multics (1968, США) и Unix (1969, США), System 1 (1983, США). CP-67/CMS впервые реализовала концепцию виртуализации, заключающуюся в выделении небольшой ОС (позднее названной гипервизором), которая берёт на себя базовые функции по управлению устройствами ЭВМ и распределению её ресурсов. При этом ответственность за организацию среды для прикладных программ перекладывается на другую ОС, называемую гостевой. Под управлением гипервизора может одновременно работать несколько гостевых ОС, для которых гипервизор создаёт видимость единоличной работы на виртуальной ЭВМ.
В середине 1960-х гг. учёные Массачусетского технологического института предложили ряд новых концепций, которые легли в основу ОС Multics: поддержка динамического связывания прикладных приложений с библиотеками, возможность (с помощью модульной конструкции электронных устройств) наращивать вычислительные возможности системы простой заменой её модулей (центрального процессора, памяти, дискового пространства и др.) без прерывания работы ОС, иерархическая файловая система. Эти концепции оказали значительное влияние на разработку большинства последующих ОС.
В 1980-х гг. лидирующее положение на рынке ОС заняли Unix-системы. Разработчики ОС Unix произвели тщательный отбор уже зарекомендовавших себя на практике принципов построения ОС, что в совокупности с простотой переноса этой ОС на различные новые виды ЭВМ привело к её широкому распространению. Появилось множество ОС, копирующих основные принципы ОС Unix.
ОС System 1, созданная для ЭВМ Apple Macintosh, совершила переворот в способах взаимодействия пользователя с ЭВМ; были усовершенствованы графический интерфейс пользователя, т. н. оконный интерфейс и управление с помощью координатных устройств ввода (например, мышь, трекбол).
К концу 1990-х гг. вследствие распространения персональных компьютеров (ПК) большим спросом стала пользоваться ОС Microsoft Windows (США), современная версия которой до сих пор занимает господствующее положение среди ОС для ПК. В начале 2000-х гг. наибольшее применение нашла ОС Linux, которая в техническом плане является наследницей ОС Unix. Во многом успех ОС Linux обусловлен использованием принципов свободного программного обеспечения. Ныне ОС Linux лидирует среди ОС для супер-ЭВМ и серверов, расширяется область её использования при создании мобильных устройств и встроенных ЭВМ.
Основные направления развития современных ОС: повышение надёжности, обеспечение безопасности и защиты данных, оптимальное энергопотребление, эффективная работа на многоядерных и многопроцессорных ЭВМ, а также исследования в области новых интерфейсов взаимодействия с пользователем.