Управление процессами.
Эта подсистема – важнейшая часть ОС. Процесс кратко можно определить как «про-
грамму в стадии выполнения». Реально это некоторый исполняемый код, содержащий
обращения к функциям операционной системы и через их посредство получающий дос-
туп к ресурсам. Таким образом, процесс можно также определить как некоторую заявку
на потребление системных ресурсов.
Подсистема управления процессами планирует выполнение процессов и выполня-
ет следующие функции:
- распределяет процессорное время между несколькими одновременно существу-
ющими в системе процессами;
- занимается созданием, переключением состояния и уничтожением процессов;
- обеспечивает процессы необходимыми системными ресурсами;
- поддерживает синхронизацию процессов;
- обеспечивает взаимодействие процессов.
14
Управление памятью.
Функциями подсистемы управления памятью являются:
- отслеживание свободной и занятой памяти;
- выделение памяти процессам и ее освобождение при завершении процесса;
- защита памяти процесса;
- вытеснение процессов из оперативной памяти на диск при ее нехватке и возвра-
щение в оперативную память при освобождении места в ней (механизм виртуаль-
ной памяти);
- настройка адресов программы на конкретную область физической памяти.
Управление файлами и внешними устройствами.
Управление файлами и внешними устройствами осуществляется совместной работой двух подсистем – файловой системы и подсистемы ввода-вывода. Файловая система (ФС), экранирует сложности взаимодействия с реальной аппаратурой при работе с данными. ФС виртуализирует для пользователя набор данных на внешнем накопителе в виде файла – последовательности байтов, имеющей символьное имя. Файлы группируются в каталоги. Пользователь может с помощью ОС выполнять над каталогами и файлами такие действия как создание, изменение, удаление, вывод содержимого, поиск по имени.
Файловая система выполняет преобразование символьных имен файлов в физические адреса данных на диске, организует совместный доступ к файлам, защищает
их от несанкционированного доступа.
Подсистема ввода-вывода, или подсистема управления внешними устройствами, осуществляет передачу данных между дисками и оперативной памятью по запросам файловой системы. Эта подсистема, располагая набором драйверов различных устройств, обеспечивает также интерфейс между компьютером и устройствами, подключенными к нему.
Таким образом, ОС поддерживает высокоуровневый унифицированный интерфейс
для написания прикладных программ. Со времени появления ОС Unix этот интерфейс в большинстве систем строится на концепции файлового доступа: обмен с внешним устройством выглядит как обмен с файлом. В качестве файла может выступать как реальный файл на диске, так и алфавитно-цифровой терминал, принтер
или сетевой адаптер. Реальная аппаратура подменяется удобными для пользователя и программиста абстракциями.
Интерфейс прикладного программирования и пользовательский интерфейс.
Под интерфейсом прикладного программирования понимаются _____средства, предоставляемые операционной системой для обращения к ее возможностям при написании приложений. Традиционно термин «прикладное программирование» использовался как противоположный «системному программированию». Относительное различие системного и прикладного программирования заключается в том, что путем создания программ первое пред-
полагает расширение возможностей операционной системы, а второе – решение задач из конкретной проблемной области. В данном случае это различие несущественно.
В программах обращения к ОС используются по крайней мере в следующих случаях:
- для выполнения действий с особым статусом, которым обладает только ОС (на-
пример, для управления аппаратными средствами компьютера); обычно это необходимо для более эффективного использования аппаратных ресурсов;
- для упрощения написания приложений посредством использования готовых отлаженных сервисных функций ОС, реализующих часто требующиеся универсальные действия.
Возможности ОС доступны программисту в виде набора функций, называющегося API (Application Programming Interface, интерфейс прикладного программирования_______). При этом для разработчика приложений все особенности конкретной ОС представлены особенностями ее API, поэтому операционные системы с различной внутренней организацией, но с одинаковым набором функций API представляются на этом уровне как одна ОС. Это упрощает стандартизацию ОС и обеспечивает переносимость приложений в рамках ОС одного стандарта. Например, следование общим стандартам API Unix позволяет говорить о некоторой обобщенной ОС Unix при существенных различиях внутренней организации версий этой ОС от разных производителей.
17
Приложения обращаются к функциям API с помощью системных вызовов. Способ
организации системных вызовов зависит от структурной организации ОС, связанной
с аппаратной платформой, и от языка программирования. Так, в MS-DOS обращение к системным функциям осуществляется из программы на языке ассемблера путем вызова программного прерывания. Предварительно в регистры заносятся код системной функции и адрес размещения входных данных либо
сами данные. Выходные данные возвращаются функцией в зависимости от ее назначения на устройство вывода либо через регистр. Термин API применительно _____к средствам вызова системных функций MS-DOS не использовался (он введен позже) и может быть применен только задним числом.
ОС Windows поддерживает объектно-ориентированный стиль программирования.
Объектами являются окна. Поэтому работа с системными функциями Windows может
осуществляться по тем же правилам, что и с пользовательскими функциями. Напри-
мер, программу с использованием системных функций Windows можно реализовать в среде Delphi или на С++.
Функции WinAPI находятся в системных загружаемых библиотеках, таких как
system32.dll, kernel32.dll, user32.dll, gdi32.dll и др. (каталог g:\WINDOWS\system32).
Эти библиотеки используются самой ОС, поэтому они всегда находятся в памяти. Каждое приложение должно самостоятельно подключать библиотеки, содержащие необходимые ему функции. Описания функций WinAPI на языке Си можно посмотреть через меню Пуск/Программы/Borland Delphi 7/Help/MS SDK Help Files/Win32 Developer’s References.
В ОС Unix вызов системных функций аналогичен вызову пользовательских; необходимые описания функций организованы в системных заголовочных файлах.
- Под пользовательским интерфейсом понимается совокупность средств, предоставляемая человеку, работающему в интерактивном режиме за терминалом. Это
может быть конечный пользователь, администратор ОС или тот же программист, но взаимодействующий с программой «извне». От такого пользователя функции API скрыты за оболочкой текстового (алфавитно-цифрового) или графического интерфейса.
Современные ОС поддерживают функции пользовательского интерфейса двух типов:
- командный язык для работы с терминалом; команды вводятся по одной с терминала либо их последовательность считывается из командного файла и выполняются командным интерпретатором (разновидности Unix в их исходном варианте);- графический пользовательский интерфейс (GUI); выполнению нужного действия соответствует выбор с помощью мыши пункта меню или пиктограммы, либо иные операции с визуальными элементами на экране. К графическому интерфейсу можно отнести и нестандартные устройства ввода, образующих «физический» интерфейс (рули, панели различных устройств типа сканера и т.п.) в ОС Windows и разновидностях Unix, располагающих GUI.
· Защита данных и администрирование
Безопасность данных обеспечивается:
- средствами отказоустойчивости ОС (защита от сбоев и отказов аппаратуры и ошибок программного обеспечения);
18
- средствами защиты от несанкционированного доступа (защита от ошибочного или злонамеренного поведения пользователей системы. Функции защиты тесно связаны с функциями администрирования, так как именно администратор определяет права и возможности пользователей, отслеживает события, от которых зависит безопасность системы, и поддерживает отказоустойчивость (например,
посредством утилит регулярно выполняя операции резервного копирования). Рассмотрим функциональные компоненты сетевой ОС__
15
