Гордеев А.В. Операционные системы (2-е изд., 2004) (1186250), страница 92
Текст из файла (страница 92)
Любое количество сообщений (ограничено только возможностью памяти) может храниться в очереди. Сообщения хранятся и передаются втом порядке, в котором они были приняты. Может быть создано любое количествоочередей. Каждая очередь идентифицируется своим именем.Помимо сообщений и очередей в операционной системе QNX для взаимодействиязадач и организации распределенных вычислений имеются так называемые порты, которые позволяют формировать сигнал одного конкретного условия и механизм исключений, о котором мы уже упоминали ранее.Порт подобен флагу, известному всем задачам на одном и том же узле (но не наразных узлах). Он имеет только два состояния, которые могут трактоваться как«присоединить» и «освободить», хотя пользователь может интерпретировать ихпо-своему, например «занят» и «доступен».
Порты используются для быстрой простой синхронизации между задачей и обработчиком прерываний устройства. Онинумеруются от нуля до 32 максимум (на некоторых типах узлов возможно и больше). Первые 20 номеров зарезервированы для операционной системы.С портом может быть выполнено три операции:•присоединить порт,Q отсоединить порт,•послать сигнал в порт.Одновременно к порту может быть присоединена только одна задача. Если другаязадача попытается «отсоединиться» от того же самого порта, то произойдет отказпри вызове функции, и управление вернется к задаче, которая в настоящий момент присоединена к этому порту.
Это самый быстрый способ обнаружить идентификатор другой задачи, подразумевая, что задачи могут договориться использовать один номер порта. Напомним, что все рассматриваемые задачи должнынаходиться на одном и том же узле. При работе нескольких узлов специальныефункции обеспечивают большую гибкость и эффективность.350Глава 10. Краткий обзор современных операционных системЛюбая задача может посылать сигнал в любой порт независимо от того, была онаприсоединена к нему или нет (предпочтительно, чтобы не была). Сигнал подобеннеблокирующей передаче пустого сообщения. То есть передатчик не приостанавливается, а приемник не получает какие-либо данные; он только отмечает, что конкретный порт изменил свое состояние.Задача, присоединенная к порту, может ожидать прибытия сигнала или может периодически читать порт.
Система QNX хранит информацию о сигналах, передаваемых в каждый порт, и уменьшает счетчик после каждой операции «приема» сигнала («чтение» возвращает счетчик и устанавливает его в нуль). Сигналы всегдапринимают перед сообщениями, давая им тем самым больший приоритет над сообщениями. В этом смысле сигналы часто используются обработчиками прерываний для того, чтобы оповестить задачу о внешних (аппаратных) событиях.
Действительно, обработчики прерываний не имеют возможности посылать сообщенияи должны использовать сигналы.В отличие от описанных выше методов, которые строго синхронизируются, исключения обеспечивают асинхронное взаимодействие. То есть исключение можетпрервать нормальное выполнение потока задачи. Они, таким образом, являютсяаварийными событиями.
Операционная система QNX резервирует для себя 16 исключений, чтобы оповещать задачи о прерываниях с клавиатуры, нарушении памяти и подобных необычных ситуациях. Остальные 16 исключений могут бытьопределены и использованы прикладными задачами.Системная функция может быть вызвана для того, чтобы позволить задаче реализовать собственный механизм обработки исключений и во время возникновенияисключения выполнять свою внутреннюю функцию.Заметим, что функция исключения задачи вызывается асинхронно операционнойсистемой, а не самой задачей. Поэтому исключения могут негативно повлиять наоперации (например, передачу сообщений), которые выполняются в это же время.Обработчики исключений должны быть написаны очень аккуратно.Одна задача может установить одно или несколько исключений для другой задачи.
Эти исключения могут быть комбинацией системных исключений и исключений, определяемых приложениями, обеспечивая другие возможности для межзадачного взаимодействия.Благодаря такому свойству QNX, как возможность обмена посланиями между задачами и узлами сети, программы не заботятся о конкретном размещении ресурсов в сети. Это свойство придает системе необычную гибкость. Так, узлы могутпроизвольно добавляться в систему и изыматься из системы, не затрагивая системные программы.
QNX имеет эту конфигурационную независимость благодаряконцепции виртуальных задач. У виртуальных задач непосредственный код и данные, будучи на одном из удаленных узлов, возникают и ведут себя так, как если быони были локальными задачами какого-то узла со всеми их атрибутами и привилегиями. Программа, посылающая сообщение в сеть, никогда не направляет еготочно. Сначала она открывает виртуальный канал. Виртуальный канал связываетмежду собой все виртуальные задачи. На обоих концах такой связи имеются буферы, которые позволяют хранить самое большое послание из тех, которые каналСемейство операционных систем OS/2 Warp компании IBM351может нести в данном сеансе связи. Сетевой администратор помещает в эти буферы все сообщения для соединенных задач.
Виртуальная задача, таким образом, занимает всего лишь пространство, необходимое для буфера и входа в таблице задач. Чтобы открыть виртуальный канал, необходимо знать идентификатор узла изадачи, с которой устанавливается связь. Для этого требуется идентификатор задачи-администратора, ответственного за данную функцию, или глобальное имясервера. Не раскрывая здесь подробно механизм обмена посланиями, добавим лишь,что задача может вообще выполняться на другом узле, где, допустим, имеется более совершенный процессор.Семейство операционных систем OS/2Warp компании IBMИстория появления, расцвета и практического ухода со сцены операционных систем под общим названием OS/2 и странна, и поучительна. Будучи одной из самыхлучших операционных систем для персональных компьютеров по очень большому числу параметров и появившись существенно раньше систем своих основныхконкурентов, она тем не менее не смогла стать самой распространенной, хотя могла бы, и с легкостью.
Основная причина тому — законы бизнеса (умение рекламировать свой товар, всячески поддерживать его продвижение, вкладывать деньгив завоевание рынка), а не качество самой операционной системы. Во-первых, компания IBM не сочла необходимым продвигать свою операционную систему на рынок программного обеспечения, ориентированного на конечного пользователя, арешила продолжить свою практику работы исключительно с корпоративнымиклиентами. А этот рынок (корпоративного программного обеспечения) оказалсясущественно уже для персональных компьютеров, чем рынок программного обеспечения для конечного пользователя, ибо компьютеры типа IBM PC прежде всегоявляются персональными. Во-вторых, основные доходы компания IBM получалане от продажи системного программного обеспечения для персональных компьютеров, а за счет продаж дорогостоящих серверов и другого оборудования.
Доходыот продажи операционной системы OS/2 не представлялись руководству компании IBM значимыми. Чтобы добиться успеха на рынке операционных систем дляперсональных компьютеров, необходимо было обеспечить всестороннюю поддержку своей системы соответствующей учебной литературой, широкой рекламой,заинтересовать разработчиков программного обеспечения. Увы, этого сделано небыло, и сегодня уже практически мало кто знает о системах семейства OS/2. В тоже время следует отметить, что те организации и предприятия, которые в своевремя освоили эту систему и создали для нее соответствующее прикладное программное обеспечение, до сих пор не переходят на ныне чрезвычайно популярные операционные системы Windows NT/2000/XP, поскольку последние требуют существенно больше системных ресурсов.
Любопытный факт: всем известныебанкоматы работают под управлением OS/2.Семейство 32-разрядных операционных систем OS/2 для IBM-совместимых персональных компьютеров начало свою историю с появления первой OS/2 v 2.0352Глава 10. Краткий обзор современных операционных системв 1992 году. Ей предшествовала 16-разрядная операционная система с таким женазванием — OS/2, которая была разработана для микропроцессора i80286. Этотмикропроцессор, несмотря на множество принципиальных новаций, оказалсянеудачным. Защищенный режим работы этого 16-разрядного микропроцессора былнесовершенным. Он обеспечивал работу с относительно небольшим объемом оперативной памяти, имел слабую аппаратную поддержку для организации виртуальной памяти, слишком низкое быстродействие (для того, чтобы выступать в качествеосновы для построения мультизадачных операционных систем).
Неудачная судьба16-разрядной системы OS/2 1.x во многом повлияла и на 32-разрядную операционную систему, хотя по очень многим позициям архитектура 32-разрядной версии операционной системы OS/2 принципиально отличалась от своей предшественницы.Компания IBM оставила этот проект, когда его версия имела номер 4.5. Сейчас изсостава IBM отделилась небольшая компания, которая, выкупив проект OS/2,продолжает над ним работу и обеспечивает приверженцев этой операционной системы пакетами обновления и всевозможными добавлениями.Все последние версии операционной системы OS/2 в своем названии имеют словоWarp, что переводится с английского как «основа». Операционная система OS/2Warp 4.0 практически представляет собой OS/2 Warp 3.0 (вышедшую еще в 1994 году)с несколько улучшенной поддержкой DOS-задач и обновленными элементамиобъектно-ориентированного интерфейса.
Для этой системы характерны:Q вытесняющая многозадачность (preemptive multitasking) и поддержка DOSи Windows- (Win32s 1 ) приложений;0по-настоящему интуитивно понятный и действительно удобный объектныйпользовательский интерфейс;•поддержка стандарта открытого объектного документооборота OpenDoc;•поддержка стандарта OpenGL;•поддержка Java-апплетов и встроенных средств разработки на языке Java;•поддержка шрифтов True Type (TTF);• управление голосом без предварительной подготовки (технология Voice Type);Q полная поддержка сетевых технологий Интернет/интранет, доступ в сети CompuServe2;•средства построения одноранговых сетей и клиентские части для сетевых операционных систем IBM LAN Server, Windows, Lantastic, Novell Netware 4.1(в том числе поддержка службы каталогов);Q система удаленного доступа через модемные соединения;•файловая система Mobile File System для поддержки мобильных пользователей;Q стандарт автоматического распознавания аппаратных устройств (Plug-andPlay), но без столь навязчивого механизма, который реализован в Windows;12Win32s — это одно из расширений интерфейса прикладного программирования систем Windows.Популярная американская служба.Семейство операционных систем OS/2 Warp компании IBM3531• набор офисных приложений (базы данных, электронные таблицы, текстовыйпроцессор, генератор отчетов, деловая графика, встроенная система приемапередачи факсимильных сообщений, информационный менеджер);а полная поддержка мультимедиа, включая средства работы с видеокамерой, расширенную систему помощи WarpGuide.Однако наиболее заманчивы не перечисленные из рекламного буклета возможности системы, а удобная и надежная для работы с корпоративными базами данныхи в сетях среда, предоставляющая клиентское рабочее место.Операционная система OS/2 Warp предлагает единый интерфейс прикладногопрограммирования (API), совместимый с рядом операционных систем, что позволяет снизить стоимость разработок.