Jump to content

Системная архитектура Unisys серии 2200

На рисунке показана высокоуровневая архитектура системы OS 2200 с указанием основных аппаратных и программных компонентов. Большая часть программного обеспечения Unisys включена в область подсистем и приложений модели. Например, менеджеры баз данных — это подсистемы, а компиляторы — приложения.

Основы системы

[ редактировать ]

Подробности архитектуры системы описаны в публикации Unisys 3850 7802 « Справочное руководство по программированию процессора инструкций» . См. также серию UNIVAC 1100/2200 .

В серии 1100 с 1962 года используется 36-битное слово с 6-битными символами. 36-битные вычисления были вызваны желанием обрабатывать 10-значные положительные и отрицательные числа. Кроме того, военным необходимо было уметь рассчитывать точные траектории, проектировать мосты и выполнять другие инженерные и научные расчеты, им требовалась точность более 32 бит. 32-битное число с плавающей запятой обеспечивало точность только около 6 цифр, тогда как 36-битное число обеспечивало точность 8 цифр, которая была принята в качестве минимального требования. Поскольку память, пространство для хранения и затраты определяли систему, переход на 64-разрядную версию в целом был просто неприемлем. В этих системах используется арифметика с дополнением до одного , что не было чем-то необычным в то время. Почти все производители компьютеров того времени поставляли 36-битные системы с 6-битными символами, включая IBM , DEC , General Electric и Sylvania .

6-битный набор символов, используемый в серии 1100, также является набором, установленным Министерством обороны. Он был определен Армейским корпусом связи и назывался Fielddata (данные, возвращаемые с полей). [1] 1108 обеспечивал 9-битный формат символов для поддержки ASCII , а затем и наборов ISO 8-битных , но они не использовались широко до 1980-х годов снова из-за нехватки места.

Архитектура серии 2200 предоставляет множество регистров . Базовые регистры логически содержат виртуальный адрес , указывающий на слово в коде или банке данных (сегменте). Они могут указывать на начало банка или на любое слово внутри банка. Индексные регистры используются инструкциями для изменения смещения указанного или предполагаемого базового регистра. Простые арифметические операции (сложение, вычитание) могут выполняться со всеми индексными регистрами. Кроме того, индексные регистры состоят из нижней части смещения и верхней части приращения. Инструкция может как использовать значение смещения в индексном регистре как часть адреса, так и указывать, что приращение должно быть добавлено к смещению. Это позволяет выполнять циклы с меньшим количеством инструкций, поскольку увеличение индекса на размер шага может быть выполнено без отдельной инструкции. Арифметические регистры позволяют выполнять полный набор вычислительных инструкций, включая все операции с плавающей запятой. Некоторые из этих инструкций работают с соседними парами регистров для выполнения операций двойной точности. Никаких четно-нечетных ограничений нет. Любые два регистра могут использоваться как значение двойной точности. Четыре арифметических регистра также являются индексными регистрами (наборы перекрываются: индексный регистр X12 является арифметическим регистром A0). Это позволяет выполнять полный спектр вычислений с индексами без необходимости перемещения результатов. Остальные регистры, известные как регистры R, используются в качестве быстрого временного хранилища и для некоторых специальных функций. R1 хранит счетчик повторений тех инструкций, которые могут повторяться (передача блока, повторное выполнение и т. д.). R2 содержит битовую маску для нескольких инструкций, которые выполняют побитовую логическую операцию в дополнение к некоторым другим функциям (например, верхней маскированной загрузке).

