Тема 1. Основные понятия операционных систем

1. Подходы к определению понятия «операционная система»

К сожалению, до сих пор не существует общепринятого и краткого определения операционной системы (ОС).

Согласно первому подходу, ОС – совокупность системных программ, обеспечивающих взаимодействия пользователя с компьютером. В рамках этого определения:

· подчеркивается системный характер ОС (как совокупность взаимосвязанных программ);

· определяется место компонентов ОС среди многообразия ПО (это системные программы);

· описывается назначение ОС.

Такое определение полезно для изучения дисциплин информационного цикла в качестве общеобразовательных предметов (понимание того, что такое ОС и для чего они нужны), однако оно не характеризует:

- организацию взаимодействия с аппаратным обеспечением компьютера;

- управление работой прикладным ПО;

- процессы разработки ОС.

Согласно второму подходу, ОС определяется через список функций, которые на нее обычно возлагаются. Необходимо отметить, что многие из программных продуктов, предлагаемых на рынке в качестве ОС, не выполняют (а иногда выполняют, но так, что лучше бы и не брались совсем) некоторые из этих функций.

Бэррон (Barron) определяет операционную систему так: "Я не знаю, что это такое, но всегда узнаю ее, если увижу". Эта фраза была сказана в первой половине 70-х годов прошлого века, когда операционные системы действительно отличались большим разнообразием структуры и выполняемых функций.

С другой стороны, оставив в стороне "универсальные многопользовательские компьютеры (которые, в действительности, всего лишь специализируются в той же области, что и компьютеры первых поколений), мы обнаруживаем почти ту же картину, о которой писал Бэррон, и даже хуже. Только среди широко известных программных продуктов (как коммерческих, так и свободно распространяемых) можно насчитать не менее десятка программ, называемых ОС, и при этом, на первый взгляд, имеющих друг с другом довольно мало общего.

Дополнительную путаницу вносит то обстоятельство, что в наше время все менее и менее понятным становится ответ на вопрос, что же такое компьютер. Определение, согласно которому компьютер состоит из системного блока, монитора, клавиатуры и манипулятора "мышь", естественно, никуда не годится - под него не подходят даже портативные компьютеры или монтируемые в стойку серверы с IBM PC-совместимой архитектурой. Если же попытаться определить компьютер как устройство, имеющее где-то внутри полностью программируемый процессор фон-неймановской архитектуры, в число "компьютеров" попадет неожиданно много устройств.

Многие из этих компьютеров работают под управлением того или иного продукта, позиционируемого на рынке как операционные системы: QNX, VxWorks и др. Существуют программы, разработанные полностью самостоятельно, без использования чужого кода, но некоторые их модули также называются ОС. Бывает и так, что отдельные подсистемы программного комплекса, не называясь ОС, все-таки являются ею.

Возникают и совсем анекдотические ситуации, когда разработчик пишет свою собственную ОС, не подозревая об этом. Это случается не только при разработке встраиваемых приложений, но и при написании программ (особенно многопоточных и требовательных к ресурсам) для компьютеров и ОС общего назначения.

По современным представлениям операционная система должна выполнять следующие функции:

· обеспечивать загрузку прикладных программ в память и их исполнение,

· обеспечивать управление памятью; в простейшем случае это указание единственной загруженной программе адреса, на котором кончается память, доступная для использования, и начинается память, занятая системой, в многопроцессных системах это сложная задача управления системными ресурсами,

· обеспечивать работу с устройствами долговременной памяти, такими как магнитные диски, ленты, оптические диски, флэш-память и т. д.,

· предоставлять более или менее стандартизованный доступ к различным периферийным устройствам, таким как терминалы, модемы, принтеры или двигатели, поворачивающие рулевые плоскости истребителя,

· предоставлять некоторый пользовательский интерфейс (слово некоторый здесь сказано не случайно — часть систем ограничивается командной строкой, в то время как другие на 90% состоят из интерфейсной подсистемы).

Существуют ОС, функции которых этим и исчерпываются. Одна из хорошо известных систем такого типа — дисковая операционная система MS DOS.

Более развитые ОС предоставляют также следующие возможности:

· параллельное (или псевдопараллельное, если машина имеет только один процессор) исполнение нескольких задач,

· организацию взаимодействия задач друг с другом,

· организацию межмашинного взаимодействия и разделения ресурсов,

· защиту системных ресурсов, данных и программ пользователя, исполняющихся процессов и самой себя от ошибочных и зловредных действий пользователей и их программ,

· аутентификацию (проверку того, что пользователь является тем, за кого он себя выдает), авторизацию (проверка, что тот, за кого себя выдает пользователь, имеет право выполнять ту или иную операцию) и другие средства обеспечения безопасности.