4. Функциональные компоненты ОС. Общая характеристика

4.1. Понятие ресурса

Под ресурсом понимается любой объект, который может быть использован вычислительным процессом (распределен в процессе вычислений).

Основные ресурсы:

-  аппаратные – процессоры, память, внешние устройства;

-  информационные – данные и программы.

4.2. Основные функциональные компоненты ОС автономного компьютера

Программы ОС группируются согласно выполняемым функциям и называются подсистемами ОС. Все подсистемы разделяются на два больших класса по следующим признакам:

-  по типам локальных ресурсов, которыми управляет ОС; соответствующие подсистемы – подсистемы управления ресурсами;

-  по специфические задачи, применимым ко всем ресурсам; соответствующие подсистемы – подсистемы, общие для всех ресурсов.

Основные подсистемы управления ресурсами – это подсистемы:

·  управления процессами;

·  управления памятью;

·  управления файлами и внешними устройствами.

Общие для всех ресурсов – это подсистемы:

·  прикладного программного и пользовательского интерфейсов;

·  защиты данных и администрирования.

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

· Управление процессами

Эта подсистема – важнейшая часть ОС.

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

НЕ нашли? Не то? Что вы ищете?

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

-  распределяет процессорное время между несколькими одновременно существующими в системе процессами;

-  занимается созданием, переключением состояния и уничтожением процессов;

-  обеспечивает процессы необходимыми системными ресурсами;

-  поддерживает синхронизацию процессов;

-  обеспечивает взаимодействие процессов.

· Управление памятью

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

-  отслеживание свободной и занятой памяти;

-  выделение памяти процессам и ее освобождение при завершении процесса;

-  защита памяти процесса;

-  вытеснение процессов из оперативной памяти на диск при ее нехватке и возвращение в оперативную память при освобождении места в ней (механизм виртуальной памяти);

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

· Управление файлами и внешними устройствами

Управление файлами и внешними устройствами осуществляется совместной работой двух подсистем – файловой системы и подсистемы ввода-вывода.

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

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

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

· Интерфейс прикладного программирования и пользовательский интерфейс

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

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

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

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

Возможности ОС доступны программисту в виде набора функций, называющегося API (Application Programming Interface, интерфейс прикладного программирования).

Приложения обращаются к функциям API с помощью системных вызовов. Способ организации системных вызовов зависит от структурной организации ОС, связанной с аппаратной платформой, и от языка программирования.

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

Ниже приведен пример использования функции WinAPI CreateWindowEx (создание экземпляра окна) в Delphi-программе.

hwnd:=CreateWindowEx(

0, { параметр, относящийся к стилю окна}

Timer, {имя класса окна, то, что было определено в lpszClassName}

'Программа-таймер', {заголовок окна}

ws_overlappedWindow, {стиль окна}

10, {левая граница}

10, {верхняя граница}

500, {ширина}

200, {высота}

0, {хэндл родительского окна}

0, {хэндл оконного меню}

hInstance, {хэндл экземпляра приложения}

nil); {дополнительные параметры создания окна}

ŸŸ Под пользовательским интерфейсом понимается совокупность средств, предоставляемая человеку, работающему в интерактивном режиме за терминалом. Это может быть конечный пользователь, администратор ОС или тот же программист, но взаимодействующий с программой «извне». От такого пользователя функции API скрыты за оболочкой текстового (алфавитно-цифрового) или графического интерфейса.

Современные ОС поддерживают функции пользовательского интерфейса двух типов:

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

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

К графическому интерфейсу можно отнести и нестандартные устройства ввода, образующих «физический» интерфейс (рули, панели различных устройств типа сканера и т. п.) в ОС Windows и разновидностях Unix, располагающих GUI.

· Защита данных и администрирование

Безопасность данных обеспечивается:

-  средствами отказоустойчивости ОС (защита от сбоев и отказов аппаратуры и ошибок программного обеспечения);

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

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

4.3. Функциональные компоненты сетевой ОС

· Уточнение термина «сетевая ОС»

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

-  взаимно согласованный набор коммуникационных протоколов

§  для:организации взаимодействия процессов, выполняющихся на разных компьютерах,

§  для: разделения ресурсов этих компьютеров между пользователями сети;

-  подсистемы, организующие работу по этим протоколам.

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

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

ОС Windows, начиная с NT, различные варианты ОС Unix (HP-UX компании Hewlett-Packard, Solaris компании Sun, FreeBSD и др.), различные варианты ОС Linux, ОС MacOS, ОС NetWare компании Novell являются сетевыми.

· Функциональные компоненты сетевой ОС

Основные функциональные компоненты сетевой ОС показаны на рис. 1.2.

Рис. 1.2. Основные функциональные компоненты сетевой ОС

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

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

-  серверная часть ОС – средства предоставления локальных ресурсов и услуг в общее пользование;

-  клиентская часть ОС – средства запроса доступа к удаленным (т. е. принадлежащим другим компьютерам сети) ресурсам и услугам;

-  транспортные, или коммуникационные средства ОС – средства, совместно с коммуникационной системой обеспечивающие обмен сообщениями в сети.

Правила взаимодействия компьютеров при передаче сообщений по сети фиксируются в коммуникационных протоколах (Ethernet, Token Ring, IP, IPX и пр.).

Упрощенная схема работы сетевых ОС иллюстрируется на рис. 1.3.на примере взаимодействия двух компьютеров. Суть взаимодействия: пусть приложение, работающее на первом компьютере, использует файлы, размещенные на диске второго компьютера.

Рис. 1.3. Упрощенная схема работы сетевых ОС

Для компьютера 1 дисковое пространство диска 2 является запрашиваемым удаленным ресурсом, следовательно, запрос на этот ресурс формируется клиентской частью ОС1. ОС2 предоставляет ресурс, следовательно, запрос будет обрабатываться серверной частью ОС2.

5. Требования к современным ОС

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

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

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

· Переносимость. В идеале код ОС должен легко переноситься с процессора одного типа на процессор другого типа и с аппаратной платформы[1] одного типа на аппаратную платформу другого типа. Поскольку переносимые ОС имеют несколько вариантов реализации для разных платформ, это свойство называют также многоплатформенностью.

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

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

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

· Безопасность. Заключается в защите данных и других ресурсов от несанкционированного доступа. Обеспечивается средствами аутентификации (определения легальности пользователя), авторизации (предоставления дифференцированных прав доступа к ресурсам), аудита (фиксации «подозрительных» с точки зрения безопасности событий).

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

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