Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

636

.pdf
Скачиваний:
5
Добавлен:
13.02.2021
Размер:
2.16 Mб
Скачать

261

1)FIFO (первым пришел – первым обслужен);

2)round-robin, при котором процессу выделяется определенный квант времени для работы;

3)адаптивный, который является наиболее используемым. Первый наиболее близок к кооперативной многозадачно-

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

Во втором варианте все происходит так же, как и в предыдущем, с той разницей, что период, в течение которого процесс может работать без перерыва, ограничивается неким квантом времени.

Процесс, работающий с адаптивным методом, в QNX ведет себя следующим образом. Когда процесс полностью использовал выделенный ему квант времени, его приоритет снижается на 1, если в системе есть процессы с тем же уровнем приоритета, готовые к исполнению. При этом если процесс с пониженным приоритетом остается не обслуженным в течение секунды, его приоритет увеличивается на 1; если же процесс блокируется, ему возвращается оригинальное значение приоритета.

По умолчанию процессы запускаются в режиме адаптивной многозадачности. В этом же режиме работают все системные утилиты QNX. Процессы, работающие в разных режимах многозадачности, могут одновременно находиться в памяти и исполняться. Важным элементом реализации многозадачности является приоритет процесса. Обычно приоритет процесса устанавливается при его запуске. Но есть дополнительная возможность, называемая «вызываемый клиентом приоритет». Как правило, она реализуется для серверных процессов, исполняющих запросы на какое-либо обслуживание. При этом приоритет процессасервера устанавливается только на время обработки запроса и становится равным приоритету процесса-клиента.

Сетевой интерфейс в системе QNX является неотъемлемой частью ядра. Он, конечно, взаимодействует с сетевым адаптером через сетевой драйвер, но базовые сетевые сервисы реали-

262

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

Все сервисы QNX, не реализованные непосредственно в ядре, работают как стандартные процессы в полном соответствии с основными концепциями микроядерной архитектуры. С точки зрения операционной системы системные процессы ничем не отличаются от всех остальных, как, впрочем, и драйверы устройств. Единственное, что нужно сделать при организации нового драйвера устройства в QNX для того, чтобы он стал частью ОС, – это изменить конфигурационный файл системы так, чтобы драйвер запускался при загрузке.

9.3 Основные механизмы QNX

QNX является сетевой операционной системой и позволяет организовать эффективные распределенные вычисления. Для организации сети на каждой машине, называемой узлом, помимо ядра и менеджера процессов должен быть запущен уже упомянутый нами выше менеджер Net. Менеджер Net не зависит от аппаратной реализации сети. Данная аппаратная независимость обеспечивается за счет использования сетевых драйверов. В QNX имеются драйверы для различных сетей, например Ethernet, Arcnet, Token Ring. Кроме этого, имеется возможность организации сети через последовательный канал или модем.

В QNX последней, четвертой, версии полностью реализовано встроенное сетевое взаимодействие «точка-точка». Например, находясь на машине А, вы можете скопировать файл с гибкого диска, подключенного к машине В, на жесткий диск, под-

263

ключенный к машине С. По существу, сеть из машин QNX действует как один мощный компьютер. Любые ресурсы (модемы, диски, принтеры) могут быть добавлены к системе простым их подключением к любой машине в сети. QNX поддерживает од-

новременную работу в сетях Ethernet, Arcnet, Serial и Token Ring

и обеспечивает более чем один-единственный путь для коммуникации, а также балансировку нагрузки в сетях. Если кабель или сетевая плата выходят из строя таким образом, что связь через сеть прекращается, то система будет автоматически перенаправлять данные через другую сеть. Это происходит в режиме «on-line», предоставляя пользователю автоматическую сетевую избыточность и увеличивая скорость коммуникаций во всей системе.