Имеется два полных набора регистров (A, X, R и B). Один набор, который регистрирует пользователь, используется всеми приложениями и большинством частей операционной системы. Он сохраняется и восстанавливается как часть состояния активности (потока). Другой набор, регистры Exec, используется процедурами обработки прерываний и некоторыми другими частями операционной системы, которые хотят избежать необходимости сохранять и восстанавливать пользовательские регистры. Регистры Exec не доступны для записи пользовательскими приложениями, хотя некоторый пользовательский код может их читать. В результате Exec тщательно спроектирован так, чтобы никогда не оставлять частную, защищенную или конфиденциальную информацию в реестрах. Интерпретация инструкций выбирает соответствующий набор регистров на основе бита в регистре состояния процессора. Этот бит всегда устанавливается (меняется на привилегированный) при прерывании. Все регистры также видны в адресном пространстве, но часть Exec защищена, и обращение непривилегированного кода приведет к прерыванию по ошибке.

Серия 2200 использует 36-битное сегментированное виртуальное адресное пространство. Позже мы рассмотрим архитектуру адресации.

Серия 2200 представляет собой систему с архитектурой CISC . Мало того, что существует большое количество инструкций (сейчас их около 245), так еще и многие из них имеют варианты адресации. Некоторые варианты закодированы непосредственно в формате инструкции (частичные ссылки на слова), а некоторые зависят от настроек регистра состояния процессора. Многие инструкции также выполняют очень сложные функции, например, ту, которая реализует большую часть команды COBOL EDIT.

На рисунке выше показаны некоторые строительные блоки архитектуры. «Данные» и «COMM» — два основных примера программных подсистем, которые находятся в защитном кольце между пользовательским приложением и исполнительным устройством. Существует множество других подобных подсистем, и пользователи пишут свои собственные.

Память и адресация

[ редактировать ]

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

Виртуальный адрес состоит из трех частей. Старшие 3 бита определяют уровень совместного использования. Это сердце всей схемы адресации и защиты. Каждый поток имеет восемь таблиц дескрипторов банков (в отрасли таблиц дескрипторов сегментов), основанных на B16-B23. Таблицы индексируются по уровням: уровень 0 относится к таблице дескрипторов банка (BDT) на основе B16, уровень 2 — к BDT на основе B18 и т. д. BDT уровня 0 и 2 являются общими для всех потоков в системе. Каждый запуск (процесс) имеет свой собственный BDT уровня 4, и этот BDT является общим для всех потоков в выполнении. Каждый пользовательский поток имеет свой собственный BDT уровня 6, не используемый совместно.

Активность

[ редактировать ]

Каждое действие расширенного режима (поток) всегда имеет шесть банков-сегментов, которые полностью уникальны для него. Одним из них является стек управления возвратом, который содержит информацию о структуре вызова, включая любые важные привилегии безопасности и изменения состояния. Он недоступен для потока, за исключением использования CALL, RETURN и подобных инструкций. Это основная часть механизма защиты и надежности. Приложения не могут вызвать плохие последствия, изменив адреса возврата или перезаписав стек управления возвратом. [2]

Еще один уникальный банк — это банк автоматического хранения (стек Activity Local Store). Это используется компиляторами для хранения локальных переменных, созданных внутри блока. Он также используется для хранения всех списков параметров, передаваемых при вызове. Одна из проверок, выполняемых операционной системой как от своего имени, так и при вызове защищенной подсистемы, заключается в том, чтобы убедиться, что операнды находятся в локальном стеке потока и что поток имеет право доступа к указанной области памяти. по любым параметрам. Поскольку параметры хранятся в локальном пространстве потока, нет никаких шансов, что какой-либо другой поток может изменить их во время или после проверки. В обязанности вызываемой процедуры входит выполнение аналогичных проверок любых вторичных параметров, которые могут существовать в общем пространстве (т. е. первичный параметр указывает на структуру, содержащую указатели). Ожидается, что процедура скопирует любые такие указатели в свое локальное пространство перед их проверкой, а затем будет использовать только этот внутренний проверенный указатель.

