Операционная система (ОС) – это комплекс программного обеспечения, основная задача которого обеспечивать возможность рационального использования оборудования компьютера наиболее удобным для пользователя образом.О С - это по преимуществу администратор ресурсов, она управляет процессорами, памятью, устройствами ввода-вывода и данными.
Обобщённую структуру вычислительной системы можно представить в виде совокупности технического и программного обеспечения. Техническое обеспечение: процессор, память, монитор, дисковые устройства и т.д. Все программное обеспечение принято делить на две части: прикладное и системное. К прикладному программному обеспечению, как правило, относятся разнообразные пользовательские программы, игры,
текстовые процессоры и т.п.
Системное программное обеспечение – комплекс программ, способствующих функционированию и разработке прикладных программ. Таким образом, операционная система является фундаментальным компонентом системного программного обеспечения.
Классификация ОС
Существует несколько подходов для классификации операционных систем. Можно отметить следующие критерии классификации:
– реализация многозадачности.
По числу одновременно выполняемых задач операционные системы могут быть разделены на два класса:
1 - многозадачные (Unix, OS/2, Windows), полностью реализует мультипрограммный режим;
2 - однозадачные (например, MS-DOS).
– поддержка многопользовательского режима.
По числу одновременно работающих пользователей ОС можно разделить на:
1 - однопользовательские (MS-DOS, Windows 3.x);
2 - многопользовательские (Windows NT, Unix), характеризуются наличием у механизмов защиты персональных данных каждого пользователя.
– многопроцессорная обработка.
По этому критерию ОС делятся на:
1 - однопроцессорные;
2 - многопроцессорные, характеризуются поддержкой мультипроцесси-рования и более сложными алгоритмами управления ресурсами (Linux, Solaris, Windows NT и в ряде других). Многопроцессорные системы состоят из двух или более центральных процессоров, осуществляющих параллельное выполнение команд.
Многопроцессорные ОС делятся на:
1 - симметричные, в которых на каждом процессоре функционирует одно и то же ядро и задача может быть выполнена на любом процессоре, то есть обработка полностью децентрализована;
2 - асимметричные, в которых процессоры неравноправны, т.е. существует главный процессор (master) и подчиненные (slave), загрузку и характер работы которых определяет главный процессор.
– работа в режиме реального времени.
Для работы в режиме реального времени предназначены специализированные ОС. Системы реального времени – операционные системы, характеризуемые предельно допустимым временем реакции на внешнее событие, в течение которого должна быть выполнена программа, управляющая объектом. Основное требование – система должна обрабатывать поступающие данные быстрее, чем те могут поступать, причем от нескольких источников одновременно. Системы реального времени используются для управления различными техническими объектами или технологическими процессами. Столь жесткие ограничения сказываются на архитектуре систем реального времени, например, в них может отсутствовать виртуальная память, поддержка которой дает непредсказуемые задержки в выполнении программ.
Назначение
Главное назначение ОС - это управление ресурсами, а главные ресурсы, которыми она управляет, - это аппаратура компьютера:
- процессор,
- память,
- устройства ввода-вывода.
Функции
· ОС реализует множество различных функций, в том числе:
· определяет так называемый интерфейс пользователя,
· обеспечивает разделение аппаратных ресурсов между пользователями,
· дает возможность работать с общими данными в режиме коллективного пользования,
· планирует доступ пользователей к общим ресурсам,
· обеспечивает эффективное выполнение операций ввода-вывода,
· осуществляет восстановление информации и вычислительного процесса в случае ошибок.
Требования
1. Надежностью. Система должна быть, по меньшей мере, так же надежна, как и аппаратура на которой она работает. В случае ошибки в программном или аппаратном оборудовании система должна обнаружить ошибку и либо попытаться исправить положение, либо постараться свести ущерб к минимуму.
2. Защитой. Система должна быть защищена от несанкционированного доступа.
3. Эффективностью. ОС представляет собой сложный комплекс программных средств, который использует значительную часть аппаратных ресурсов для своих собственных надобностей. Следовательно, сама система должна быть как можно более экономичной, чтобы большая часть ресурсов оставалась в распоряжении пользователей. Кроме того, система должна управлять ресурсами пользователей так, чтобы свести к минимуму время простоя, или, другими словами, добиться максимальной загруженности ресурса.
4. Предсказуемостью. Пользователь предпочитает, чтобы обслуживание не слишком сильно менялось в течение продолжительного времени. В частности, запуская программу, пользователь должен иметь представление, основанное на предыдущем опыте, о том, когда ему ожидать выдачи результатов.
5. Удобством. ОС должна быть достаточно гибкой и удобной для пользователя.
Системы можно разделить на несколько классов.
ДОС (Дисковые Операционные Системы). Это системы, берущие на себя выполнение только первых четырех функций. Как правило, это просто некий резидентный набор подпрограмм, не более того. Он загружает пользовательскую программу в память и передает ей управление, после чего программа делает с системой все, что ей заблагорассудится. Считается желательным, чтобы после завершения программы машина оставалась в таком состоянии, чтобы ДОС могла продолжить работу. (принципиально же, ДОС ничем не может помешать программе перевести систему в нерабочее состояние).
Дисковая операционная система MS DOS для IBM PC является примером систем подобного класса. Она, правда, умеет загружать несколько программ, но не предоставляет средств для исполнения этих программ. Более того, с точки зрения документированных функций, этим программам нельзя работать (существуют, однако, так называемые недокументированные задние двери (backdoors)).
Существование систем такого класса обусловлено их простотой и тем, что они потребляют мало ресурсов. Еще одна причина, по которой такие системы могут использоваться даже на довольно мощных машинах - требование программной совместимости с ранними моделями того же семейства компьютеров.
ОС. К этому классу относятся системы, берущие на себя выполнение всех вышеперечисленных функций. Разделение на ОС и ДОС идет, по-видимому, от систем IBM DOS/360 и OS/360 для больших компьютеров этой фирмы, клоны которых известны у нас в стране под названием ЕС ЭВМ серии 10XX. (Кстати, у IBM была еще TOS/360, Tape Operating System - Ленточная Операционная Система).
Здесь и далее под ОС мы будем подразумевать системы ``общего назначения'', то есть рассчитанные на интерактивную работу одного или нескольких пользователей в режиме разделения времени, при не очень жестких требованиях на время реакции системы на внешние события. Как правило, в таких системах уделяется большое внимание защите самой системы, программного обеспечения и пользовательских данных от ошибочных и злонамеренных программ и пользователей. Обычно такие системы используют встроенные в архитектуру процессора средства защиты и виртуализации памяти. К этому классу относятся такие широко распространенные системы, как VAX/VMS, системы семейства Unix и OS/2, хотя последняя не обеспечивает одновременной работы нескольких пользователей и защиты пользователей друг от друга.
Часто такие системы являются подсистемой ОС общего назначения: MS DOS и MS Windows-эмуляторы под UNIX и OS/2, окно DOS в MS Windows, эмулятор RT-11 в VAX/VMS.
Системы реального времени. Это системы, предназначенные для облегчения разработки так называемых приложений реального времени. Это программы, управляющие некомпьютерным по природе оборудованием, часто с очень жесткими ограничениями по времени. Примером такого приложения может быть программа бортового компьютера крылатой ракеты, системы управления ускорителем элементарных частиц или промышленным оборудованием. Такие системы обязаны поддерживать многопроцессность, гарантированное время реакции на внешнее событие, простой доступ к таймеру и внешним устройствам. Такие системы могут по другим признакам относиться как к классу ДОС (RT-11), так и к ОС (OS-9, QNX). Часто такие системы (например, VxWorks) рассчитаны на работу совместно с управляющей host-машиной, исполняющей "нормальную" операционную систему.
Кросс-загрузчики. Это системы - полностью ориентированные на работу с host-машиной. Чаще всего они используются для написания и отладки кода, позднее прошиваемого в ПЗУ. Это системы программирования микроконтроллеров семейства Intel 8048 и подобных им, TDS (Transputer Development System) фирмы Inmos, и многие другие. Такие системы, как правило, включают в себя набор компиляторов и ассемблеров, работающих на host-системе (реже - загружаемых с host-машины в целевую систему), библиотеки, выполняющие большую часть функций ОС при работе программы (но не загрузку этой программы!), и средства отладки.
Системы промежуточных типов. Существуют системы, которые с первого взгляда нельзя отнести к одному из вышеперечисленных классов. Такова, например, система RT-11, которая, по сути своей, является ДОС, но позволяет одновременное исполнение нескольких программ с довольно богатыми средствами взаимодействия и синхронизации. Другим примером промежуточной системы являются MS Windows 3.x и Windows 95 которые, как ОС, используют аппаратные средства процессора для защиты и виртуализации памяти и даже могут обеспечивать некоторое подобие многозадачной работы, но не защищают себя и программы от ошибок других программ.
В последнее время вошел в употребление еще один термин: сетевые ОС, или сокращенно NOS (Networking Operating System). На взгляд авторов, сложившееся использование этого термина несколько неудачно. Его можно употреблять в двух различных смыслах:
1. Системы, предназначенные для предоставления сетевых услуг, аналогично тому, как ДОС предназначена для предоставления средств работы с диском. Под такое понимание NOS подходят узкоспециализированные системы, такие как Novell Netware, K9Q или программное обеспечение маршрутизаторов Cisco.
Системы, способные предоставлять сетевые услуги. Под такое определение подходят практически все современные ОС общего назначения.