Каждому узлу в сети соответствует уникальный целочисленный идентификатор – логический номер узла. Любой поток в сети QNX имеет прозрачный доступ (при наличии достаточных привилегий) ко всем ресурсам сети, то же самое относится и к взаимодействию потоков. Для взаимодействия потоков, находящихся на разных узлах сети, используются те же самые вызовы ядра, что и для потоков, выполняемых на одном узле. В том случае, если потоки находятся на разных узлах сети, ядро переадресует запрос менеджеру сети. Для организации обмена в сети используется надежный и эффективный протокол транспортного уровня FLEET. Каждый из узлов может принадлежать одновременно нескольким QNX-сетям. В том случае, если сетевое взаимодействие может быть реализовано несколькими путями, для передачи выбирается незагруженная и более скоростная сеть.

Сетевое взаимодействие является узким местом в большинстве операционных систем и обычно создает значительные проблемы для систем реального времени. Для того чтобы обойти это препятствие, разработчики QNX создали собственную специальную сетевую технологию FLEET и соответствующий протокол транспортного уровня FTL (FLEET Transport Layer). Этот протокол не базируется ни на одном из распространенных сетевых протоколов типа IPX или NetBios и обладает рядом качеств, которые делают его уникальным. Основные его качества за-

264

шифрованы в аббревиатуре FLEET [20] и представлены в таблице.

Составляющие аабревиатуры «FLEET»

Название составляющего

 

процесса сетевой техноло-

Содержание процесса

гии FLEET

 

Fault-Tolerant Networking

QNX может одновременно использовать не-

 

сколько физических сетей. При выходе из

 

строя любой из них данные будут автоматиче-

 

ски перенаправлены «на лету» через другую

 

 

Load-Balancing on the Fly

При наличии нескольких физических соеди-

 

нений QNX автоматически распараллеливает

 

передачу пакетов по соответствующим сетям

 

 

Efficient Performance

Специальные драйверы, разрабатываемые

 

фирмой QSSL для широкого спектра оборудо-

 

вания, позволяют с максимальной эффектив-

 

ностью использовать сетевое оборудование.

 

 

Extensible Architecture

Любые новые типы сетей могут быть поддер-

 

жаны путем добавления соответствующих

 

драйверов

TransparcntDistributed

Благодаря отсутствию разницы между переда-

Processing

чей сообщений в пределах одного узла и меж-

 

ду узлами нет необходимости вносить какие-

 

либо изменения в приложения для того, чтобы

 

они могли взаимодействовать через сеть

Благодаря этой технологии сеть компьютеров с QNX фактически можно представлять как один виртуальный суперкомпьютер. Все ресурсы любого из узлов сети автоматически доступны другим, и для этого не нужны специальные «фокусы» с использованием технологии RPC. Это значит, что любая программа может быть запущена на любом узле, при этом ее входные и выходные потоки могут быть направлены на любое устройство на любых других узлах.

Более подробную информацию о работе с QNX можно по-

лучить в [6, 21, 22].

265

Вопросы для самопроверки

1.В каком году была создана ОС QNX? Каковы ее основные возможности?

2.Какие блоки входят в стандартный состав микроядра ОС

QNX?

3.Какие методы диспетчеризации существуют в ОС QNX?

4.Какова максимальная длина сообщений в ОС QNX?

5.Сколько исключений резервирует ОС QNX под системные нужды?

6.Благодаря чему ОС QNX приобретает конфигурационную независимость и не зависит от аппаратной реализации сети?

7.Благодаря какой технологии сеть компьютеров с QNX фактически можно представлять как один виртуальный суперкомпьютер?

266

СПИСОК СОКРАЩЕНИЙ

АЛУ – арифметико-логическое устройство. ИТ – информационные технологии.

НЖМД – накопители на жестких магнитных дисках. ОЗУ – оперативное запоминающее устройство.

ООП – объектно-ориентированное программирование. ОС – операционные системы.

ПЗУ – постоянно запоминающее устройство. ПО – программное обеспечение.

