Сетевые и распределенные ОС
Интерфейс прикладного программирования
Интерфейс прикладного программирования (Application Programming Interface, API) - набор функций, предоставляемых операционной системой программисту. К этим функциям обращаются для выполнения привилегированных действий (работа с оборудованием компьютера, графический интерфейс). Для разработчиков приложений все особенности операционной системы представлены особенностями ее API. ОС с различной внутренней организацией, но с одинаковым набором API-функций представляются одинаковыми для программиста. Это позволяет упростить стандартизацию ОС и обеспечить переносимость приложений между различными ОС.
Приложения выполняют обращения к API-функциям с помощью системных вызовов.
Сетевая ОС – позволяет работать с компьютером как с автономным и имеет возможность доступа к информационным и аппаратным ресурсам других компьютеров сети.
Сетевая ОС предоставляет пользователю некую виртуальную вычислительную систему, работать с которой гораздо проще, чем с реальной сетевой аппаратурой. Эта виртуальная система не полностью скрывает распределенную природу своего реального прототипа, то есть является виртуальной сетью.
|
|
Работая в среде сетевой ОС, пользователь может запустить задание на любой машине компьютерной сети и всегда знает на какой машине выполняется его задание.
Главным направлением развития сетевых операционных систем является достижение как можно более высокой степени прозрачности сетевых ресурсов. В идеальном случае сетевая ОС должна представить пользователю сетевые ресурсы не в виде сети, а в виде ресурсов единой централизованной виртуальной машины. Для такой операционной системы используют специальное название - распределенная ОС.
Распределенная ОС существует как единая операционная система в масштабах вычислительной системы. Каждый компьютер сети, работающей под управлением распределенной ОС, выполняет часть функций этой глобальной ОС.
Распределенная ОС, динамически и автоматически распределяет работы по различным машинам системы для обработки. Пользователь распределенной ОС не имеет сведений о том, на какой машине выполняется его работа.
На рисунке 1.1 показаны основные функциональные компоненты сетевой ОС:
- средства управления локальными ресурсами компьютера реализуют все функции ОС автономного компьютера (распределение оперативной памяти между процессами, планирование и диспетчеризацию процессов, управление процессорами в мультипроцессорных машинах, управление внешней памятью, интерфейс с пользователем и т. д.);
|
|
- сетевые средства можно разделить на три компонента:
- средства предоставления локальных ресурсов и услуг в общее пользование - серверная часть ОС;
- средства запроса доступа к удаленным ресурсам и услугам - клиентская часть ОС;
- транспортные средства ОС обеспечивают передачу сообщений между компьютерами сети.
Рисунок 1.1 - Функциональные компоненты сетевой ОС
Клиентская часть ОС не получает непосредственный доступ к ресурсам другого компьютера и отправляет сообщение по сети серверной части этого удаленного компьютера.
Управляют передачей сообщений между клиентской и серверными частями по коммуникационной системе сети транспортные средства ОС. Эти средства выполняют такие функции, как формирование сообщений, разбиение сообщения на части (пакеты, кадры), организацию надежной доставки сообщений, определение маршрута в сложной сети и т. д. Правила взаимодействия компьютеров при передаче сообщений по сети фиксируются в коммуникационных протоколах, таких как Ethernet, IP, IPX и пр. Чтобы два компьютера смогли обмениваться сообщениями по сети, транспортные средства ОС должны поддерживать некоторый общий набор коммуникационных протоколов (TCP/IP).
Важная функция клиентской части ОС - способность отличить запрос к удаленному ресурсу от запроса к локальному ресурсу. Если клиентская часть ОС умеет это делать, то она сама распознает и перенаправляет (redirect) запрос к удаленной машине и называют ее редиректор. Иногда функции распознавания выделяются в отдельный программный модуль, в этом случае редиректором называют не всю клиентскую часть, а только этот модуль.
Клиентские части сетевых ОС выполняют преобразование форматов запросов к ресурсам. Они принимают запросы от приложений на доступ к сетевым ресурсам в локальной форме, принятой в локальной части ОС. В сеть запрос передается в другой форме, соответствующей требованиям серверной части ОС, работающей на компьютере с требуемым ресурсом. Клиентская часть принимает ответы от серверной части и преобразует их в локальный формат, так что для приложения выполнение локальных и удаленных запросов неразличимо.