Гордеев А.В. Операционные системы (2-е изд., 2004) (1186250), страница 93
Текст из файла (страница 93)
Все версии операционных систем OS/2 и LANServer, включая текущие версии OS/2 Warp и OS/2 Warp Server 4.5, совместимыпо восходящей линии, что позволяет экономить средства, необходимые для поддержания уже существующих прикладных программ.Чрезвычайно важным для пользователей является тот факт, что компания IBMдля всех версий своей операционной системы регулярно выпускает пакеты обновления (FixPak).
Эти пакеты исправляют обнаруженные ошибки, а также вносятновые функции. Для пользователей такая практика сопровождения фирмой своейоперационной системы, безусловно, более выгодна, нежели практика частого выпуска новых версий операционных систем (ей следует компания Microsoft).Так, например, для одной из своих самых удачных операционных систем — Windows NT 4.0 — компания Microsoft выпустила всего 6 пакетов обновления (ServicePak), тогда как для уже совсем старой операционной системы OS/2 Warp 3.0,которая вышла в свет в 1994 году, компания IBM выпустила уже несколько десятков пакетов FixPak.
Для операционной системы OS/2 Warp 4.0 вышло более 15 пакетов исправлений и обновлений.Пакеты исправлений и обновлений пользователи получают бесплатно, тогда какза новую операционную систему приходится платить большие деньги. К тому же,длительная работа по исправлению имеющихся в системе ошибок приводит к тому,что количество последних со временем, как правило, уменьшается и система становится все более надежной и функциональной, в то время как новая версия операционной системы содержит не меньше ошибок, чем предыдущая. Последнее обстоятельство объясняется в том числе и тем, что объем ее исходного кода становитсявсе больше и больше, а времени на создание операционной системы отводитсястолько же, если не меньше.Немаловажным фактором является и то, что значительные капиталовложения требуются не только на приобретение новой операционной системы, но и на ее освоение.
Для многих желательно, чтобы время жизни операционной системы составляло до 10 лет и более. В противном случае мы будем не только напрасно тратитьСправедливости ради следует заметить, что этот набор приложений (называемый BonusPak) несовместим с современными версиями Microsoft Office, поэтому его используют, как правило, только в«закрытых системах», когда не предусматривается обмен документами, изготовленными посредствомприложений Microsoft Office.354Глава 10. Краткий обзор современных операционных системденьги на приобретение новых систем, но и не сможем обеспечить квалифицированную работу пользователей в этих системах.
Современные операционные системы и прикладное программное обеспечение для своего освоения требуют длительного и дорогостоящего обучения пользователей. Поэтому желательно, чтобывсе это программное обеспечение не требовало частого переобучения сотрудников(однако, с другой стороны, прогресс не стоит на месте, и большое количество конечных пользователей с нетерпением ожидают появления все более новых операционных систем и приложений).Весьма полезным, как для управления приложениями, так и для создания несложных собственных программ, является наличие системы программирования на языкевысокого уровня REXX, который иногда называют языком процедур.
Можно сказать, что это встроенный командный язык, который служит для тех же целей, чтои язык для пакетных (batch) файлов в среде DOS, но он обладает несравнимо большими возможностями. Это язык высокого уровня с нетипизированными переменными. Язык легко расширяем, любая программа OS/2 может добавлять в него новые функции. Помимо встроенного интерпретатора с языка REXX имеется системапрограммирования Visual REXX.
Имеется и объектно-ориентированная версияязыка REXX с соответствующим интерпретатором.Наиболее сильное впечатление при работе в операционной системе OS/2 оставляет объектно-ориентированный графический пользовательский интерфейс, а особой популярностью у программистов эта система пользовалась вследствие оченьхорошей организации VDM-машин и высокого быстродействия при выполненииобычных DOS-приложений.Особенности архитектурыи основные возможностиСтроение и функционирование операционной системы OS/2 можно считать практически идеальными с точки зрения теории и довольно неплохими в реализации.В качестве подтверждения этому можно привести один пример, который представляется очень показательным: OS/2 до сегодняшних дней практически неизменна,начиная с версии 2.0, увидевшей свет в 1992 году. Этот факт говорит о глубокойпродуманности архитектуры системы, ведь и по сей день OS/2 является одной изсамых мощных и продуктивных операционных систем.
Здесь самым показательнымпримером являются тесты серверов. В одной из вычислительных лабораторий СанктПетербургского государственного университета аэрокосмического приборостроения(ГУАП) с 1995 года в течение нескольких лет функции сервера кафедры вычислительных систем и сетей выполняла система OS/2 Warp Advanced Server. При переходе на сервер Windows NT 4.0 пришлось в два раза увеличить объем оперативной памяти и поменять процессор (с Pentium 90 на Pentium II300), и даже после этого скоростьработы обычных приложений на рабочих станциях не достигла той производительности, какую имели пользователи при работе сервера под управлением OS/2. Аналогичные замечания не так давно можно было прочесть и в зарубежных публикациях —однопроцессорная машина под управлением OS/2 Warp Server обгоняет по производительности двухпроцессорную машину под управлением Windows NT.Семейство операционных систем OS/2 Warp компании IBM355Разработчики системы OS/2 решили не использовать всех возможностей защищенного режима, заложенных в микропроцессоры i80x86.
Например, обработкапрерываний чаще всего ведется через коммутаторы прерываний, а не через коммутаторы задач. Используется плоская модель памяти. Хорошо продуманная архитектура, в которой задействована модель клиент-сервер, и тщательное кодирование позволили получить систему, требующую очень небольших вычислительныхресурсов. Очень удачно реализована диспетчеризация задач. Представление различных системных информационных структур в статической форме (в виде таблиц) привело к более высокому быстродействию.В 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.x.
Конечно, нынче это уже неактуально, поскольку появилось огромное количество приложений, использующих API Win32, но в 90-е годы XX века эти факты имели существенное значение.Разнообразные сервисные функции API OS/2, в том числе SOM (System ObjectModel — модель системных объектов), обеспечиваются с помощью системных библиотек DLL, к которым можно обращаться без требующих затрат времени переходов между кольцами защиты. Ядро операционной системы OS/2 предоставляетмногие базовые сервисные функции API, обеспечивает поддержку файловой системы, управление памятью, имеет диспетчер аппаратных прерываний. В ядре виртуальных DOS-машин (Virtual DOS Machine, VDM), или в VDM-ядре, осуществляется эмуляция DOS и процессора 8086, а также управление VDM.
Драйверывиртуальных устройств обеспечивают уровень аппаратной абстракции. Драйверыфизических устройств напрямую взаимодействуют с аппаратурой.Модуль реализации механизмов виртуальной памяти в ядре OS/2 поддерживаетбольшие постраничные разбросанные адресные пространства, составленные изобъектов памяти. Каждый объект памяти управляется так называемым пейджером — задачей вне ядра, обеспечивающей резервное хранение страниц объекта памяти. Адресные пространства управляются путем отображения или размещенияобъектов памяти внутри них.
Ядро управляет защитой памяти и ее распределением на основе объектов памяти абстрактным образом, вне зависимости от какихлибо конкретных аппаратных средств трансляции процессорных адресов. В частности, ядро интенсивно использует режим копирования при записи для приданияпрограммам способности делить объекты памяти, не копируя множество страниц,когда новое адресное пространство получает доступ к объекту памяти. Новые копии страниц создаются, только когда программа в одном из адресных пространствобновляет их. Когда ядро принимает страничный сбой в объекте памяти и не име-356Глава 10.
Краткий обзор современных операционных системет страницы памяти в наличии, или когда оно должно удалить страницы из памятипо требованию других работающих программ, ядро с помощью механизма IPC уведомляет пейджер об объекте памяти, в котором произошел сбой. После этого пейджер сервера приложений определяет, каким образом предоставить или сохранитьданные. Это позволяет системе устанавливать различные семантики для объектовпамяти, основываясь на потребностях программ, которые их используют.Ядро управляет средами исполнения для программ, обеспечивая множественность1заданий (процессов) и потоков выполнения. Каждое задание (процесс ) имеет своесобственное адресное пространство, или отображение.
Ядро распределяет объектыпамяти, которые задание отобразило на диапазон адресов внутри адресного пространства. Задание также является блоком размещения ресурсов и защиты, при этом заданиям придаются возможности и права доступа к средствам IPC системы. Для поддержки параллельного исполнения с другой программой в пределах одного адресногопространства ядро отделяет среду исполнения от реально выполняющегося потока.Таким образом, программа задания может быть загружена и исполнена в нескольких различных местах кода в одно и то же время на мультипроцессоре или параллельной машине.