СУБД – системы управления базами данных. СУФ – системы управления файлами.

ACPI (Advanced Configuration and Power Interface) – расши-

ренный интерфейс управления питанием и конфигурациями. AEP (Super-computing Application Environment Profile) –

стандарт POSIX.

AGP (Accelerated Graphic Port) – ускоренный графический порт.

API (Аpplication Program Interface) –интерфейс прикладного программирования.

BIOS (Base Input Output System) – базовая система ввода-

вывода.

CDFS (Compact Disk File System) – файловая система ком-

пактного диска.

CLX (Component Library for Cross-platform, «кликс») – кросс-

плат-форменная библиотека компонент производства фирмы

Borland.

CORBA (Common Object Request Broker Architecture) – ар-

хитектура посредника стандартного объектного запроса. CPU (central processing unit) – центральный процессор.

CTOS (An Operating System produced Convergent Technology …) –

технология переноса операционных систем.

DDE (Dynamic Data Exchange) – универсальные механизмы динамического обмена данными.

DLL (Dynamic Link Library) – динамически загружаемый библиотечный модуль.

DMA (Direct Memory Access) – канал прямого доступа к памяти.

267

DO (Diagnostic Output) – диагностический поток вывода. DRAM (Dynamic Random Access Memory) – динамическое

оперативное запоминающее устройство.

EMS (Expanded Memory Specification) – отображаемая па-

мять.

ERP (Enterprise Resource Planning) – планирование ресурсов предприятий.

ESCD (Extended System Configuration Data) – область энер-

гонезависимой памяти.

FAT (File Allocation Table) – таблица размещения файлов. FCFS (First Come – First Served) – дисциплина обслужива-

ния «первым пришел первым обслужился».

FLEET (Fault-Tolerant Networking, Load-Balancing on the Fly, Efficient Performance, Extensablc Architecture, Transparcnt Distributed Processing) – сетевая технология в ОС QNX.

FTL (FLEET Transport Layer) – протокол транспортного уровня (см. FLEET).

GDI (Graphics Device Interface) – интерфейс графических устройств.

GDT (Global Descriptor Table) – глобальная таблица дескрип-

торов.

GID (Group Identifier) – идентификатор группы.

GUI (Graphical User Interface) – пользовательский графиче-

ский интерфейс.

HDD (Hard Disk Drive) – жесткий диск.

HMA (High Memory Area) – высокая область памяти.

HPFS (High Performance File System) – файловая система высокого исполнения.

ICS (Internet Connection Sharing) – подключение к Internet с

общим доступом.

IDT (Interrupt Descriptor Table) – таблица дескрипторов преры-

ваний.

IEEE (Institute Electrical and Electronic Engineers) – институт инженеров по электротехнике и радиоэлектронике

IEEE 1394 – стандарт, предназначенный для подключения высокоскоростных последовательных устройств.

IFS (Installing File System) – инсталлируемая файловая сис-

тема.

268

IPC (Inter-Process Communication) – межпроцессные коммуни-

кации.

IIS (Internet Information Server) – WWW-сервер.

JCL (Job Control Language) – язык управления заданиями. JFS (Journaling File System) – журналирующая файловая

система.

LDT (Logical Disk Table) – таблица логического диска. LSB (Least Significant Bit) – младший бит.

LVM (Logical Volume Manager) – менеджер томов (логиче-

ских дисков).

MAPI (Message Applica-tion Programming Interface) – интер-

фейс прикладного программирования.

MBR (Master Boot Record) – главная загрузочная запись. MESI (М (Modified), E (Exclusive), S (Shared), I (Invalid)) –

протоколкэша.

MFC (Microsoft Foundation Classes) – библиотека классов Microsoft.

MFT (Master File Table) – файл метаданных в NTFS. MSB (Most Significant Bit) – старший бит.

MTBF (Mean Time Before Failure) – ожидаемое время до от-

каза.