Действия могут создавать дополнительные сегменты до предела доступного адресного пространства (2 33 слова = 8 ГВт или около 36 ГБ). Это удобный способ для многопоточных приложений получить большие объемы памяти, зная, что она полностью поточно-безопасна и не отнимает места у остального того, что доступно программе. Каждое действие в программе имеет собственное независимое пространство. Это означает, что приложение, содержащее, скажем, 100 действий, может использовать более 800 ГВт (>3 ТБ) виртуального пространства.

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

Программы

[ редактировать ]

OS 2200 не реализует программы точно так же, как UNIX , Linux и Windows реализуют процессы, но это ближайшая аналогия. Наиболее очевидное отличие состоит в том, что OS 2200 позволяет одновременно выполнять только одну программу для каждого запуска (задания, сеанса). Программа может иметь сотни потоков, но не может запускать другие программы для одновременного выполнения. [ нужна ссылка ]

На уровне программы существует несколько банков, которые содержат смесь информации о запуске (задание, сеанс) и информации о программе. Это управляющие структуры для операционной системы. У них нет доступа к программе или доступ только для чтения. Программы могут извлекать информацию из некоторых из этих структур в целях отладки или для получения таких вещей, как идентификатор пользователя и идентификатор терминала, без дополнительных затрат на системный вызов. Они не могут быть записаны программой. Они содержат такие вещи, как области сохранения состояния потока, блоки управления файлами и учетную информацию.

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

Таким образом, каждая программа имеет собственное адресное пространство, отличное от всех других программ в системе. Ничто из того, что может сделать программа, не может изменить содержимое памяти любой другой программы. ОС и общие подсистемы защищены другими механизмами, которые будут обсуждаться позже. Почти во всех случаях из кода программы запрещен даже доступ на чтение к памяти ОС и подсистемы. Можно создать общую подсистему, которая обычно доступна для чтения или даже записи нескольким программам, но она должна быть явно установлена ​​таким образом привилегированным системным администратором. Программы изначально создаются только с банками, указанными в объектном файле, и с одним действием. Они могут использовать системные вызовы для создания дополнительных банков в рамках своего уровня программы и дополнительных действий.

Подсистемы

[ редактировать ]

Ближайшая аналогия общей подсистеме — это .dll . Подсистема во многом похожа на программу, за исключением того, что с ней не связаны какие-либо действия. Вместо этого другие программы и подсистемы обращаются к нему, как правило, через инструкцию CALL. Фактически программа — это подсистема плюс одно или несколько действий. Каждое действие принадлежит «домашней» подсистеме, то есть программе, которая его создала. Эта концепция подсистемы важна как инкапсуляция прав доступа и привилегий. В своей домашней подсистеме действия обычно имеют общие права доступа к банкам кода и данных. Банки кода в домашней подсистеме обычно доступны только для чтения или даже только для выполнения, если они не содержат постоянных данных, но все действия будут иметь право на их выполнение. [3]

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

Уровень ОС содержит банки Exec. Эти банки никогда не доступны напрямую ни для программ, ни для глобальных подсистем. Все точки входа в ОС обрабатываются так же, как и в защищенной подсистеме. Вызовы, выполняемые в ОС, всегда осуществляются через «шлюзы», инструкции, существующие для этой цели (ER = Исполнительный запрос), или через прерывания.

Индекс банковских дескрипторов (BDI)

[ редактировать ]

Следующая часть виртуального адреса — это BDI или индекс банковского дескриптора. В поле «Уровень» выбран базовый регистр таблицы дескрипторов конкретного банка (B16-B23). Базовые регистры B16–B23 являются частью состояния активности и обслуживаются исполнителем без прямого доступа со стороны активности. Таблицы банковских дескрипторов для уровней программы и активности существуют в банках уровня программы, принадлежащих операционной системе.

BDI — это просто индекс таблицы дескрипторов банка. Каждая запись в таблице содержит информацию о банке. Каждая такая запись описывает до 1 МБ (256 КВт) виртуального адресного пространства. Когда требуется большее непрерывное пространство, последовательные записи логически объединяются для создания большего банка (максимум 2). 30 слова.

