Определение операционной системы и ее функции

Классификация ОС по времени развития

Итак, подведя итоги к приведенной здесь, очень краткой истории развития операционных систем, попробуем распределить ОС по поколениям их развития.

- 1 поколение – человек, как операционная система

- 2 поколение – системы пакетной обработки

- 3 поколение – системы разделения времени

- 4 поколение - многозадачные ОС больших компьютеров

- 5 поколение – однозадачные ОС персональных компьютеров

- 6 поколение - многозадачные ОС компьютеров средней величины и персональных компьютеров

Безусловно, данная классификация не охватывает всех сторон ОС, но дает представление об этапах их развития.

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

В работе Barron D. W., Computer Operating Systems, Chapman and Hall, London, 1971. было так сказано на эту тему: «Я не знаю, что это такое, но всегда узнаю ее, если увижу». Правда эта фраза была сказана в первой половине 70-х, когда операционные системы действительно отличались большим разнообразием структуры и выполняемых функций.

С тех времен положение существенно изменилось. Современные ОС - по крайней мере, широко распространенные системы - во многом похожи друг на друга. Прежде всего, это определяется требованием переносимости программного обеспечения. Именно для обеспечения этой переносимости был принят POSIX (Portable OS Interface based on uniX) - стандарт, определяющий минимальные функции по управлению файлами, межпроцессному взаимодействию и т.д., которые должна уметь выполнять система.

Кроме того, за четыре с лишним десятилетия, прошедших с момента разработки первых ОС, сообщество программистов достигло определенного понимания того, что:

- при разработке ОС возникает много стандартных проблем и вопросов;

- для большинства из этих проблем и вопросов существует набор стандартных решений;

- некоторые из этих решений намного лучше, чем все альтернативные.

По современным представлениям, ОС должна уметь делать следующее:

1. Обеспечивать загрузку пользовательских программ в оперативную память и их исполнение.

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

3. Предоставлять более или менее стандартный доступ к различным устройствам ввода/вывода, таким как терминалы, модемы, печатающие устройства.

4. Предоставлять некоторый пользовательский интерфейс. Слово некоторый здесь сказано не случайно - часть систем ограничивается командной строкой, в то время как другие на 90% состоят из средств интерфейса пользователя

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

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

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

6. Распределение ресурсов компьютера между задачами.

7. Организация взаимодействия задач друг с другом.

8. Взаимодействие пользовательских программ с нестандартными внешними устройствами.

9. Организация межмашинного взаимодействия и разделения ресурсов.

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

Перечень вышеприведенных требований к операционной системе можно упрощенно свести к двум функциям:

- обеспечение пользователю и программисту удобного представление ресурсов компьютера, посредством предоставления для него упрощенной (виртуальной) машины.

- повышение эффективности использования компьютера путем рационального управления и расширенного использования его ресурсов.

Рассмотрим каждую из функций этой упрощенной классификации.

1.2.1. ОС – как виртуальная машина (взгляд сверху)

Использование большинства компьютеров на уровне машинного языка затруднительно, особенно это касается ввода-вывода. Например, для организации чтения блока данных с гибкого диска программист может использовать несколько различных команд, каждая из которых требует своих параметров, таких как номер блока на диске, номер сектора на дорожке и т. п. Когда выполнение операции с диском завершается, контроллер возвращает значения, отражающих наличие и типы ошибок, которые, очевидно, надо анализировать. Даже если не входить в курс реальных проблем программирования ввода-вывода, ясно, что среди программистов нашлось бы не много желающих непосредственно заниматься программированием этих операций. При работе с диском программисту-пользователю достаточно представлять его в виде некоторого набора файлов, каждый из которых имеет имя. Работа с файлом заключается в его открытии, выполнении чтения или записи, а затем в закрытии файла. Вопросы подобные таким, как следует ли при записи использовать усовершенствованную частотную модуляцию или в каком состоянии сейчас находится двигатель механизма перемещения считывающих головок, не должны волновать не только программиста-пользователя, но зачастую и системного программиста.

Программа, которая скрывает от программиста все реалии аппаратуры и предоставляет возможность простого, удобного просмотра указанных файлов, чтения или записи - это, конечно, операционная система.

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

1.2.2. ОС – как система управления ресурсами (взгляд снизу)

Идея о том, что ОС - прежде всего система, обеспечивающая удобный интерфейс пользователям, соответствует рассмотрению сверху вниз. Другой взгляд, снизу вверх, дает представление об ОС как о некотором механизме, управляющем всеми частями сложной системы. Современные вычислительные системы состоят из процессоров, памяти, таймеров, дисков, накопителей на магнитных лентах, сетевых коммуникационной аппаратуры, принтеров и других устройств. В соответствии со вторым подходом функцией ОС является распределение процессоров, памяти, устройств и данных между процессами, конкурирующими за эти ресурсы. ОС должна управлять всеми ресурсами вычислительной машины таким образом, чтобы обеспечить максимальную эффективность ее функционирования. Критерием эффективности может быть, например, пропускная способность или реактивность системы. Управление ресурсами включает решение двух общих, не зависящих от типа ресурса задач:

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

- отслеживание состояния ресурса - то есть поддержание оперативной информации о том, занят или не занят ресурс, а для делимых ресурсов, - какое количество ресурса уже распределено, а какое свободно.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: