Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SysSoft.doc
Скачиваний:
520
Добавлен:
16.03.2016
Размер:
4.36 Mб
Скачать

Вызовы удаленных процедур (rpc)

Во многих случаях взаимодействие процессов носит характер «клиент–сервер». Один из процессов («клиент») запрашивает у другого процесса («сервера») не­которую услугу (сервис) и не продолжает свое выполнение до тех пор, пока эта услуга не будет выполнена (и пока процесс-клиент не получит соответствующие результаты). Видно, что семантически такой режим взаимодействия эквивален­тен вызову процедуры. Отсюда и соответствующее название. Кроме этого, ОС UNIXпо своей идеологии идеально подходит для того, чтобы быть сетевой операционной системой. И на её основе можно создавать распределённые системы и организовывать распределённые вычисления. Свойства переносимости позволя­ют создавать «операционно однородные» сети, включающие разнородные компь­ютеры. Однако остаётся проблема разного представления данных в компьютерах разной архитектуры. Поэтому одной из основных идей RPC является автомати­ческое обеспечение преобразования форматов данных при взаимодействии про­цессов, выполняющихся на разнородных компьютерах.

Реализация технологии вызовов удаленных процедур (remoteprocedurecall–RPC) достаточно сложна, поскольку этот механизм должен обеспечить работу взаимодействующих процессов, которые находятся на разных компьютерах. Если в случае обращения к процедуре, расположенной на том же компьютере, процесс общается с ней через стек или общие области памяти, то в случае удаленного вызова передача параметров процедуре превращается в передачу запроса по сети. Соответственно, и получение результата так же осуществляется посредством использования сетевых механизмов.

Удаленный вызов процедур включает следующие шаги [70]:

 процесс-клиент осуществляет локальный вызов процедуры, которую называ­ют «заглушкой» (stub). Задача этого модуля-заглушки – принять аргументы, преобразовать их в стандартную форму и сформировать сетевой запрос. Упа­ковка аргументов и создание сетевого запроса называется сборкой (marshal­ling);

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

Операционная системаLinux

Linux– это современная POSIX-совместимая и UNIX-подобная операционная система для персональных компьютеров и рабочих станций.

Как известно, Linux– это свободно распространяемая версияUNIX, которая пер­воначально была разработана Линусом Торвальдсом (LinusTorvalds) (torvalds@kruuna.helsinki.fi) в университете Хельсинки (Финляндия). Все компоненты системы, включая исходные тексты, распространяются с лицензией на свободное копирование и установку для неограниченного числа пользователей.

Linux был создан с помощью многих UNIX-программистов и энтузиастов из Ин­тернета. К данному проекту добровольно подключились те, кто имеет достаточно навыков и способностей развивать систему. Большинство программ Linux разра­ботано в рамках проекта GNUизFreeSoftwareFoundationв Кэмбридже, Массачусетс. Но в него внесли лепту также программисты всего мира.

Изначально Linux создавался как «самодельная» UNIX-подобная реализация для ПК типа IBMPCс процессором i80386. Однако Linux стал настолько популярен и его нынче поддерживает такое большое число компаний, что в настоящее время имеется реализация этой ОС практически для всех типов процессоров и компьютеров на их основе. На базе ОС Linux создаются и встроенные системы, и суперкомпьютеры. Система поддерживает кластеризацию и большинство современных интерфейсов и технологий.

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

Linux – это полноценная многозадачная многопользовательская операционная система (точно так же, как и все другие версии UNIX). Это означает, что одновременно много пользователей могут работать на одной машине, одновременно выполняя много программ. Linux достаточно хорошо совместим с рядом стандартов дляUNIX(насколько можно говорить о стандартизацииUNIX) на уровне исходных текстов, включаяIEEEPOSIX.l,SystemVиBSD. Такая совмести­мость учитывалась при его создании. Большинство свободно распространяемых по сети Интернет программ дляUNIXможет быть откомпилировано для LINUX практически без особых изменений. Кроме того, все исходные тексты для Linux, включая ядро, драйверы устройств, библиотеки, пользовательские программы и инструментальные средства распространяются свободно. Другие специфические внутренние черты Linux включают контроль работ по стандартуPOSIX(исполь­зуемый оболочками, такими какcshиbash), псевдотерминалы (pty), поддержку национальных и стандартных клавиатур динамически загружаемыми драйвера­ми клавиатур.

Linux поддерживает различные типы файловых систем для хранения данных. Некоторые файловые системы, такие как файловая система ext2fs,были созданы специально для Linux. Поддерживаются также другие типы файловых систем, напримерMinix-1 иXenix. Реализована также система управления файлами на основеFAT, позволяющая непосредственно обращаться к файлам, находящим­ся в разделах с этой файловой системой. Поддерживается и файловая системаISO9660CD–ROMдля работы с дискамиCD-ROM. Имеются системы управле­ния файлами и на томах сHPFSиNTFS, правда, они работают только на чте­ние файлов. Созданы варианты системы управления файлами и для доступа кFAT32.

Linux, как и все UNIX-системы, обеспечивает полный набор протоколов стека TCP/IP для сетевой работы. Это включает драйверы устройств для многих популярных сетевых адаптеров технологииEthernet, протоколыSLIP(seriallineInternetprotocol, обеспечивающий доступ по TCP/IP при последовательном со­единении),PLIP(parallellineInternetprotocol),PPP(point-to-pointprotocol),NFS(networkfilesystem) и т. д. Поддерживается весь спектр клиентов и услуг TCP/IP, таких какFTP,telnet,NNTPиSMTP. Очень часто на компьютерах, работаю­щих под управлением Linux, реализуют DNS-сервер, WWW-серверы (Apache), файерволы для защиты локальных сетей при работе в Интернете, почтовые сер­веры, серверDHCP.

Ядро Linux сразу было создано с учётом возможностей защищённого режима про­цессоров Intel80386 и 80486. В частности, Linux использует парадигму описания памяти в защищённом режиме и другие новые свойства процессоров. В отличие от старых версийUNIX, в которых задачи выгружались во внешнюю память на магнитных дисках целиком, ядро Linux поддерживает загрузку только нужных страниц. То есть с диска в память загружаются те сегменты программы, которые действительно используются. Возможно использование одной страницы, физически один раз загруженной в память, несколькими выполняемыми программами, то есть реентерабельность кода, присущая всем UNIX-системам, сохранилась. В настоящее время имеются ядра для этой системы, оптимизированные для ра­боты с процессорамиIntelиAMDпоследнего поколения, хотя основные архи­тектурные особенности защищенного режима работы изменились мало.

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

Выполняемые программы используют динамически связываемые библиотеки, то есть выполняемые программы могут совместно использовать библиотечную про­грамму, представленную одним физическим файлом на диске. Это позволяет выполняемым файлам занимать меньше места на диске, особенно тем, которые многократно используют библиотечные функции. Есть также статические связываемые библиотеки для тех, кто желает пользоваться отладкой на уровне объектных кодов или иметь «полные» выполняемые программы, которые не нужда­ются в разделяемых библиотеках. В Linux разделяемые библиотеки динамически связываются во время выполнения, позволяя программисту заменять библиотеч­ные модули своими собственными.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]