MTRR (Memory Type Range Registers) – регистры, описы-

вающие свойства областей памяти.

NCSC (National Computer Security Center) – национальный центр компьютерной безопасности США.

NSB (Non-System Bootstrap) – внесистемный загрузчик. NTFS (New Technology File System) – файловая система на

основе новой технологии.

OLE (Object Linking and Embedding) – технология документно-ориентированной архитектуры приложений.

PAT (Page Attribute Table) – таблица атрибутов страниц па-

мяти.

PID (Process Identificator) – идентификатор процесса.

РЕ (Protect Enable) – бит включения защищенного режима. POSIX (Portable Operating System Interface for Computer Environments) – платформенно-независимый системный интер-

фейс для компьютерного окружения.

269

PPTP (Point-to-Point Tunneling Protocol) – протокол для соз-

дания виртуальных частных сетей.

PT (Partition Table) – таблица разделов.

RAM (Random Access Memory) – оперативное запоминаю-

щее устройство.

ROM (Read Only Memory) – постоянное запоминающее устройство.

RPC (Remote Procedure Call) – вызов удаленных подпро-

грамм.

RPM (Revolutions Per Minute) – обороты в минуту.

RR (round robin) – карусельная дисциплина обслуживания. RTL (Run Time Library) – библиотека времени выполнения. S.I. (Standard Input) – стандартный поток ввода.

SJN (Shortest Job Next) – следующее короткое задание (дисциплина обслуживания заданий).

SMBR (Secondary MBR) – следующая загрузочная запись. SMI# (System Management Interrupt) – сигнал переключения

в режим SMM.

SMM (System Management Mode) – режим системного управления.

SMRAM (System Management Random Access Memory) –

системное управление оперативным запоминающим устройством.

S.O. (Standard Output) – стандартный поток вывода.

SOAP (Simple Object Access Protocol) – стандарт, описы-

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

SOM (System Object Model) – модель системных объектов. SRT (Shortest Remaining Time) – кратчайшее остаточное

время (дисциплина обслуживания заданий)

TPI (Track Per Inch) – количество треков на дюйм. TR (Task Register) – регистр задачи.

TSS (Task State Segment) – сегмент состояния задачи. TTF (Тruе Туре Font) – наименование типа шрифтов. UС (Uncacheable) – некэшируемая память.

UDDI (Universal Description, Discovery and Integration) –

универсальный метод описания, обнаружения и интеграции web-сервисов для систем электронной коммерции.

270

UDF (Universal Disk Format) – универсальный дисковый формат.

UID (User Identifier) – пользовательский идентификатор. UMA (Upper Memory Area) – верхняя область памяти. UPnP (Universal Plug and Play) – технология поддержки уни-

версальных самонастраивающихся устройств.

USB (Universal Serial Bus) – универсальная последовательная шина.

VCL (Visual Controls Library) – библиотека классов Borland. VDM-машина (Virtual DOS Machine) – виртуальная DOS

машина.

VMM (Virtual Memory Manager) – диспетчер виртуальной памяти.

VMS (Virtual Memory System) – система виртуальной памя-

ти.

VPN (Virtual Private Network) – виртуальные частные сети. WAN (Wide Area Network) – глобальная сеть.

WB (Write-back) – кэшированияпамять с обратной записью. WC (Write Combining) – кэширования память с комбинируе-

мой записью.

WOW (Windows on Windows) – окна в окнах (сеанс 16-

разрядных прикладных Windows-программ ОС Windows NT). WP (Write protected) – кэширования память с защищенной

записью.

WPS (Workplace Shell) – стандартная графическая оболочка

OS/2 Warp.

WSDL (Web Services Description Language) – язык для опи-

сания Интернет сервисов.

WT (Write-through) – кэширования память со сквозной запи-

сью.

XML (Extensible Markup Language) – язык разметки.

XMS (Extended Memory Specification) – расширенная па-

мять.

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