Файл: А. В. Гордеев А. Ю. Молчанов системное программное обеспечение электронный вариант книги издательства Питер СанктПетербург Челябинск юургу каф. Автоматика и управление 2002 2 Предисловие Настоящий учебник.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 12.01.2024
Просмотров: 1002
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
421
Семейство 32-разрядных ОС для IBM-совместимых компьютеров начало свою историю с появления первой OS/2 v 2.0 в 1992 году. Сейчас мы, как правило, име- ем дело уже с четвёртой версией ОС этого семейства. Все ОС в своём названии имеют слово Warp, что переводится с английского как «основа».
OS/2 Warp 4.0 практически представляет собой OS/2 Warp 3.0 (вышедшую ещё
в 1994 г.) с несколько улучшенными параметрами для DOS-задач, обновлёнными элементами объектно-ориентированного интерфейса, и включает в себя:
♦ вытесняющую многозадачность (preemptive multitasking) и поддержку DOS- и Windows- (Win32s) приложений;
♦ по-настоящему интуитивно понятный и действительно удобный объектный пользовательский интерфейс;
♦ поддержку стандарта открытого объектного документооборота OpenDoc;
♦ поддержку стандарта OpenGL;
♦ поддержку и встроенную разработку на языке Java;
♦ поддержку шрифтов True Type (TTF);
♦ управление голосом без предварительной подготовки (технология Voice
Type);
♦ полную поддержку глобальных сетей Интернет и технологии intranet, дос- туп в CompuServe
1
;
♦ средства построения одноранговых сетей и клиентские части для IBM LAN
Server, Windows, Lantastic, Novell Netware 4.1 (в том числе поддержку службы ка- талогов);
♦ систему удалённого доступа через модемные соединения;
♦ Mobile File System для поддержки мобильных пользователей;
♦ стандарт автораспознавания аппаратных устройств Plug-and-Play (но без столь навязчивого механизма, который реализован в Windows);
1
CompuServe – американская популярная сетевая служба.
422
♦ набор офисных приложений
1
(базы данных, электронные таблицы, тексто- вый процессор, генератор отчетов, деловая графика, встроенная система приёма/
передачи факсимильных сообщений, информационный менеджер);
♦ полную MultiMedia поддержку, включая работу с видеокамерой, расширен- ную систему помощи WarpGuide.
Однако наиболее заманчивы не перечисленные из рекламного буклета воз- можности системы, а удобная и надёжная среда при работе с базами данных, рабо- та в сетях, организованная как клиентское рабочее место при работе с большими системами.
OS/2 Warp предлагает единый интерфейс для программирования прикладных программ (API), совместимый с рядом операционных систем, что позволяет сни- зить стоимость разработок. Все версии OS/2 и LAN Server, включая текущие вер- сии OS/2 Warp и OS/2 Warp Server 4.5, совместимы по восходящей линии, что по- зволяет экономить средства, необходимые для поддержания уже существующих прикладных программ.
Чрезвычайно важным для пользователей является тот факт, что компания IBM
для всех версий своей ОС регулярно выпускает пакеты обновления (FixPak). Эти пакеты исправляют обнаруженные ошибки, а также вносят новые функции. Для пользователей такая практика сопровождения фирмой своей ОС, безусловно, более выгодна, нежели практика частого выпуска новых версий ОС (ей следует компания
Microsoft), в которых обещается исправление обнаруженных ранее недостатков и появление новых функций. Действительно, значительные капиталовложения тре- буются не только для приобретения новой системы, но и на её освоение.
Так, например, для версии одной из своих самых удачных ОС – Windows NT
4.0 – компания Microsoft выпустила всего только 6 пакетов обновления (Service-
Pak), тогда как для OS/2 Warp 3.0, которая вышла в свет в 1994 году, компания IBM
выпустила уже несколько десятков FixPak. Для OS/2 Warp 4.0 вышло 15 FixPak.
Пакеты исправлений и обновлений пользователи получают бесплатно, тогда как за
1
Справедливости ради следует заметить, что этот набор приложений (называемый ВоnusPak) не совместим с совре- менными версиями Microsoft Office, и поэтому его используют, как правило, только в «закрытых системах», когда нет обмена с документами, изготовленными посредством приложений Microsoft Office.
423
новую систему приходится платить большие деньги. К тому же длительная работа по исправлению имеющихся в системе ошибок приводит к уменьшению количест- ва последних со временем, и система становится всё более надёжной и функцио- нальной, в то время как новая версия ОС, как правило, содержит существенно больше ошибок, нежели предыдущая, поскольку объём её становится всё больше и больше, а времени на создание ОС отводится столько же.
Очень полезным, как для управления приложениями, так и для создания не- сложных собственных программ, является наличие системы программирования на языке высокого уровня REXX, который иногда называют языком процедур. Можно сказать, что это встроенный командный язык, служащий для тех же целей, что и язык для пакетных (batch) файлов в среде DOS, но он обладает несравнимо боль- шими возможностями. Это язык высокого уровня с нетипизированными перемен- ными. Язык легко расширяем, любая программа OS/2 может добавлять в него но- вые функции. Помимо встроенного интерпретатора с языка REXX имеется система программирования Visual REXX. Есть и объектно-ориентированная версия языка
REXX с соответствующим интерпретатором.
Наиболее сильное впечатление, которое можно получить при работе в OS/2,
оставляет объектно-ориентированный графический пользовательский интерфейс, а особой популярностью у программистов эта система пользовалась вследствие очень хорошей организации VDM-машин и высокого быстродействия при выпол- нении обычных DOS-приложений.
Особенности архитектуры и основные возможности OS/2 Warp
Строение и функционирование OS/2 можно считать практически идеальными с точки зрения теории и довольно неплохими – в реализации. В качестве подтвер- ждения этому можно привести один пример, который представляется очень пока- зательным: OS/2 до сегодняшних дней практически неизменна, начиная с версии
2.0, увидевшей свет в 1992 году. Этот факт говорит о глубокой продуманности ар- хитектуры системы, ведь и по сей день OS/2 является одной из самых мощных и продуктивных ОС. Здесь наиболее показательными являются тесты серверов.
424
В одной из вычислительных лабораторий Санкт-Петербургского государст- венного университета аэрокосмического приборостроения (ГУАП) с 1995 года в течение нескольких лет функции сервера кафедры вычислительных систем и сетей выполняла OS/2 Warp Adwanced Server. При переходе на сервер Windows NT 4.0
пришлось в два раза увеличить объём оперативной памяти и поменять процессор (с
Pentium 90 до Pentium II 300), и даже после этого скорость работы обычных при- ложений на рабочих станциях не смогла достичь той производительности, какую имели пользователи при сервере на базе OS/2. Аналогичные замечания можно про- честь и в зарубежных публикациях – однопроцессорный OS/2 Warp Server обгоняет по производительности двухпроцессорную Windows NT. Разработчики системы
OS/2 решили использовать статические структуры данных (таблицы) для различ- ных системных информационных структур, что приводит к большему быстродей- ствию. Для реализации механизмов поддержки виртуальной памяти использованы наиболее эффективные алгоритмы. Очень удачно реализована диспетчеризация за- дач.
В OS/2 имеется несколько видов виртуальных машин для выполнения при- кладных программ. Собственные 32- и 16-разрядные программы OS/2 выполняют- ся на отдельных виртуальных машинах в режиме вытесняющей многозадачности и могут общаться между собой с помощью средств DDE OS/2. Прикладные про- граммы DOS и Win 16 могут запускаться на отдельных виртуальных машинах в многозадачном режиме. При этом они поддерживают полноценные связи DDE и
OLE 2.0 друг с другом и связи DDE с 32-разрядными программами OS/2. Кроме то- го, при желании можно запустить несколько программ Win 16 на общей виртуаль- ной машине Win 16, где они работают в режиме невытесняющей многозадачности,
как это реализовано в Windows 3.х.
Разнообразные сервисные функции API OS/2, в том числе SOM (system object model – модель системных объектов), обеспечиваются с помощью системных ди- намических библиотек DLL, к которым можно обращаться без требующих затрат времени переходов между кольцами защиты. Ядро OS/2 предоставляет многие ба- зовые сервисные функции API, обеспечивает поддержку файловой системы, управ-
425
ление памятью и имеет диспетчер аппаратных прерываний. В ядре виртуальных
DOS-машин (VDM-ядре) осуществляется эмуляция DOS и процессора 8086, а так- же управление VDM. Драйверы виртуальных устройств обеспечивают уровень ап- паратной абстракции. Драйверы физических устройств напрямую взаимодейству- ют с аппаратурой.
Модуль реализации механизмов виртуальной памяти в ядре OS/2 поддержива- ет большие, постраничные, разбросанные адресные пространства, составленные из объектов памяти. Каждый объект памяти управляется так называемым «пейдже- ром» – задачей вне ядра, обеспечивающей резервное хранение страниц объекта па- мяти. Адресные пространства управляются отображением или размещением объек- тов памяти внутри них. Ядро управляет защитой памяти и её распределением на основе объектов памяти абстрактным образом, вне зависимости от каких-либо кон- кретных аппаратных средств трансляции процессорных адресов. В частности, ядро интенсивно использует режим копирования при записи для придания программам способности делить объекты памяти без копирования большого числа страниц, ко- гда новое адресное пространство получает доступ к объекту памяти. Новые копии страниц создаются только тогда, когда программа в одном из адресных про- странств обновляет их. Когда ядро принимает страничный сбой в объекте памяти и не имеет страницы памяти в наличии или когда оно должно удалить страницы из памяти по требованию других программ, работающих в машине, оно с помощью механизма IPC
1
уведомляет пейджер об объекте памяти, в котором произошёл сбой. Теперь дело пейджера сервера приложений определить, каким образом пре- доставить или сохранить данные. Это позволяет системе устанавливать различную семантику для объектов памяти, основываясь на потребностях программ, которые их используют.
Ядро управляет средами исполнения для программ обеспечением множест- венных заданий и потоков. Каждое задание имеет своё собственное адресное про- странство или отображение. Оно назначает объекты памяти, которые задание ото- бразило на диапазон адресов внутри адресного пространства. Задание также явля-
1
IPC (interprocessing communications) – межпроцессное взаимодействие.
426
ется блоком размещения ресурсов и защиты, при этом заданиям придаются воз- можности и права доступа к средствам IPC системы. Для поддержки параллельного исполнения с другой программой в пределах одного адресного пространства ядро отделяет среду исполнения от действительно идущего потока инструкций. Потоки вычислений, включая процессорные ресурсы, потребные для их поддержки, назы- ваются потоками. Таким образом, программа может быть загружена в задание и может быть исполнена в нескольких различных местах в коде в одно и то же время на мультипроцессоре или параллельной машине. Это приводит к повышению бы- стродействия приложения.
Система IPC обеспечивает базовый механизм, позволяющий потокам работать в различных заданиях для связи друг с другом. Система IPC поддерживает надёж- ную доставку сообщений на порты. Порты представляют собой защищенные кана- лы между заданиями. Каждому заданию, использующему порт, приписывается на- бор прав на этот порт. Права могут быть различными для разных заданий. Только одно задание может получать по какому-либо порту, хотя любой поток внутри за- дания может выполнять операцию приёма. Одно или более заданий могут иметь права посылать в порт. Ядро позволяет заданиям применять систему IPC на пере- дачу друг другу прав на порт. Оно также обеспечивает высокопроизводительный способ передачи больших областей данных в сообщениях. Вместо того чтобы ко- пировать данные, сообщение содержит указатель на них, он называется указателем на данные вне линии. Когда ядро передает сообщение от передатчика к приёмнику,
оно заставляет передаваемую память появиться в адресном пространстве приёмни- ка и, как вариант, исчезнуть из адресного пространства передатчика. Ядро само структурировано как задание с потоками, и большинство системных сервисов реа- лизованы как механизмы IPC к ядру, а не как прямые системные вызовы.
Для поддержки операций ввода/вывода (I/O) и доступа к внешним устройст- вам ядро ОС обеспечивает доступ к ресурсам I/O, таким как устройства с отобра- жаемой памятью, I/O порты и каналы прямого доступа к памяти (DMA
1
), а также возможность отражать прерывания на драйверы устройств, исполняемые в пользо-
1
DMA (direct nemory access) – канал прямого доступа к памяти.
427
вательском пространстве. Оно имеет сервисы, которые позволяют приоритетным программам заполучать устройства в своё владение: такими программами обычно являются задачно-нейтральные сервисы, типа серверов драйверов устройств, рабо- тающих как приложения. Поскольку ядро обязано разместить все прерывания (в силу того, что прерывания обычно выдаются в приоритетном состоянии компью- тера, а также в целях поддержания целостности системы), оно имеет логику, кото- рая определяет, должно ли оно обрабатывать прерывание или его следует отразить на сервер. Если прерывание следует отразить в приложение, оно должно быть заре- гистрировано в ядре и содержать код, который будет ожидать, пока ядро не отразит прерывание. Как только прерывание отражено, в приложении запускается поток по обработке прерывания.
Характеристики наборов хоста (host) и процессора предоставляют два связан- ных набора функций, требующихся, если прикладным программам следует обеспе- чить максимум сервисов операционной системы. Характеристики набора хоста возвращают информацию о процессорном комплексе, работающем в системе, и предоставляют определённые функции системного менеджмента типа времени, да- ты, останова и рестарта системы. Характеристики набора процессора используются в мультипроцессорных машинах для группировки процессоров в классы. Эти клас- сы позволяют параллельному приложению выполнять несколько потоков одновре- менно на различных процессорах в машине, в итоге происходит истинно парал- лельное исполнение.
В соответствии с концепцией микроядерных ОС непосредственно поверх ядра системы OS/2 располагается ряд серверов приложений, которые обеспечивают сис- темные сервисы общего назначения, то есть задачно-нейтральные сервисы. Они за- висят только от ядра, некоторых вспомогательных сервисов, экспортируемых до- минирующей задачей операционной системы, и от себя самих. В числе задачно–
нейтральных сервисов имеются пейджер умолчания, мастер-сервер, который загру- жает другие задачно-нейтральные серверы в память, сервис низкоуровневых имён,
сервис защиты, сервисы инициализации, набор драйверов устройств со связанным кодом поддержки, а также библиотечные подпрограммы для стандартной про-
428
граммной среды. Дополнительные задачно-нейтральные сервисы типа одиночного файлового сервера могут быть просто добавлены.
С помощью ядра ОС и задачно-нейтральных сервисов приоритетная задача может обеспечить операционную системную среду типа UNIX. Поскольку приори- тетная задача является прикладным сервером, возможно добавлять другие серверы для различных задач, исполняющих программы, написанные в различных операци- онных системах, работающих на машине в одно и то же время.
Существуют некоторые операционные системные сервисы, такие как трансля- ция сообщений об ошибках, не обеспечиваемые задачно-нейтральными сервисами.
Поскольку лучше не дублировать подобные сервисы, приоритетная задача обеспе- чивает эти сервисы не только своим клиентским приложениям, но и любой другой задаче, исполняющейся в машине.
Особенности интерфейса OS/2 Warp
В OS/2 Warp в качестве стандартной графической оболочки используется сре- да Workplace Shell (WPS), организованная более логично и удобно, чем известный
Windows-интерфейс. Оболочка Workplace Shell основана на мощной системно–
объектной модели
1
IBM – технологии, специально разработанной для решения таких проблем, как жёсткая привязка объектов к их клиентам и необходимость использования одного и того же языка программирования. Объекты Workplace
Shell работают в среде SOM, доступ в которую можно реализовать почти на всех языках программирования, предусматривающих внешние процедуры, в том числе и на REXX.
В отличие от GUI Windows, в котором те же ярлыки
2
объектов никак не связа- ны между собой, в WPS объекты, имеющие аналогичные ярлыки (shadow
3
в терми- нологии WPS), просто имеют дополнительные свойства – быть многократно ото- бражёнными почти как самостоятельные объекты. Можно сделать несколько shadow-значков с уже существующей shadow-значков или объекта. При этом лю- бые shadow-значки могут быть перемещены в любое место, и их связи с основным объектом не теряются. Аналогично и в GUI Windows. Но в WPS можно перемес-
1
System object model – SOM.
2
Shortcut (ярлык) – значок (или иконка) на рабочем столе Windows, который имеет связь с тем или иным объектом.
3
Shadow (тень) – значок на рабочем столе OS/2, которая является частью объекта, то есть имеется постоянная двух- сторонняя связь между shadow и собственно объектом.
429
тить основной объект, и его shadow-значки тоже изменят свои параметры, тогда как в GUI Windows произойдет разрушение связей, поскольку связи являются од- носторонними.
Про SOM можно сказать, что это не связанная ни с одним конкретным языком объектно-ориентированная технология для создания, хранения и использования двоичных библиотек классов. Ключевые слова здесь «двоичные» и «не связанная ни с одним конкретным языком». Хотя теперь многие считают OS/2 технологией прошлого, модель SOM на самом деле представляет собой одну из наиболее инте- ресных разработок в области компьютерной индустрии даже на сегодняшний день.
По существу, некоторые идеи, реализованные в OS/2 в начале 90-х годов прошлого столетия, сейчас только обещают быть реализованными в новом поколении ОС
Windows с кодовым названием Whistler. Объектно-ориентированное программиро- вание (ООП) заслужило безоговорочное признание в качестве основной парадиг- мы, однако его применению в коммерческом программном обеспечении препятст- вуют отсутствие в языках ООП средств для обращения к библиотекам классов,
подготовленным на других языках, и необходимость поставлять с библиотеками классов исходные тексты. Многим независимым разработчикам библиотек классов приходится продавать заказчикам исходные тексты, поскольку разные компилято- ры по-разному отображают объекты. Настоящий потенциал SOM заключается в её
совместимости практически с любой платформой и любым языком программиро- вания. SOM соответствует спецификации CORBA
1
, которая определяет стандарт условий взаимодействия между прикладными программами в неоднородной сети.
Интересно отметить тот факт, что существует довольно много альтернативных оболочек для OS/2, начиная с FileBar, примитивной, но зато отлично работающей на компьютерах с 4 Мбайт памяти, и кончая мощной Object Desktop, которая зна- чительно улучшает внешний вид экрана OS/2 и делает работу с системой более удобной.
Помимо оболочек, улучшающих интерфейс OS/2, имеется также ряд про- грамм, расширяющих ее функциональность. В первую очередь это Xfree86 для
1
CORBA (common object request broker architecture) – архитектура посредника стандартного объектного запроса.
430
OS/2 – полноценная система Х Window, которая может использоваться как X- терминал при работе в сети с UNIX-машинами, а также для запуска программ, пе- ренесенных из UNIX в OS/2. К сожалению, таких программ немного, однако боль- шое количество UNIX-программ поставляется вместе с исходными кодами, кото- рые, как правило, практически не нужно изменять для перекомпиляции под
Xfree86/OS2.
Серверная операционная система OS/2 Warp 4.5
Новая серверная ОС компании IBM, которая вышла в свет в 1999 году, носит название OS/2 WarpServer for e-Business, что подчеркивает ее основное назначение,
но поскольку в процессе её создания она носила кодовое название «Аврора»
(Aurora), фактически все её так теперь и называют.
Как известно, предыдущие версии системы OS/2 могли предоставить про- граммисту только 512 Мбайт виртуального адресного пространства для нативных
32-битовых задач. В своё время это было очень много. Однако сегодня, хоть и крайне редко ещё встречаются задачи, требующие столь большого объёма опера- тивной памяти, некоторые считают серьёзным недостатком ограничение в 512
Мбайт. Поэтому в последней версии системы это ограничение снято, и теперь объ- ем виртуальной памяти может достигать 3 Гбайт (напомним, что в Windows NT 4.0
объём виртуального адресного пространства для задач пользователя составляет 2
Гбайт). По умолчанию максимальный объём виртуальной памяти задачи OS/2 v.
4.5 составляет 2 Гбайт, но командой «VIRTUALADDRESSLIMIT=3072» в конфи- гурационном файле CONFIG.SYS он может быть увеличен.
В этой системе разработчики постарались все прежние остатки старого 16- битового кода, который ещё оставался в предыдущих версиях системы, заменить на полностью 32-битовые реализации, что повышает скорость работы системы.
Прежде всего, сделана поддержка 32-битовых драйверов инсталлируемых файло- вых систем (IFS), ибо в предыдущих системах работа с ними велась через трансля- цию вызовов 32bit
→16bit→32bit. В то же время для обеспечения совместимости со старым программным обеспечением кроме 32-битового используется и 16-битовый
API.