Запись таблицы дескрипторов банка (дескриптор банка – BD) дает размер банка (маленький = до 256 кВт, большой = до 16 МВт, очень большой = до 1 ГВт). Небольшой банк всегда представлен одним BD. Крупные банки представлены до 64 последовательных BD, а очень крупный банк - до 4096 BD. Крупным и очень крупным банкам нет необходимости использовать все 64 или 4096 последовательных BD. Они используют столько, сколько необходимо для обеспечения необходимого виртуального адресного пространства. Запись также содержит верхний и нижний пределы допустимых смещений внутри банка. Виртуальные адреса, выходящие за пределы, генерируют прерывание по ошибке. Это позволяет небольшим банкам, например, содержащим сообщение, зарезервировать для него только то виртуальное пространство, которое ему действительно необходимо, и обеспечивает отладочную проверку на наличие плохих указателей и индексов.

BD также содержит поля ключевого значения и управления доступом. Поля указывают, предоставлены ли процессору команд разрешения на чтение, запись или выполнение (3 бита). Специальные разрешения доступа (SAP) применяются только к действиям, выполняемым в подсистеме-владельце (на самом деле только к тем, у которых совпадает значение ключа). Общие права доступа (GAP) применяются ко всем остальным и обычно равны нулю (нет доступа). Exec устанавливает ключевое значение в состоянии каждого действия, которое может быть изменено переходами шлюзов и прерываний.

Механизмы защиты

[ редактировать ]

Архитектура защиты серии 2200 использует три состояния активности, которые отражаются в состоянии оборудования. Это привилегия процессора (PP), кольцо и домен.

Привилегии процессора контролируют возможность выполнения привилегированных инструкций и доступа к защищенным регистрам и другому состоянию. PP=0 используется исполнителем и предоставляет полный доступ ко всем инструкциям и привилегированному состоянию. Действия Exec и действия пользователей, которые использовали шлюз для доступа к Exec API, выполняются с PP=0.

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

PP=2 — это обычный пользовательский режим и состояние, в котором выполняется весь остальной код. Это дальнейшее ограничение PP=1.

Существует также PP=3, который дополнительно ограничивает инструкции, которые может выполнять пользовательская программа, но в настоящее время он не используется, поскольку слишком многие существующие программы использовали некоторые из этих инструкций. Цель заключалась в том, чтобы ограничить доступ к инструкциям, которые могут зависеть от модели системы.

Механизм домена является сердцем механизма защиты. Каждый BD (дескриптор банка) имеет поле блокировки, состоящее из номера звонка и номера домена. В состоянии каждого действия также есть ключевое поле. Если ключ соответствует замку или кольцо в ключе меньше кольца в замке, действие имеет специальное разрешение доступа. В противном случае действие имеет общее разрешение доступа.

Кольцо позволяет обойти механизм защиты домена. Пользовательские приложения выполняются при Ring=3. Защищенные подсистемы работают при Ring=2. Это дает им доступ к их собственным данным, в то же время позволяя им получать доступ к параметрам и данным в пространстве вызывающего пользователя. Обратите внимание, что поток по-прежнему не может заставить защищенную подсистему получить доступ к пространству другого пользователя, поскольку используются только таблицы дескрипторов банков этого потока. Ring=0 используется ОС и позволяет ей получать доступ к собственным данным, сохраняя при этом доступ к параметрам, передаваемым либо из пользовательских программ, либо из защищенных подсистем.

