Учебное пособие: Операционные системы "тонких" клиентов
Остальные минидиски
сервера составляют пользовательские данные, которые для удобства управления
разбиваются на группы памяти. Всего возможно до 32К групп памяти, группы могут
добавляться к файловому пулу. Размер всех групп памяти одинаков, группа состоит
из нескольких минидисков, желательно - находящихся на разных реальных дисках.
CMS Open Extension
Чрезвычайно важным
компонентом CMS является Open Extension, позволяющий CMS функционировать как
Unix-системе. Open Extension обеспечивает выполнение ряда спецификаций
стандартов POSIX, Single Unix Specification и DCE, как в части интерпретатора
shell и утилит, так и в части API и файловой системы.. Для соблюдения стандарта
POSIX в иерархическую файловую систему в SFS добавлено расширение, называемое
Байтовой Файловой Системой BSF (Byte File System). BFS, в отличие от SFS,
обеспечивает байориентированное представление файлов, иерархическую структуру
каталогов без ограничений на глубину вложенности, связи и символьные связи,
права доступа к файлам. Open Extension позволяет разрабатывать в CMS
POSIX-совместимые приложения и портировать таковые в CMS, а также
функционировать выполняемым в CMS приложениям в гетерогенной распределенной
среде.
GCS
Групповая Управляющая
Система GCS (Group Control System), как и CMS, является гостевой ОС -
компонентом z/VM. GCS не конкурирует с CMS, они предназначены для разных задач.
Если CMS - система для поддержки интерактивной работы, разработки и
администрирования, то GSC - среда для выполнения приложений, прежде всего -
приложений, тесно взаимодействующих друг с другом и приложений в архитектуре
IBM SNA (System Network Architecture).
GSC позволяет объединять
ВМ в группы, управляемые общим супервизором. Все ВМ в группе используют общий
загруженный код ОС и ряда системных сервисов, а также имеют общую область
памяти, доступную для чтения и записи.
Специфической функцией
GCS в составе z/VM является является поддержка архитектуры SNA как части z/VM
без помощи какой-либо другой ОС. Эта поддержка выполняется продуктом ACF/VTAM (Advanced
Communication Functiom/Virtual Telecommunications Access Method). Версия VTAM для GCS выполняется на
одной из ВМ группы и управляет потоками данных, проходящими между сетевыми
устройствами и программами, выполняющимися на других ВМ группы. VTAM также
предоставляет сетевой интерфейс другим программным продуктам, обеспечивающим
коммуникации, таким как:
APPC (Advanced
Program-to-Program Communications)/VM Support, обеспечивающий высокоуровневый
интерфейс взаимодействия программ по протоколу APPC, независящий от того,
являются взаимодействующие программы локальными или удаленными;
RSCS (Remote Spooling
Communications Subsystem), обеспечивающая передачу информации через сеть SNA,
работу с файлами спулинга и передачу сообщений через связи не-SNA;
NetView - средство
управления сетями SNA.
Виртуальное АП,
создаваемое GCS для выполняющихся в ней приложений, отчасти напоминает АП
приложений CMS: 16-Мбайтное пространство распределяется следующим образом (от
меньших адресов к большим):
управляющие блоки GCS,
создаваемые для каждой ВМ;
частное АП приложений;
коды ядра общие
управляющие блоки GCS (совместно используемые группой);
общая область данных,
общие управляющие блоки GCS (только чтение);
общая область памяти
(чтение и запись).
При расширении АП выше 16
Мбайт в верхней части АП создаются дополнительные порции частного АП и области
данных и памяти.
В отличие от CMS, GCS
является многозадачной ОС, поэтому задача управления памятью для нее сложнее:
нужно обеспечить динамическое выделение памяти для нескольких программ и защиту
памяти одной программы от другой. Для разделения областей памяти, принадлежащих
разным программам, GCS использует механизм ключей защиты памяти (описанный в
разделе 12.1). При запросе программы на выделение памяти GCS ищет свободную
страницу, ключ защиты которой совпадает с ключом программы, выдавшей запрос,
при отсутствии таковой - изменяет ключ защиты любой другой свободной страницы.
GSC поддерживает
многозадачность на одной ВМ. Следует, однако, помнить о том, что распределение
процессорного обслуживания между программами GSC ведется в рамках того кванта
времени, который выделяется виртуальной машине CP. GSC распределяет
обслуживание по принципу абсолютных приоритетов, число градаций приоритета - 256
(приоритет 255 - наивысший). Задача, выбранная на выполнение, вытесняется
только тогда, когда она переходит в состояние ожидания или в состояние
готовности приходит задача с более высоким приоритетом. Если, однако, имеется
несколько задач с одинаковым наивысшим приоритетом, они получают обслуживание в
режиме квантования времени. Приоритет задачи/подзадачи устанавливается при ее
порождении и может быть изменен только явным образом - системным вызовом CHAP.
Механизмы управления задачами в GCS - те же, что и в z/OS:
системные вызовы ATTACH и
DETACH - для порождения и уничтожения задач;
системные вызовы WAIT и
POST и блоки ECB - для синхронизации выполнения;
системные вызовы ENQ и
DEQ - для взаимного исключения доступа к ресурсам.
Linux в z/VM
В разделе, посвященном
z/VM, будет уместно упомянуть и Linux for 390, и Linux for zSeries. ОС Linux
была портирована на мейнфреймы в рамках Advanced Technology Project, и этот
проект активно поддерживается IBM. Linux не является чисто гостевой ОС для
z/VM, эта ОС может работать и непосредственно на вычислительном комплексе,
однако мощности ОС Linux, разумеется, недостаточно для управления ресурсами
полноценного мейнфрейма. Поэтому Linux применяется как самостоятельная ОС в
небольшом логическом разделе мейнфрейма или (чаще всего) как гостевая ОС в
z/VM. Использование Linux в таком качестве позволяет обеспечить конечных
пользователей мейнфрейма рабочими станциями, обладающими гибкостью, надежностью
и способностью работать в тесном взаимодействии с другими системами. Немаловажным
является то обстоятельство, что виртуальные рабочие станции Linux делают
мейнфреймы доступными для огромного числа пользователей, которые не знакомы со
спецификой работы в их ОС. Поскольку ОС мейнфреймов поддерживают стандарты
работы в Открытой распределенной среде, многие мощные сервисы, обеспечиваемые
другими ОС мейнфреймов, являются доступными и для виртуальных рабочих станций
Linux.
Глава 13. Платформа Java
как операционная среда
13.1 Основные свойства
платформы Java
Принято считать, что технология
Java зародилась в 1980 г. Она была создана группой разработчиков фирмы Sun
Microsystems, инициаторами этого проекта являлись Патрик Нотон и Джеймс
Гослинг. Первоначально этот проект (тогда он назывался Oak) предназначался для
управления включением в сеть бытовых устройств со встроенными вычислительными
возможностями. В 1995 году проект получил свое нынешнее название и был
переориентирован на программирование в Internet. В дальнейшем возможности и
функции языка и платформы Java существенно расширились. На сегодняшний день
можно назвать четыре типа программ, создаваемых в рамках технологии Java:
приложения - программы в
обычном смысле, выполняемые, однако, в среде платформы Java;
аплеты - программы,
выполняемые в среде Web-броузера, поддерживающего платформу Java (Sun HotJava,
Netscape Communicator, Microsoft Internet Explorer), такие программы могут
передаваться по Internet и выполняться на компьютере клиента;
сервлеты и корпоративные
бины - Java-программы, серверные компоненты распределенных приложений;
программы (пока для них
нет общего названия), выполняющиеся в средах продуктов промежуточного
программного обеспечения, например, программы для сервера приложений Lotus
Domino, хранимые процедуры для СУБД IBM DB2 и Oracle и т.п.
Технология Java состоит
из двух основных компонентов:
языка программирования
Java [19];
платформы Java [25].
Язык программирования
Java является универсальным объектно-ориентированным языком программирования,
синтаксис которого очень похож на синтаксис C++. Отличия Java от С++ состоят в
том, что, во-первых, Java гораздо более последовательно воплощает парадигму
объектно-ориентированного программирования, во-вторых, в Java отсутствуют
некоторые свойства C++, делающие последний трудным для понимания и легким для
ошибок (например, арифметика указателей), в-третьих, в Java введены некоторые
дополнительные свойства, расширяющие его функциональность (например, нити и
синхронизация). Сам по себе язык Java был бы не столь интересен (во всяком
случае, для нас), если бы не платформа Java. Платформа Java или среда
выполнения Java (JRE - java runtime environment) - это набор программных
средств, обеспечивающих выполнение Java-программы на любой аппаратной платформе
и в среде любой ОС. В JRE входит виртуальная машина Java и набор стандартных
библиотек Java. Девиз технологии Java - "написано однажды - работает
везде". Sun Microsystems декларирует большой набор достоинств языка и
платформы Java, но, безусловно, ключевым достоинством Java является переносимость.
Переносимость в Java
достигается за счет того, что Java-программа компилируется не непосредственно в
команды какой-либо конкретной ЭВМ, а в, так называемый, байт-код Java - команды
некоторой абстрактной машины, называемой виртуальной машиной Java (Java VM),
как показано на рисунке 13.1. Конечным результатом (исполняемым модулем)
является файл класса - программа в байт-коде Java. На целевой платформе (на той
машине, на которой программа выполняется) должна быть запущена программная Java
VM, которая эмулирует ЭВМ, способную выполнять команды байт-кода Java. Сама
Java VM платформенно-зависимая, то есть, предназначена для выполнения на
конкретной платформе и в конкретной операционной системе. Java VM читает
команды байт-кода Java и моделирует их выполнение на той аппаратной платформе и
в той операционной среде, в которой она работает. При этом она использует
библиотеки Java, также платформенно-зависимые. Стержнем технологии являются
спецификации байт-кода Java, файла класса и Java VM. Компиляторы Java могут быть
созданы (и создаются) разными разработчиками, но все генерируемые ими
исполняемые модули должны соответствовать спецификациям байт-кода Java. Более
того, существуют и компиляторы других языков программирования, которые
генерируют байт-код Java. Также различными разработчиками могут разрабатываться
(и разрабатываются) и Java VM, но все Java VM должны выполнять стандартный
байт-код Java.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 |