Организация работы ЭВМ при выполнении задания пользователя
Организация процессов ввода, преобразования и отображения результатов относится к сфере системного программного обеспечения. Это сложные процессы, которые чаще всего делаются «прозрачными», т.е. незаметными для пользователя. Один из них — реализация заданияпользователя: профессиональный пользователь (программист) пишет задание для ЭВМв виде программы на алгоритмическом языке. Написанное задание (программа) представляет собой исходный модуль, сопровождаемый управляющими предложениями, указывающими операционной системе ЭВМ, на каком языке написана программа и что с ней надо делать. Еслипрограмма пишется на алгоритмическом языке, то управляющие предложения — на языкеуправления операционной системой (в ЕС ЭВМ и IBM 360/370 этот язык называется JCL — JobControlLanguage, в MSDOSIBMPC — это язык команд DOS, иногда оформляемый в виде bat-файла). Исходный модуль перед исполнением должен быть переведен на внутренний язык машины. Эта операция выполняется специальной программой — транслятором (рис. 4.1). Трансляторы выполняются в виде двух разновидностей: интерпретаторы и компиляторы. Интерпретатор после перевода на язык машины каждого оператора алгоритмического языка немедленно исполняет полученную машинную программу. Компилятор же сначала полностью переводитвсю программу, представленную ему в виде исходного модуля (ИМ), на язык машины. Получаемая при этом машинная программапредставляет собой объектный модуль (ОМ). Результат работыкомпилятора может быть записан в библиотеку объектных модулей (БОМ) или передан другимпрограммам для дальнейшей обработки, поскольку полученная машинная программане готова к исполнению по двум причинам. Во-первых, она содержит неразрешенные внешние ссылки (т.е. обращение к программам, которые не содержатся в исходном модуле, но необходимы для работы основной программы, например, к стандартным программам алгоритмического языка, таким, как извлечение корня квадратного, вычисление тригонометрических функций и т.д.). Во-вторых, объектный модульпредставляет собой машинную программу в условных адресах — каждый объектный модуль начинается с адреса Oh, тогда как для исполнения программа должна быть «привязана» к конкретным физическим адресам основной памяти. Недостающие программы должны быть взяты из библиотек компилятора (которые могут быть написаны в виде исходных либо в виде объектных модулей) и добавлены к основнойпрограмме. Эту операцию выполняет редактор связей. В результате работы редактора связей образуется загрузочный модуль (ЗМ), который помещается в соответствующую библиотеку программ (БЗМ). В загрузочном модуле все ссылки разрешены, т.е. он содержит все необходимые стандартные программы, но привязки к памяти у загрузочного модуля нет. - Рис. 4.1. Обработка заданий операционной системой Привязка к памяти загрузочного модуля производится программой выборки, которая переносит загрузочный модульиз библиотеки загрузочных модулей (обычно хранящейся на магнитном носителе) в основную память, и во время этого переноса корректирует адреса, учитывая, с какого адреса основной памяти размещается загрузочный модуль. После перемещения загрузочного модуля в основную память программа выборки инициирует ее выполнение. Если же программа только отлаживается или после каждого просчета ее нужно будет модернизировать, то получ ение загрузочного модуля и обращение к программе выборки будут лишними операциями. Для их обхода вместо редактора связей может быть применен загрузчик — программа, сочетающая в себе функции редактирования связейи загрузки полученной машинной программы в основную память для исполнения.
|