Ворота – еще одна часть защитного механизма. Ворота — это структура данных, которая управляет переходами между доменами. Гейт находится в банке вентилей, и аппаратное обеспечение обеспечивает, чтобы все ссылки на вентили были адресами с правильным смещением (кратным размеру вентиля) внутри банка вентилей. Шлюз содержит целевой адрес, новые значения для PP, Ring и Domain и может содержать скрытый параметр, который необходимо передать цели. Защищенные подсистемы не доступны напрямую другим подсистемам. Вместо этого подсистема должна запросить, чтобы в ее банке шлюзов были построены ворота для доступа к этой подсистеме. Это позволяет операционной системе выполнять любые проверки контроля доступа. Затем система связи найдет адрес шлюза, связанный с точкой входа. Фактически, весь механизм обычно прозрачно управляется внутри системы ссылок. Скрытый параметр позволяет, например, файловому шлюзу ввода-вывода содержать адрес или дескриптор блока управления файлом. Поскольку это гарантированно правильно, поскольку оно было создано ОС, когда пользователь открыл файл, многие проверки ошибок могут быть исключены из длины пути для выполнения ввода-вывода.

Процессоры команд

[ редактировать ]

OS 2200 предназначена для обработки до 32 процессоров инструкций (или ЦП ). За прошедшие годы было выполнено большое количество проектов, оптимизированных для этой среды. Например, OS 2200 практически не использует в своей конструкции критические секции . Слишком высока вероятность выполнения одного и того же кода несколькими процессорами. Вместо этого он использует блокировку данных с максимально возможной степенью детализации. Обычно блокировки касаются одного экземпляра объекта данных (например, структуры управления активностью или блока управления файлами) и содержатся в структуре данных объекта. Это сводит к минимуму вероятность конфликтов. Когда необходимо установить больше глобальных блокировок, например, при обновлении списка объектов, блокировка устанавливается только на то время, которое требуется для обновления ссылок в списке. Даже диспетчеризация осуществляется с помощью отдельных блокировок для разных уровней приоритета. Можно выполнить проверку пустого уровня приоритета без установки блокировки. Блокировку необходимо устанавливать только при добавлении или удалении элемента из очереди.

Набор регистров находится в видимом адресном пространстве. Регистры появляются в первых 128 словах (200 8 ) текущего банка команд (B0), когда на них ссылаются как на элемент данных. Это накладывает на компиляторы ограничение не размещать константы данных в первых 128 словах банка кода. Результатом этого является расширение набора команд без необходимости дополнительных кодов операций. Операции между регистрами выполняются с помощью кодов операций хранения регистров.

Типичные инструкции содержат код функции, целевой (или исходный) регистр, индексный регистр, базовый регистр и поле смещения. Когда код функции с ее квалификатором указывает на непосредственные данные, поля смещения, базы, i и h объединяются, образуя одно 18-битное непосредственное значение. Это позволяет загружать, добавлять, умножать и т. д. небольшими константами, чтобы исключить обращение к памяти и связанное с ней хранилище.

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

Базовый режим — это еще одна форма форматов инструкций и адресации. Базовый режим обеспечивает совместимость с предыдущими системами, начиная с 1108. Для всех практических целей аппаратная архитектура определяет правила, по которым адреса и инструкции преобразуются в вышеуказанные формы. Наиболее очевидным отличием базового режима является отсутствие явных регистров B в инструкциях. Вместо этого есть четыре неявно используемых регистра B (B12-B15). Существует сложный алгоритм, использующий ограничения банков, представленных этими регистрами B, адресом операнда и регистром B, в котором находится текущая инструкция.

Наиболее интересные инструкции в репертуаре 2200 — это инструкции блокировки и синхронизации. Условная замена знакома и очень похожа на функцию сравнения и замены в архитектуре Intel. Эти инструкции всегда получают эксклюзивное использование строки памяти/кэша, содержащей указанное слово. TS и TSS проверяют бит в указанном слове. Если бит сброшен, его устанавливают и продолжают (TS) или пропускают (TSS). Если бит установлен, они либо прерываются (TS), либо переходят к следующей инструкции (TSS). При прерывании TS ОС выполняет одно из нескольких действий в зависимости от последовательности инструкций и приоритета активности. Действия реального времени и действия Exec просто возвращают контроль, позволяя повторить попытку, если только не ожидается действие с еще более высоким приоритетом. Предполагается, что блокировка установлена ​​на другом процессоре и вскоре будет снята. Если это действие пользователя не выполняется с приоритетом в реальном времени, его приоритет может быть временно снижен и возвращен в очереди диспетчеризации.

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

