1. Понятие операционной системы (ОС), основные функции ОС, обзор современных ОС и операционных оболочек, ОС как расширенная машина, ОС как менеджер ресурсов.


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

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

В большинстве вычислительных систем ОС является основной, наиболее важной (а иногда и единственной) частью системного ПО. С 1990-х наиболее распространёнными операционными системами являются ОС семейства Microsoft Windows и системы класса UNIX (особенно Linux и Mac OS). [wiki]

Функцией ОС является распределение процессоров, памяти, устройств и данных между процессами, конкурирующими за эти ресурсы.

Основные функции:

Дополнительные функции:


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

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


Графические оболочки для OC Windows

Последние версии ОС Windows используют в качестве своей оболочки интегрированную среду Проводника Windows. Проводник Windows представляет собой визуальную среду управления включающую в себя Рабочий стол, Меню пуск, Панель задач, а также функции управления файлами. Ранние версии ОС Windows 3.xx в качестве графической оболочки включают менеджер программ.

Многие сторонние разработчики предлагают альтернативные среды, которые могут быть использованы вместо оболочки проводника, включенной по умолчанию компанией Microsoft в систему Windows.

Перечень оболочек для Microsoft Windows: Aston shell BB4Win BBlean Cairo (Under Development) Chroma Emerge Desktop Geoshell KDE Litestep Windows Explorer Microsoft Bob

KDE (изначально проект назывался англ. Kool Desktop Environment[2]) — свободная среда рабочего стола для UNIX-подобных операционных систем. Построена на основе кросс-платформенного инструментария разработки пользовательского интерфейса Qt. Работает преимущественно под UNIX-подобными операционными системами, которые используют графическую подсистему X Window System. Новое поколение технологии KDE 4 частично работает на Microsoft Windows и Mac OS X.

Графические оболочки для unix : kde, gnome, XFce, ROX Desktop, Blackbox и другие

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


Операционные системы могут быть классифицированы по базовой технологии (UNIX-подобные, пост-UNIX/потомки UΝΙΧ), типу лицензии (проприетарная или открытая), развивается ли в настоящее время (устаревшие или современные), по назначению (универсальные, ОС встроенных систем, ОС PDA, ОС реального времени, для рабочих станций или для серверов), а также по множеству других признаков.


Машинно-зависимые свойства ОС

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

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

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

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

Для компьютеров на основе процессоров Intel x86/Pentium разработка экранирующего машинно-зависимого слоя ОС несколько упрощается за счет встроенной в постоянную память компьютера базовой системы ввода-вывода — BIOS. BIOS содержит драйверы для всех устройств, входящих в базовую конфигурацию компьютера: жестких и гибких дисков, клавиатуры, дисплея и т. д. Эти драйверы выполняют весьма примитивные операции с управляемыми устройствами, например чтение группы секторов данных с определенной дорожки диска, но за счет этих операций экранируются различия аппаратных платформ персональных компьютеров и серверов на процессорах Intel разных производителей. Разработчики операционной системы могут пользоваться слоем драйверов BIOS как частью машинно-зависимого слоя ОС, а могут и заменить все или часть драйверов BIOS компонентами ОС.

Машинно-зависимые  свойства операционных систем: обработка прерываний, планирование процессов, управление вводом-выводом, управление памятью.

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

Последовательность  действий при обработке  прерываний:

восприятие запроса на прерывание

запоминание состояния прерванного процесса

передача управления прерывающей программе

обработка прерывания

восстановление прерванного процесса

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

Планирование  процессов – управление распределением ресурсов процессора между различными конкурирующими процессами путем передачи или управления согласно некоторой стратегии планирования. 
 Машинно-независимые  свойства: Работа с файлами, планирование заданий, распределение ресурсов, защищенность и отказоустойчивость .

http://education.aspu.ru/view.php?olif=gl3#6


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

С этой точки зрения функцией ОС является предоставление пользователю некоторой расширенной или

виртуальной машины, которую легче программировать и с которой легче работать, чем непосредственно с

аппаратурой, составляющей реальную машину.



ОС как система управления ресурсами

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

ОС должна управлять всеми ресурсами вычислительной машины таким образом, чтобы обеспечить

максимальную эффективность ее функционирования. Критерием эффективности может быть, например,

пропускная способность или реактивность системы. Управление ресурсами включает решение двух общих, не зависящих от типа ресурса задач:

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

необходимо выделить данный ресурс;

отслеживание состояния ресурса - то есть поддержание оперативной информации о том, занят или не

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

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

конечном счете и определяет их облик в целом, включая характеристики производительности, область

применения и даже пользовательский интерфейс. Так, например, алгоритм управления процессором в

значительной степени определяет, является ли ОС системой разделения времени, системой пакетной

обработки или системой реального времени.