В настоящее время существует большое количество различных типов ОС, отличающихся областями применения, аппаратными платформами, способами реализации и другими параметрами.
Назначение ОС можно разделить на 4 основных составляющие:
1. Организация (обеспечение) удобного интерфейса между приложениями и пользователями с одной стороны и аппаратурой ЭВМ с другой. ОС предоставляет пользователю расширенную виртуальную машину, с которой удобнее работать и которую легче программировать.
Основные сервисы, предоставляемые типичными ОС:
· Разработка программ (ОС предоставляет программисту готовые инструменты разработки приложений: редакторы, отладчики и т.п.);
· Исполнение программ (ОС выполняет рутинную работу вместо пользователя по запуску программ-приложений);
· Доступ к устройствам ввода-вывода (ОС предоставляет пользователю единообразный интерфейс, который скрывает все детали обращения и обеспечивает программисту доступ к устройствам ввода-вывода с помощью простых команд чтения и записи; если бы программист работал непосредственно с аппаратурой, то требовалось бы выполнение множества действий;
· Контролируемый доступ к файлам (При работе с файлами управление со стороны ОС предполагает не только глубокий учет природы устройства ввода-вывода, но и знание структур данных, записанных в файлах; многопользовательские ОС кроме того обеспечивают механизм защиты при обращении к файлам; доступ обеспечивается с помощью меток, атрибутов файлов, записи в других форматах и нетривиальным форматированием дисков);
· Системный доступ (ОС управляет доступом к совместно используемым или общедоступным ресурсам; при этом ОС обеспечивает защиту ресурсов и данных от НСД и разрешает конфликтные ситуации);
|
· Обнаружение ошибок и их обработка (в каждом ошибочном случае ОС выполняет действия, минимизирующие влияние ошибки на работу приложения – от простого сообщения об ошибке до аварийной остановки программ);
· Учет использования ресурсов ("Хорошая" ОС имеет средства учета использования различных ресурсов и различных параметров производительности вычислительной системы; эта информация важна для настройки и оптимизации вычислительной системы с целью повышения ее производительности);
Таким образом, назначение ОС состоит в предоставлении пользователю (программисту) некоторой расширенной виртуальной машины, которую легче программировать и с которой легче работать, чем непосредственно с аппаратурой, составляющей реальный компьютер, систему или сеть.
2. Организация эффективного использования различных ресурсовкомпьютера. ОС является своеобразным диспетчером ресурсов компьютера (ЦП, ОЗУ, набора данных, дисков, различных магнитных накопителей, принтеров, сетевых устройств и т.д.). В отличие от программы, которая является статическим объектом, выполняемая программа ОС – это динамический объект, который называется процессом и является базовым понятием в современных ОС.
Управление ресурсами вычислительной системы с целью наиболее эффективного их использования является вторым назначением ОС. Критериями эффективности в ОС могут быть различные показатели (например, в одних системах важна пропускная способность вычислительной системы, а в других – время ее реакции).
|
Управление ресурсами включает решение ряда общих задач, независящих от типа ресурса:
· Планирование ресурса – определение, к какому процессу, когда и в каком качестве (если ресурс может выделяться частями) следует выделить данный ресурс;
· Удовлетворение запросов на ресурсы – выделение ресурсам процессов;
· Отслеживание состояния и учет использования ресурсов – отслеживание состояния и учет использования ресурсов. Поддержание оперативной информации о занятости ресурсов и определенной его доли;
· Разрешение конфликтов между процессами, претендующими на один и тот же ресурс.
Для решения общих задач управления ресурсами используются различные алгоритмы, особенности которых, в конечном счете, определяют облик ОС в целом, включая характеристики производительности и область применения.
3. Облегчение процессов эксплуатации программно-аппаратных средств вычислительной системы.
Некоторые ОС имеют в своем составе наборы служебных программ, обеспечивающих резервное копирование, архивацию данных, проверку, отчистку и дефрагментацию дисковых устройств, а так же других функций.
Современные ОС имеют набор средств и способов диагностики и восстановления работоспособности системы, к ним относят:
· Диагностические программы для выявления ошибок и конфигурации ОС;
· Средства восстановления последней работоспособной конфигурации ОС;
· Средства восстановления поврежденных и пропавших системных файлов;
· Возможность развития.
4. Возможность развития.
Современные ОС организуются таким образом, что допускают эффективную разработку, тестирование и внедрение новых системных функций, не прерывая процессов нормального функционирования вычислительной системы:
|
· Новые сервисы;
· Обновление и возникновение новых ПО.
Современные ОС содержат сотни и тысячи моделей (например, ОС Windows 2000- содержит 29 млн. строк исходного кода на языке С).
Современный компьютер – это сложнейшая комплексная вычислительная система. Условно данная система может быть представлена следующим образом. Во-первых, аппаратное (техническое) обеспечение: процессор, память, монитор, дисковые устройства и т.д., объединенные магистральным соединением, которое называется шиной. Во-вторых, вычислительная система состоит из программного обеспечения. Все программное обеспечение принято делить на две части: прикладное и системное. К прикладному программному обеспечению, как правило, относятся программы офисного назначения, программы экономического назначения, издательские системы, мультимедийные программы, СУБД, прочие прикладные программы общего назначения. Под системным программным обеспечением обычно понимают программные средства управления обработкой данных, сервисные программы, инструментальные программные средства, т.е. программы, способствующие функционированию и разработке прикладных.
Дать точное определение операционной системе довольно трудно. Можно сказать, что это программное обеспечение, которое работает в режиме ядра, но и это утверждение не всегда будет отвечать истинному положению вещей. Отчасти проблема здесь в том, что операционные системы осуществляют две функции, в основном не связанные друг с другом: предоставляют прикладным программистам (и прикладным программам, естественно) вполне понятный абстрактный набор ресурсов взамен неупорядоченного набора аппаратного обеспечения и управляют этими ресурсами. В зависимости от того, кто именно ведет разговор, можно услышать больше о первой или о второй из них. Нам же предстоит рассмотреть обе эти функции.
1.1. Операционная система как виртуальная машина
При разработке ОС широко применяется абстрагирование, которое является важным методом упрощения и позволяет сконцентрироваться на взаимодействии высокоуровневых компонентов системы, игнорируя детали их реализации. В этом смысле ОС представляет собой интерфейс между пользователем и компьютером.
Архитектура большинства компьютеров на уровне машинных команд очень неудобна для использования прикладными программами. Например, работа с диском предполагает знание внутреннего устройства его электронного компонента – контроллера для ввода команд вращения диска, поиска и форматирования дорожек, чтения и записи секторов и т. д. Ясно, что средний программист не в состоянии учитывать все особенности работы оборудования (в современной терминологии – заниматься разработкой драйверов устройств), а должен иметь простую высокоуровневую абстракцию, скажем, представляя информационное пространство диска как набор файлов. Файл можно открывать для чтения или записи, использовать для получения или сброса информации, а потом закрывать. Это концептуально проще, чем заботиться о деталях перемещения головок дисков или организации работы мотора. Аналогичным образом, с помощью простых и ясных абстракций, скрываются от программиста все ненужные подробности организации прерываний, работы таймера, управления памятью и т. д. Более того, на современных вычислительных комплексах можно создать иллюзию неограниченного размера оперативной памяти и числа процессоров. Всем этим занимается операционная система. Таким образом, операционная система представляется пользователю виртуальной машиной, с которой проще иметь дело, чем непосредственно с оборудованием компьютера.