Результатом использования этих механизмов является высокая эффективность, низкие накладные расходы и синхронизация действий.

Архитектура массового обслуживания — еще один интересный частный случай. Он был специально разработан для обеспечения очень эффективной обработки сообщений, когда количество сообщений, ожидающих обработки, может быть практически неограниченным. Он также направлен на снижение одной из основных затрат на обмен сообщениями, а именно необходимости постоянного перемещения сообщений в памяти. Даже перемещение их из диспетчера связи в подсистему очереди сообщений в программу обработки исключается. Вместо этого каждое сообщение помещается в отдельный небольшой банк. Инструкции позволяют помещать дескрипторы этих банков в очередь и удалять их из очереди. Когда сообщение помещается в очередь, отправляющая программа или подсистема больше не имеют к нему доступа. Этот банк удаляется из своего адресного пространства. Когда сообщение извлекается из очереди, банк становится частью адресного пространства получателя. Инструкции организации очереди также обеспечивают функции синхронизации действий (например, ожидание сообщения).

Перемещаются только «указатели», и они перемещаются таким образом, чтобы обеспечить безопасность и целостность. После перемещения данные в сообщении видны только получателю.

Процессоры ввода/вывода

[ редактировать ]

Все операции ввода-вывода в системах серии 2200 обрабатываются процессорами ввода-вывода . Эти процессоры разгружают большую часть пути ввода-вывода и восстановления, а за счет полной изоляции основной системы от сбоев ввода-вывода, прерываний, ошибок шины и т. д. значительно повышают надежность и доступность. Процессоры ввода-вывода бывают трех разных типов (хранилище, связь, кластеризация), но единственная реальная разница — это загрузка встроенного ПО . [4]

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

ОС принимает очень общие вызовы от программ и генерирует пакеты команд с адресами реальной памяти и устройств, которые затем передаются процессору ввода-вывода. Встроенное программное обеспечение процессора ввода-вывода фактически создает пакеты, специфичные для устройства (например, SCSI ), настраивает DMA , осуществляет ввод-вывод и обслуживает прерывания.

  1. ^ Уоттс С. Хамфри, «MOBIDIC и Fielddata», IEEE Annals of the History of Computing, vol. 9, нет. 2, стр. 137-182, апрель-июнь 1987 г., два : 10.1109/MAHC.1987.10018 . http://doi.ieeecomputersociety.org/10.1109/MAHC.1987.10018
  2. ^ Корпорация Unisys (2013). Справочное руководство по программированию исполнительных запросов системного программного обеспечения Exec . (публикация Unisys 7830 7899). Розвилл, Миннесота. http://public.support.unisys.com/2200/docs/cp14.0/pdf/78307899-022.pdf
  3. ^ Корпорация Unisys (2012). Руководство по программированию связывания системных подсистем . (публикация Unisys 7830 7451). Розвилл, Миннесота. http://public.support.unisys.com/2200/docs/cp14.0/pdf/78307451-015.pdf
  4. ^ Корпорация Unisys (2012). Руководство по планированию ввода-вывода сервера ClearPath Dorado 300/400/700/800/4000/4100/4200 . (публикация Unisys 3839 6586). Розвилл, Миннесота. http://public.support.unisys.com/2200/docs/cp14.0/pdf/38396586-010.pdf
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 8bd3cfe6793744a2947f0702fe756e31__1711070700
URL1:https://arc.ask3.ru/arc/aa/8b/31/8bd3cfe6793744a2947f0702fe756e31.html
Заголовок, (Title) документа по адресу, URL1:
Unisys 2200 Series system architecture - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)