Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
12.OS_2.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
108.54 Кб
Скачать

Обзор операционной системы os/2

История и архитектура

Первая версия OS/2 появилась в 1987г. и являлась совместной разработкой фирм IBM и Microsoft. В ходе работы над следующими версиями фирма Microsoft, во-первых, сочла завышенными требования IBM к надежности, во-вторых, решила делать ставку на свой продукт Windows и прекратила свое участие в проекте.

Первая версия OS/2 предназначалась для компьютеров на базе процессора Intel 80286 с его 16-разрядным словом и сегментной моделью виртуальной памяти. В последующих версиях и релизах поэтапно вводились: новая файловая система, графический интерфейс, сегментно-страничная модель памяти, 32-разрядность. Однако, все релизы первой и второй версий OS/2 предъявляли требования к ресурсам, превышающие средний уровень имеющихся в то время ПЭВМ, поэтому эти версии были несколько "тяжеловесны". Этот недостаток был устранен в версии 3 - OS/2 Warp (1995 г.), в которой все свойства ОС были оптимизированы в компактном ядре. Эта версия стала выходить как клиентской, так и в серверной редакции (в последнюю был включен продукт IBM LAN Server).

Архитектура OS/2 Warp показана на рисунке 1.

Рисунок 1. Архитектура OS/2 Warp

При значительном сходстве с архитектурой Windows 9x архитектура OS/2 Warp обладает рядом существенных отличий от нее.

Системная виртуальная машина OS/2 обеспечивает выполнение приложений OS/2 - 16- и 32-разрядных. Отдельная виртуальная машина создается для эмуляции среды Windows 3.x, в этой среде 16-разрядные приложения Windows выполняются в общем адресном пространстве, в режиме невытесняющей многозадачности - как и в Windows 9x. Однако, можно запускать приложения Windows и в отдельных адресных пространствах, тогда они выполняются в режиме вытесняющей многозадачности вместе с другими приложениями Windows, OS/2 и MS DOS. Приложения MS DOS выполняются каждое в среде собственной виртуальной машины MS DOS. Отдельной частью ядра OS/2 является ядро VDM (виртуальной машины MS DOS), которое обеспечивает эмуляцию функций MS DOS (в отличие от Windows 9x здесь нет кода ОС MS DOS), эмуляцию процессора Intel 8086 и диспетчеризацию виртуальных машин MS DOS.

Графическая оболочка Workplace Shell является отдельным приложением, запускаемым опционно, OS/2 может функционировать и без графической оболочки, в режиме командной строки.

Многозадачность

С самого начала OS/2 являлась многозадачной системой с вытесняющей многозадачностью. Многозадачность в этой системе имеет три уровня: сеанс, процесс, нить.

Сеанс - это окно на экране. Сеанс может быть запущен в полноэкранном или оконном режиме. Каждый сеанс имеет собственную виртуальную консоль, включающую в себя логические эквиваленты монитора, клавиатуры и мыши; командный прцессор (CMD.COM в сеансах OS/2 или COMMAND.COM в сеансах MS DOS); начальный командный файл (OS2ININ.CMD в сеансах OS/2 или AUTOEXEC.BAT в сеансах MS DOS). Сеанс предоставляет пользователю самостоятельную рабочую среду (MS DOS, Windows 3.x или OS/2). Когда сеанс выдвигается на передний план, соответствующая сеансу виртуальная консоль становится эквивалентной физической консоли. API OS/2 позволяет порождать новые сеансы и управлять из родительского сеанса состоянием сеанса дочернего.

В каждом сеансе может быть запущен один или (только в сеансе OS/2) несколько процессов. В соответствии с общепринятым подходом процессу в OS/2 соответствует программа с набором выделенных ей ресурсов. В API системы имеются системные вызовы для порождения нового процесса с выполнением в нем другой программы или для смены программы, выполняемой в текущем процессе. Порождаемые процессы связаны с породившим отношениями "потомок-предок". Наследование ресурсов (файлов, каналов) может устанавливаться для каждого экземпляра ресурса избирательно.

Каждый процесс состоит из одной или нескольких нитей. Нить является объектом планирования процессорного времени. Нити разделяют большую часть ресурсов процесса, в составе которого они выполняются, но каждая нить имеет собственный контекст и собственный стек.

С самого начала OS/2 проектировалась как система с вытесняющей многозадачностью. Участки нереентерабельного кода в ядре системы минимизированы, а MS DOS и Windows также эмулируются ядром, поэтому OS/2 в состоянии обеспечить более оперативное переключение процессов, чем Windows 95. OS/2 управляет процессами в режиме квантования времени, размер кванта является параметром, задаваемым при загрузке системы. При освобождении процессора или по истечении кванта активным назначается процесс с наивысшим приоритетом. В системе имеются следующие 4 класса приоритетов процессов (в порядке убывания приоритетности):

    • критический - для процессов реального времени и сетевых коммуникаций, для процессов этого класса гарантируется время реакции не более 6 мксек;

    • серверный - для процессов, выполняющих запросы от других процессов (введен в 4-й версии OS/2);

    • нормальный - для интерактивных процессов;

    • отложенный - для процессов, работающих без доступа к терминалу.

Внутри каждого класса приоритет процесса перевычисляется динамически (имеется еще по 32 градации приоритета в каждом классе) по таким правилам:

    • процесс, окно которого является в данный момент активным, получает "добавку переднего плана";

    • процесс, выполняющий операцию ввода-вывода, получает "добавку ввода-вывода", которая делает его приоритет наивысшим в классе, по окончании операции ввода-вывода эта добавка отбирается у процесса;

    • процесс, пребывающий в состоянии ожидания дольше некоторого времени (задаваемого при загрузке), получает "добавку голодания", которая ставит его сразу после критического класса и позволяет практически немедленно получить квант процессорного времени, после использования кванта эта добавка отбирается у процесса.

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