Cтраница 2
Предположим, через модуль, расположенный в станции N 1, по команде F ( 0) с субадресом А ( 0) происходит блочная передача с опросом Q Данные передаются 24-разрядными словами. Напишите программу считывания блока из 100 ( 10) слов и занесения их в массив ячеек памяти ЭВМ, начиная с адреса MAS. Каждое прочитанное слово должно разместиться в трех последовательных байтах массива. [16]
С - 1, имеет единственное решение, если С - простое число. Написать на языке Ассемблера программу считывания чисел А, В и С и печати тех значений X в интервале 0 X; С - 1, которые удовлетворяют уравнению. Затем прибавляем к X единицу и умножаем Т на А; если произведение больше С, то вычитаем С из Т столько раз, чтобы остаток от вычитания стал меньше С. Заметьте, что это эквивалентно делению Т на С и отбрасыванию частного. [17]
Функция планирования может быть составной частью системной службы, обеспечивающей выбор очередных заданий для выполнения и передачу их подсистеме, занимающейся распределением, В принципе планировщик и программа распределения часто объединяются в единый сервисный модуль. Кроме того, в отдельных системах программа считывания, планировщик и некоторая независимая часть механизма распределения образуют особую системную службу, называемую подсистемой ввода заданий. [18]
Если высокоприоритетные задания желательно обрабатывать быстро и без вмешательства оператора, то программа считывания должна уметь распознавать такие задания и немедленно передавать их на обслуживание планировщику. В тех случаях, когда время обработки высокоприоритетных заданий особенно критично, программа считывания может быть объединена с планировщиком. [19]
Необходимость применения программы считывания определяется ее способностью обрабатывать новые задания, поступающие в произвольные моменты времени и имеющие самые различные характеристики, в том числе и приоритеты. В системах реального времени, где задания подготавливаются в ином порядке и совершенно другими средствами, программы считывания не используются. [20]
Далее выполняется синтаксический контроль операторов, и если, в одном из них будет обнаружена ошибка, то задание в обработку не принимается. Если все операторы синтаксически корректны, то информация, ггринадлежащая самому заданию, заносится во входную очередь заданий и в связанные блоки управления, а данные передаются на диск системного ввода В менее сложных системах, например, таких, как дисковая операционная система Siemens 4004, оператор должен запустить эту программу считывания вручную, а также выделить память для нее и задания, которое она инициирует. Более развитые системы ( IBM 360 / 370 OS, VS; ICL System-4, уровень J, Siemens 4004 BS) позволяют использовать резидентный считыва -, тель, который автоматически считывает входной поток заданий всякий раз, когда в нем есть данные, и формирует входную очередь заданий. Разумеется, для резидентного считывателя необходим большой объем основной памяти ( около 30 кбайт в противоположность 6 кбайт, необходимым для простого нерезидентного считывателя), и это, конечно, уменьшает возможности мультипрограммирования. [21]
В принципе обращение к системе для выполнения произвольной программы, написанной на языке Фортран, требует полного описания необходимых внешних устройств и рабочих областей. Однако пользователю вместо полного кодирования совокупности управляющих предложений предоставляется возможность написать всего лишь одно предложение вызова соответствующего компилятора. Программа считывания входного потока обнаруживает ссылку на Фортран, выбирает содержимое соответствующего раздела библиотеки процедур и сама формирует нужное задание. [22]
Вызвать планировщик можно с операторской консоли, но помимо этого выполнение функций планирования могут запросить и некоторые компоненты самой операционной системы. Например, вполне реальна ситуация, когда при недостаточной загрузке вычислительной установки среда выполнения обращается к планировщику с требованием обеспечить более эффективную работу. Бывает и так, что программа считывания непосредственно вызывает планировщик для обслуживания срочного задания. [23]
Обычно на IBM-360 разрешаются все прерывания, относящиеся к УВВ. С каждым устройством сляжем один или несколько байтов, в которых содержится информация о текущем состоянии устройства. Предположим, что нужно написать программу считывания колоды карт на устройстве IBM-2520 н сложения чисел, находящихся в колонках 1 - 5 каждой карты. После того как будет считана последняя карта, сумма должна бить отпечатана на пультовой пишущей машинке. Для IBM-2520 имеется один байт признаков. [24]
Если высокоприоритетные задания желательно обрабатывать быстро и без вмешательства оператора, то программа считывания должна уметь распознавать такие задания и немедленно передавать их на обслуживание планировщику. В тех случаях, когда время обработки высокоприоритетных заданий особенно критично, программа считывания может быть объединена с планировщиком. [25]
Сам робот выполнен в виде стандартного периферийного устройства для нашей системы с разделением времени и доступен пользователю с любой консоли. В библиотеке программ существует несколько пакетов для управления различными частями аппаратуры робота. Имеется программа исполнения, дающая возможность пользователю управлять машиной-спутником с консоли в режиме разделения времени; имеются также программы передвижения платформы и руки и программы считывания изображения с ТВ-камеры. [26]
Как правило, проверка корректности входного потока входит в обязанности программы считывания. Но в некоторых системах ( например, в OS / VS1 IBM) этим занимается планировщик. Если предполагается, что задержка при обработке ошибок в предложениях языка управления заданиями гораздо менее существенна, чем повышение скорости считывания входного потока ( во многом зависящей от простоты программы считывания), то перенос проверки корректности на более поздний этап вполне допустим. [27]
Иногда программисту удобно определить некоторую область в нескольких форматах или различными подполями. Предложение ORG вызывает принудительное присвоение следующему распределяемому байту памяти адреса, заданного единственным операндом команды ORG. Практическим примером совместного использования предложений DS и ORG служит программа считывания данных с перфокарт. [28]