Последовательность обработки задания на эвм.
Решение любой задачи на ЭВМ начинается с написания ее алгоритма на языке программирования (например, на алгоритмических языках ФОРТРАН, КОБОЛ, ПЛ/1, ассемблера и др.). Текст алгоритма называется исходной программой или исходным модулем. Исходная программа удобна и понятна программисту, но совершенно непонятна ЭВМ, поскольку ЦП воспринимает только язык машинных команд. Таким образом, собственно до этапа решения предложенной задачи исходная программа (модуль) должна претерпеть несколько этапов обработки, в результате которых смысл алгоритма решения задачи станет понятен конкретной ЭВМ. На рис. 3.3 представлены необходимые этапы обработки исходного модуля. Исходные модули 1 и 2 написаны на различных языках (имеется в виду, что в создании сложных программных комплексов могут участвовать несколько программистов, использующих различные языки программирования).
Рис. 3.3. Этапы обработки задания на ЭВМ.
Первый этап обработки — трансляция, т. е. перевод текста исходного модуля с какого-либо языка программирования па язык машинных команд конкретной ЭВМ. Трансляция осуществляется с помощью специальных, сложных программ — трансляторов, которые входят в состав комплекта системных обрабатывающих программ ОС. Транслятор загружается в ОП ЭВМ, ему передается управление центральным процессором, входной информацией для него служит транслируемый исходный модуль, результатом работы является текст программы на машинном языке — объектный модуль.
Для каждого типа ЭВМ должен существовать комплект трансляторов, каждый из которых осуществляет трансляцию только с одного из языков программирования.
Всякий исходный модуль в результате трансляции преобразуется в стандартную, принятую для данного типа ЭВМ форму объектного модуля. Как правило, это тексты машинных команд и различные справочники перекрестных и внешних ссылок. Таким образом, все особенности различных языков программирования, четко выраженные в исходных модулях, полностью стираются после этапа трансляции.
Сложные программные комплексы состоят из многих модулей, поэтому перед этапом выполнения программы необходимо объединение всех модулей и определение связей между ними. В современных ОС такое объединение модулей осуществляется после этапа трансляции перед загрузкой программы в ОП ЭВМ для выполнения. Процесс установления межмодульных связей в различных ОС называют редактированием связей (компоновкой задач, построением задач), и выполняется он с помощью специальной программы редактора связей.
Исходной информацией для программы редактора связей является совокупность объектных модулей, а результатом работы — единый загрузочный модуль. Как правило, загрузочный модуль не сразу попадает в ОП ЭВМ, а предварительно помещается в библиотеку загрузочных модулей (в мини-ЭВМ — в файл образа задачи). Объектные и загрузочные модули, помещенные в свои библиотеки, впоследствии могут быть использованы самостоятельно или в комбинации друг с другом неограниченное число раз.
Программа редактора связей осуществляет первичное разрешение межмодульных ссылок. На рис. 3.4 изображены объектные модули А и В.
Предположим, что в модуле А существует команда обращения к модулю В — команда CALL В. Редактор связей после объединения обоих модулей в единый загрузочный модуль в соответствующей машинной команде обращения к модулю В должен проставить адрес модуля В, определенный относительно начала всего загрузочного модуля. В случае, представленном на рис. 3.4, этот адрес составляет 1000 байт.
Чтобы программа могла выполняться, единый загрузочный модуль должен быть помещен в ОП ЭВМ. Эту операцию называют этапом загрузки, а программу, которая осуществляет загрузку,— загрузчиком или программой выборки.
В условиях режима мультипрограммной обработки в ОП ЭВМ одновременно находится несколько задач и нельзя предсказать заранее, в какие ячейки попадет тот или иной загрузочный модуль.
Примечание. Существует термин «перемещаемый загрузочный модуль», что означает возможность размещения загрузочного модуля в любой зоне оперативной памяти.
Сложность этапа загрузки заключается в необходимости настройки относительных адресов загрузочного модуля на абсолютные физические адреса выделенной в ОП зоны задачи, что и является вторичным разрешением межмодульных ссылок. Например, если изображенный на рис. 3.4 загрузочный модуль должен быть размещен в зоне задачи с начальным адресом 10 000 байт, то обращение к модулю В после соответствующей настройки должно осуществляться по адресу 11 000 байт.
Не обязательно любая задача пользователя в процессе своего выполнения на ЭВМ должна проследовать по маршруту, представленному на рис. 3.3. Если исходные модули заранее оттранслированы, то решение задачи будет включать в себя только редактирование связей и выполнение. Если исходные модули давно оттранслированы, отредактированы, отлажены и хранятся в библиотеке в виде сформированного загрузочного модуля, то решение задачи заключается только в загрузке в ОП и выполнении готового загрузочного модуля. Таким образом, тот или иной этап обработки задачи определяется конкретной ситуацией и назначается самим пользователем.
Выше обращение пользователя к ВС с целью осуществления некоторых вычислительных процедур определялось термином «задача». В терминологии ОС вычислительных машин единой серии (ОС ЕС) существуют термины «задание» и «задача». Задание — некоторая единица работы, выполненная ЭВМ: за смену обработано столько-то заданий. Задача- более мелкая по сравнению с заданием единица работы, определяемая как совокупность некоторой программы и данных, для обработки которых требуются определенные ресурсы системы. Если одна и та же программа обрабатывает различные данные, то это означает существование различных задач. На рис. 3.3 изображена схема обработки одного задания. Это задание состоит из трех задач: 1)трансляции; 2)редактирования связей; 3)выполнения. Для пользователя эти задачи представляются единым заданием, в итоге выполнения которого получаются некоторые конечные результаты. Для ОС обработка задания выливается в выполнение трех самостоятельных задач. Таким образом, задание состоит из одной или нескольких задач.
В условиях мультипрограммного режима обработки задач термины «задание» и «задача» позволяют конкретизировать различные события, происходящие во время вычислительного процесса, например, такая-то задача такого-то задания завершилась аварийно.
Перечисленные в данной главе функции и составные части некоторых операционных систем в различных комбинациях и, возможно, несколько видоизмененные присутствуют в многочисленных реальных ОС. Обилие и многообразие реальных ОС в первую очередь объясняется существованием многочисленных ЭВМ различной архитектуры. Для каждой серии ЭВМ, как правило, существует несколько разновидностей операционных систем — общего назначения, реального времени, разделения времени, пакетной обработки задач и др. С течением времени каждая группа ОС пополняется новыми версиями и исполнениями. Очень заманчивой является идея создания единой ОС, под управлением которой могли бы функционировать ЭВМ различной архитектуры. Одним из вариантов такой мобильной ОС является UNIX, однако еще существуют определенные проблемы ее переноса на различные отечественные ЭВМ.
В настоящее время из наиболее распространенных ОС, используемых в нашей стране, можно выделить: ОС многопроцессорных вычислительных комплексов «Эльбрус» (ОС МВК), ОС ЭВМ единой серии (ОС ЕС), ОС серии малых ЭВМ типа СМ-1, СМ-2 (ЛОС, ДОС, СРВ, СРВ-М, ДМОС РВ), ОС серии малых ЭВМ тина СМ-3, СМ-4, ОС микро-ЭВМ СМ-1800 (СПО СМ 1800, ДОС 1800, ОС 1800), ОС ЭВМ типа «Электроника» [27]. В данном пособии рассматриваются только наиболее развитые и перспективные группы ОС, под управлением которых функционирует 'большинство пакетов прикладных программ САПР.