А.Н. Томилин - Операционные системы супер-ЭВМ (1156254), страница 8
Текст из файла (страница 8)
Параметры уведомления: идентификатор задания и описатель пакета результатов. Структура описателя пакета результатов аналогична описателю пакета задания.
Опишем кратко функционирование службы пересылки заданий. После выставления пользователем на внешней машине запроса на ввод задания в основную машину задача ввода внешней машины устанавливает транспортное соединение между своим активным портом и пассивным портом задачи ввода основной машины. При этом для разрешения конфликта по доступу к пассивному порту задачи ввода основной машины между задачами ввода разных внешних машин возможно потребуется N-кратное обращение к транспортной службе с запросом на установление соединения через временные промежутки. После установления соединения задача ввода внешней машины начинает передачу пакета как протокольной единицы данных "Пакет". Пакет считается полностью переданным после окончания передачи сообщения-вопроса, содержащего пакет, и получения сообщения-ответа с протокольной единицей данных "Ответ" с нулевым кодом в поле "код ответа". Если одно из этих условий не выполнено, пакет считается не переданным. В зависимости от реализации задача ввода внешней машины может возобновить передачу пакета автоматически или после повторного запроса пользователя. В случае успешного завершения передачи пакета задача ввода внешней машины анализирует, не поступали ли другие запросы на ввод задания во время пересылки, и, если поступили, начинает, не терминируя транспортного соединения, пересылку следующего пакета. Если больше запросов нет, транспортное соединение терминируется по инициативе задачи ввода внешней машины. По инициативе задачи ввода внешней машины транспортное соединение может быть терминировано и во время пересылки (в случае возникновения исключительной ситуации в задаче ввода внешней машины, например, при невозможности прочтения файлов задания с диска внешней машины).
Задача ввода основной машины после установления транспортного соединения начинает прием пакета. После приема первого фрагмента сообщения-вопроса, содержащего марку первого файла, открывается справочник ввода с именем - идентификатором задания. В этом справочнике по ходу поступления марок файлов фиксируется расположение принимаемых файлов задания. После успешного окончания ввода пакета (транспортная служба не отбросила сообщение-вопрос с протокольной единицей данных пакет, запись тел файлов прошла успешно, без исключительных ситуаций) задача ввода посылает сообщение-ответ с протокольной единицей данных "Ответ", в поле "код ответа" которой помещается ноль. После этого пакет передается на обработку для начала выполнения задания. В случае неуспешного окончания ввода пакета задача ввода основной машины или посылает сообщение-ответ с соответствующим кодом ответа или терминирует транспортное соединение, причина терминации передается в поле "дополнительной информации" в формате записи последовательного байтового файла основной машины, содержащей текстовую строку с описанием причины терминации. Протоколом предусмотрены обе возможности. Справочник, в который помещался поступающий пакет, уничтожается. Все следы от недопринятого пакета исчезают.
Действия задач вывода аналогичны.
3.9. Протокол пересылки файлов.
Для работы различных пользовательских программ в локальной сети необходимо уметь обрабатывать программами, выполняющимися в одной машине сети, файлы, хранящиеся во внешней памяти другой машины. Существуют различные средства решения этой проблемы. Одним из наиболее распространенных средств является концепция виртуального файла и виртуального файлохранилища. Реализация этой концепции позволяет задаче в любой машине сети работать с файлом, хранящимся во внешней памяти одной из машин сети, при помощи средств доступа к виртуальному файлохранилищу. При этом с файлом работают как с хранящимся в каноническом виде виртуальным файлом. Это обстоятельство является одним из самых больших препятствий на пути реализации этой концепции в неоднородной сети машин. Чрезвычайно сложно приводить к единой канонической форме файлы различных файловых систем. Поэтому эта концепция реализуется, как правило, только в однородных сетях ЭВМ.
Более простым средством предоставления возможности работы с удаленным файлом является пересылка этого файла как целого. Причем возможно необходимое преобразование формы файла выполняется средствами пользователя. Файл выбирается из файлохранилища одной машины средствами этой машины с обеспечением контроля прав доступа, принятых в этой системе. После пересылки как единого целого файл помещается в файлохранилище другой машины средствами работы с файлами этой машины, с занесением всей атрибутики файлов, принятой в этой системе.
В локальной сети "Электроника ССБИС" было принято решение обеспечить работу с удаленным файлом путем предварительного размещения этого файла в файлохранилище соответствующей ЭВМ. Таким образом, задача пересылки файлов между основной и внешней машинами разбивается на 4 подзадачи:
-
пересылка файла из архива внешней машины в архив основной машины по инициативе задачи, выполняемой на внешней машине;
-
пересылка файла из архива основной машины в архив внешней машины по инициативе задачи, решаемой на внешней машине;
-
пересылка файла из архива внешней машины в архив основной машины по инициативе задачи, выполняемой на основной машине;
-
пересылка файла из архива основной машины в архив внешней машины по инициативе задачи, выполняемой на основной машине.
Первые две задачи решаются средствами выполнения обобщенного шага задания на основной машине. Для первой задачи пакет задания содержит файл на языке управления заданиями ОМ и файл из архива внешней машины, который необходимо поместить в архив ОМ. Задание состоит из одного шага перемещения файла из входного справочника задания в архив. Атрибуты и составное имя помещаемого файла описывается средствами языка управления заданиями ОМ. Пакет результатов содержит служебную информацию о выполнении задания.
Для второй задачи пакет задания содержит файл на языке управления заданиями ОМ. В этом файле описан шаг, состоящий в перемещении соответствующего файла из архива ОМ в выходной справочник задания. Оттуда средствами вывода результатов выполнения задания этот файл будет помещен в пакет результатов и выведен во внешнюю машину. Идентификация этого файла в пакете результатов и его помещение в архив внешней машины будет производиться средствами внешней машины.
Для решения третьей и четвертой задачи было принято решение не создавать дополнительных служб в основной машине. Следует вспомнить, что любая задача, выполняющаяся в основной машине, есть шаг задания, запущенного из внешней машины. Следовательно, на внешней машине должно быть предусмотрено (средствами этого же задания), что во время выполнения обобщенного шага задания на основной машине может возникнуть необходимость пересылки файлов. Транспортные средства сетевого локального обеспечения локальной сети предоставляют возможность установления взаимосвязи между различными шагами одного задания, устанавливая между ними транспортные соединения. Эти транспортные соеди-
нения можно использовать для пересылки файлов. В качестве протокола пересылки файлов рекомендуется использовать протокол пересылки заданий, пересылая файл в протокольной единице данных "Пакет". Только следует учитывать, что в данном случае транспортное соединение будет устанавливаться не между системными задачами, а между пользовательскими задачами, выполняющими разные шаги одного задания.
3.9.1. Используемые средства транспортного уровня.
Для пересылки файлов используются практически все примитивы установления соединения (как с активной, так и с пассивной стороны), примитивы передачи и приема фрагментов сообщения -вопроса и сообщения-ответа, примитивы терминации соединения. Эти примитивы и семантика их использования описаны в разделе описания транспортного протокола. Здесь будут описаны только средства транспортного уровня, обеспечивающие идентификацию портов, между которыми устанавливается транспортное соединение.
Для установления транспортного соединения необходимо сообщить транспортной службе идентификатор своего порта и порта, с которым будет устанавливаться транспортное соединение. Идентификатор порта состоит из трех полей:
1) поле "номер ЭВМ", занимающее 1 байт;
2) поле "идентификатор абонента", занимающее 6 байтов;
3) поле "номер порта абонента", занимающее 1 байт.
Поле "номер ЭВМ" определяет машину сети, в которой находится данный порт.
Значение поля "идентификатор абонента" должно быть таково, чтобы исключить возможность установления ошибочных соединений. Таким свойством обладает идентификатор задания. Уникальность его обеспечивается средствами внешней машины, откуда исходит задание. Транспортной службе идентификатор задания и номер внешней машины, откуда поступило задание, сообщается при регистрации шага задания в транспортной службе. Эта регистрация производится средствами ОС. При выполнении примитивов установления соединения транспортная служба помещает в поле "номер ЭВМ" идентификатора своего порта номер своей ЭВМ, а в поле "идентификатор абонента" - идентификатор задания. Значение этих полей не может изменяться пользователем.
Значение поля "номер порта" определяется пользователем. Изменяя значение этого поля, можно устанавливать взаимодействие с различными шагами задания или одновременно с одним шагом для разных полей.