ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 17.10.2024
Просмотров: 87
Скачиваний: 0
темного устройства, выходные классы и другая информация. В команде START для инициатора указываются классы заданий, к которым приписан инициатор. Программа прямого системного вы вода также запускается командой START, в которой указываются классы заданий, выходные классы и адрес устройства системного вывода.
О перат ивная |
Устройство |
пам ят ь |
выполнение за дания ( пункт а
зада ния )
Р и с . 17. О б р а б о т к а п оток а за д а н и й в о д н о п р о г р а м м н о м р еж и м е
На рис. 17 показана обработка потока заданий в однопрограмм ном режиме. Как видно из рисунка, основные отличия от обработки в мультипрограммных режимах заключаются в следующем.
Во-первых, отсутствуют входные и выходные очереди. В связи с этим программа системного ввода вводит входной поток с уст ройства по пунктам. После ввода очередного пункта он запуска ется инициатором и выполняется под управлением программ су первизора. После завершения выполнения пункта программа сис темного вывода производит вывод результатов.
Во-вторых, отсутствует мультипрограммирование. Все програм мы выполняются строго последовательно.
В-третьих, допускается только один входной поток, одно устрой ство системного ввода и одно устройство системного вывода. Все ресурсы вычислительной системы принадлежат той единственной программе, которая выполняется. Поэтому распределение ресурсов практически отсутствует.
2.9. РЕЖИМЫ РАБОТЫ УПРАВЛЯЮЩЕЙ ПРОГРАММЫ
Все режимы работы управляющей программы программно-сов местимы. Это значит, что требования на выполнение всех заданий под управлением программ супервизора одинаковы. Тем не менее способ управления задачами допускает значительные вариации. Для вычислительной установки наиболее важным является выбор между управляющей программой, рассчитанной на однопрограмм ный режим, и управляющей программой, рассчитанной на муль типрограммный режим с фиксированным или переменным числом задач.
4* |
51' |
Поскольку оба режима касаются управления задачами, про грамма, написанная для однопрограммного режима и удовлетво ряющая системным соглашениям, будет работать и в мультипро граммном режиме.
В однопрограммном режиме программы планировщика зада ний являются задачами. Каждый пункт задания выполняется как часть этой задачи, и, поскольку она является единственной зада чей в системе, она может иметь все наличные ресурсы. Программа пункта задания может иметь любую программную структуру из тех, которые были ранее упомянуты, за исключением динамиче ской структуры с несколькими задачами в одном пункте задания.
Управляющая программа сначала размещает загрузочный мо дуль, который указан в операторе ЕХЕС. Для этого выделяется место в основной памяти в соответствии с информацией, находя щейся в оглавлении библиотеки и относящейся к данному загру зочному модулю. Затем загружается модуль в основную память. Когда загрузочный модуль появляется в основной памяти, управ ление передается в точку входа.
Если выбранный загрузочный модуль является первой програм мой последовательной динамической структуры, последующие за грузочные модули выбираются так же, как и первый, за одним исключением: если требуемый модуль является повторно исполь зуемым или реентерабельным и его копия уже находится в основ ной памяти, то она может использоваться для удовлетворения нового запроса. Когда пункт задания завершается, супервизор ин формирует об этом планировщик заданий независимо от того, бы ло ли окончание нормальным или аварийным. Минимальный объем оперативной памяти для работы в однопрограммном режиме со ставляет 64К.
""В мультипрограммном режиме программы управления задача ми должны распределять ресурсы между несколькими одновремен но выполненными задачами, следить за использованием ресурсов и после окончания задачи освобождать все ресурсы. Если несколь ко задач дожидаются одного и того же устройства, управляющая программа организует очередь запросов. Делая четкое различие между задачами, супервизор позволяет задачам разделять ресур сы, если это возможно.
Мультипрограммный режим сокращает общее время работы системы, даже если выполняются работы, состоящие из одной за дачи. Сокращение времени получается за счет того, что управляю щая программа сама работает в мультипрограммном режиме. При менение динамических структур для решения сложных задач позволяет различным сегментам программы совместно использо вать системные ресурсы и таким образом оптимизировать их ис пользование. Мультипрограммный режим позволяет параллельно выполнять несколько пунктов, принадлежащих различным зада ниям.
Выполняемый пункт может быть связан с последующими пунк тами того же самого задания через коды завершения, а также мо-
52
жет передавать наборы данных. Пункт задания не может переда вать данные последующему пункту путем сохранения их в разделе оперативной памяти.
Задание по определению не зависит от других заданий. Это свойство очень существенно в условиях мультипрограммирования, когда задания выполняются по принципу приоритетов без попыток синхронизировать выполнение одного задания с другими. Пункт задания не может общаться непосредственно с параллельно вы полняемым пунктом в другом разделе. Он не может вызвать обра зование нового раздела. Команды, задаваемые оператором, управ ляют числом находящихся в использовании разделов.
Как уже было упомянуто, во время генерации системы можно выбрать средство квантования времени, а также модифицировать его во время инициализации системы. Квантование задач предот- ; вращает монопольное использование центрального процессора од- ; ной задачей. Эта возможность особенно полезна, когда имеется ;
одна или несколько задач |
(или разделов) разговорного типа, где |
; |
пользователь общается с программой через терминал. |
||
Ниже рассматриваются два существующих в операционной си- |
' |
|
стеме режима мультипрограммирования — с фиксированным и пе-_ |
|
|
ременным числом задач. |
F т |
|
В режиме мультипрограммирования с фиксированным числом задач память делится на две основные области: системную и дина мическую. Системная область содержит ядро, резидентные программы и таблицы, области для транзитных программ супервизора, и системных очередей. Динамическая область подразделяется на; 52 дискретные области, называемые разделами. Количество раз-; делов в динамической области и их размер задаются во время re -1 нерации системы или во время начальной загрузки. Оператор мо-:
жет переопределить |
их в любое время. Из общего |
количества ’ |
|
15 разделов максимально могут использоваться для выполнения \ |
|
||
заданий. |
|
|
|
Программы системного ввода и системного вывода для своей ; |
|||
работы используют отдельные разделы. В каждый момент време- |
' |
||
ни в системе может работать не более 3 программ системного вво- |
; |
||
да и не более 36 программ системного вывода. Программы прямо- |
• |
||
го системного вывода размещаются в разделах заданий. Один |
|
||
такой раздел может содержать несколько программ прямого си |
|
||
стемного вывода. |
разновидности мультипрограммного режима |
|
|
Существуют две |
|
||
с фиксированным числом задач: без подзадач и с подзадачами. В |
: |
||
режиме без подзадач для каждого пункта задания |
образуется |
только одна задача. Внутри нее процесс вычисления не может быть ■ распараллелен, т. е. все программы выполняются последовательно. ; Задачи разных разделов выполняются одновременно в режиме ! мультипрограммирования. В режиме с подзадачами допускается , распараллеливание вычислений за счет того, что любая задача ^ (подзадача) может породить одну или несколько подзадач, кото- i рые выполняются одновременно друг с другом и с породившей их '
53
^задачей, а также с задачами других разделов. Общее число всех одновременно выполняемых задач и подзадач не должно превы шать 255. В это число входят задачи и подзадачи пользователей,
атакже задачи и подзадачи системы. Максимальное число задач
|
и подзадач, выполняемых в рамках |
одного раздела, составляет |
|||||
|
250 (5 задач используются управляющей программой). |
||||||
|
Еще одно различие между |
режимом без подзадач и режимом |
|||||
|
с подзадачами заключается |
в |
способе определения |
приоритетов |
|||
|
задач. В режиме без подзадач |
приоритет присваивается разделам |
|||||
; памяти. |
Он не выражается |
явным числом, но считается, что при |
|||||
; |
оритет |
раздела тем выше, |
чем старше начальный |
адрес памяти, |
|||
в которой расположен раздел. |
В режиме с подзадачами приоритет |
||||||
< |
присваивается каждой задаче |
и подзадаче |
и изменяется в диапа- |
||||
; |
зоне от 0 до 255. Приоритет задачи |
пункта |
задания |
определяется |
|||
- |
приоритетом раздела памяти. |
Приоритеты |
подзадач |
можно изме- |
;нить относительно порождающей задачи в момент их образования
i |
в макрокоманде ATTACH. Кроме того, приоритеты задач и подза- |
дач могут динамически изменяться в процессе работы макрокоман- |
|
i |
дой CHAP. |
|
Возможность образования подзадач в режиме мультипрограм |
|
мирования с фиксированным числом задач задается при генерации |
|
операционной системы. |
|
Пользователь может направлять задания в определенный раз- |
;дел или в группу разделов с помощью параметра CLASS в опера
торе JOB. Во время генерации системы каждому разделу может быть присвоено до трех классов заданий (в диапазоне А — О). Классы заданий могут модифицироваться при инициализации си стемы или по команде DEFINE. Параметр CLASS в операторе JOB дает возможность пользователю определять тип задания, ко торое может обрабатываться в каждом разделе. Оператор может изменить класс заданий, количество и размер некоторых или всех разделов системы в любое время после начальной загрузки.
Если используется режим без подзадач, - приоритет разделов возрастает с возрастанием адресов памяти. Задания распределя ются по разделам с помощью параметра CLASS в операторе JOB. Каждое из 15 возможных заданий защищается от влияния со сто
роны других |
заданий, |
а системные области |
защищены |
от всех |
: проблемных |
программ. |
Защита реализуется |
с помощью |
ключей |
:защиты памяти.
\Все разделы независимы по отношению к планированию и ини
циализации заданий. Задания планируются для первого свобод-
. [ного раздела проблемных программ, обслуживающего класс за еданий, определенный оператором JOB. Затем продолжается вы полнение задач в системе. Задача с более низким приоритетом {получает управление, когда другая задача с более высоким приори тетом находится в режиме ожидания некоторого события, напри мер завершения ввода-вывода.
Когда задача с высоким приоритетом готова возобновить ра боту, выполнение задачи низкого приоритета приостанавливается
54
и управление возвращается к задаче более высокого приоритета до окончания ее решения. Переключение управления от одной за- : дачи к другой называется переключением задач.
В режиме мультипрограммирования с подзадачами каждый пункт задания может образовать одну или несколько подзадач с j помощью макрокоманды ATTACH. С помощью параметров этой ; макрокоманды подзадачам можно установить приоритеты. Кроме | того, допускается изменение приоритета подзадачи с помощью ма- ) крокоманды CHAP. Пункт задания может быть завершен в том случае, если все задачи этого пункта будут завершены.
Если предусмотрена возможность квантования времени, необ ходимо иметь в виду следующее. В режиме без подзадач квантую щаяся группа определяется при генерации как группа смежных разделов. Все задачи, запланированные для этих разделов, будут участвовать в квантовании. Поскольку каждый раздел в системе присваивается одному классу задания и каждое задание будет запланировано в раздел в соответствии с классом, определенным параметром CLASS в операторе JOB, присваивание класса зада- . ния должно производиться очень осторожно. Если необходимо, чтобы задание было квантующимся, следует направить его в раз- :
дел (с помощью параметра CLASS), отведенный |
квантующейся . |
группе. |
; |
В режиме с подзадачами квантующаяся группа определяется; |
|
при генерации как группа задач в заданном диапазоне изменения |
|
приоритета. Поэтому любая задача, текущий приоритет которой |
|
попадает в диапазон приоритетов, присвоенный |
квантующейся; |
группе, может считаться членом этой группы. Задача может иметь1 |
|
диспетчерский приоритет, равный приоритету квантующейся труп-; |
|
пы, в результате действия параметра, определяющего приоритет' |
|
в операторе JOB или в макрокомандах ATTACH |
или CHAP. По- ' |
этому, если подзадаче присваивается приоритет, |
совпадающий с ■ |
приоритетом квантующейся группы, эта новая задача включается |
1 |
|
в группу независимо от того, была ли породившая ее задача кван- |
’= |
|
тующейся. |
|
\ |
При мультипрограммном режиме с фиксированным числом за |
|
|
дач необходимо уделять внимание способу, которым пользователь |
|
|
определяет различные типы заданий и направляет эти задания в |
|
|
соответствующие разделы. |
|
|
Рассмотрим несколько простых случаев: задания, существенно |
|
|
использующие центральный процессор, могут быть направлены в |
|
|
разделы низкого приоритета так, чтобы они не препятствовали вы |
|
|
полнению заданий, которые мало используют центральный про- |
|
|
цессор. Телекоммуникационные задания могут |
быть направлены |
j |
в разделы высокого приоритета, так чтобы время ответа системы |
||
пользователю у терминала было минимальным. |
|
j |
Несмотря на то, что мультипрограммирование с переменным |
j |
|
числом задач предоставляет те же преимущества, что и с фиксиро- |
j |
|
ванным числом задач, имеются существенные |
различия между |
j |
55
■этими режимами, особенно в использовании памяти и дополни тельных возможностей, доступных только в режиме с переменным числом задач.
Врежиме с переменным числом задач, так же как и с фикси рованным, определенное количество основной памяти резервиру ется для управляющей программы (системная область). Осталь ная память (динамическая область) доступна программам пользо вателей. Динамическая память распределяется между разделами динамически в процессе выполнения заданий, что является сущест венным отличием от режима с фиксированным числом задач.
Врежиме с переменным числом задач производится чтение од
ного или нескольких входных потоков и осуществляется планиро вание заданий (классифицируемых по входным очередям) в соответствии с приоритетами. Каждое вызванное для выполнения задание оперирует внутри зоны динамически выделяемых разде лов. До 15 независимых заданий могут выполняться одновременно,
iПункты одного и того же задания выполняются последовательно, поскольку один пункт может зависеть от успешного завершения другого пункта. Пункт задания (сам по себе считающийся зада чей) может образовать одну или несколько подзадач, используя макрокоманду ATTACH.
Задача, соответствующая пункту задания, и ее подзадачи вы полняются независимо внутри одного и того же раздела и исполь зуют один и тот же ключ защиты памяти. Для завершения пункта необходимо завершение всех его задач. Любая задача этого режи ма, для которой значение текущего приоритета равно значению приоритета квантования, становится членом квантующейся группы.
Группы квантования для режима с переменным числом задач задаются при генерации указанием одного или нескольких значе ний приоритета. Все задачи с указанным значением приоритета будут выполняться в режиме квантования. Задача может иметь текущий приоритет, равный приоритету квантующейся группы, в результате определения соответствующего приоритетного парамет ра в операторах JOB и ЕХЕС, или параметров в макрокоманде ATTACH, или в макрокоманде изменения приоритета CHAP. Та ким образом, если при использовании макрокоманды ATTACH подзадача получает значение приоритета, соответствующее группе квантования, новая задача включается в группу квантования не зависимо от того, принадлежала ли к ней породившая ее задача.
Размер раздела памяти определяется параметром REGION опе раторов JOB или ЕХЕС. Если размер определяется в операторе JOB, то каждый пункт этого задания получит зону указанного раз мера независимо от размера, указанного в операторах ЕХЕС. Ес ли параметр REGION опущен в операторе JOB, то в каждом опе раторе ЕХЕС можно указать требуемый размер раздела для дан ного пункта. Если параметра REGION нет ни в операторе JOB, ни
'в операторе ЕХЕС, то заданию выделяется раздел стандартного размера, определенного в процедуре программы системного ввода. После определения раздела для пункта задания никакая допол-
56