Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Процесс выполнения программы на ЭВМ




Для того чтобы программа могла быть выполненной, она должна быть помещена в оперативную память компьютера. Туда же должны быть помещены и исходные данные. Как правило, программа вводится в оперативную память с жесткого диска. Исходные данные вводятся с клавиатуры либо также с жесткого диска, куда они должны быть заранее помещены с помощью другой программы. Результаты своей работы программа помещает в определенную область оперативной памяти, куда они могут быть выведены на какое-либо внешнее устройство, которым может быть жесткий диск, экран дисплея, печатающее устройство (рис.10).

Программа пишется программистом на одном из языков программирования. Процессор ЭВМ может реально выполнять только команды машинного языка. Преобразование исходного текста программы в машинные коды выполняется специальной программой – транслятором. Программа в машинных кодах, готовая к исполнению, называется объектной программой.

 

 

Рис. 10. Распределение памяти при выполнении программы.

Трансляторы бывают двух видов: компиляторы и интерпретаторы. Компилятор преобразует исходную программу на языке высокого уровня в некоторую стандартную форму на машинном языке, называемую объектным модулем. Интерпретатор преобразует отдельные предложения исходного языка в машинный код и немедленно их исполняет. Интерпретатор не создает объектный модуль.

В процессе трансляции проверяется синтаксическая правильность предложений исходной программы и генерируется список обнаруженных ошибок. Объектный модуль формируется лишь при отсутствии синтаксических ошибок.

Некоторые части программы программист не пишет, а ссылается на них из своей программы, например, на программы управления вводом-выводом и пр. Они хранятся на внешнем запоминающем устройстве в библиотеке объектных модулей. Объектный модуль, сформированный компилятором, не может быть выполнен без объединения с этими модулями.

Все объектные модули генерируются в некотором стандартном виде. Поэтому различные части программы можно писать и транслировать независимо, помещая получаемые объектные модули в библиотеку объектных модулей. Это позволит разделить работу по написанию большой программы между несколькими программистами, каждый их которых может писать и отлаживать свою часть программы независимо. Даже если программист пишет программу самостоятельно, имеет смысл разбивать ее на ряд независимых частей, что позволяет вносить изменения в каждую из них не затрагивая остальных частей.

Компилятор не может указать конкретный адрес оперативной памяти, начиная которого будет располагаться формируемый объектный модуль, поскольку:

– размер получаемого объектного модуля не может быть заранее известен, поэтому существует опасность наложения в памяти различных модулей или появления неиспользуемых участков памяти;

– к моменту исполнения программы неизвестно, какие еще программы будут находиться в оперативной памяти.

Для решения этой проблемы транслятор формирует так называемые перемещаемые объектные модули. Начальный адрес перемещаемого объектного модуля определяется непосредственно при загрузке программы для выполнения на свободное место в оперативной памяти.

Программа, которая связывает независимо оттранслированные объектные модули в единую программу, называется редактором связей. Редактор связей имеет на входе объектные модули и генерирует на выходе загрузочный модуль, помещаемый на внешнее запоминающее устройство. Загрузочный модуль помещается в оперативную память специальной программой, называемой загрузчиком. Загрузчик определяет адрес загрузки программы, помещает ее в оперативную память и передает управление на ее первую команду. Одна и та же программа при различных запусках может располагаться в различных местах оперативной памяти.

Перемещаемые модули позволяют также обеспечить мультипрограммирование, то есть одновременное выполнение нескольких программ. В оперативную память машины может быть помещено одновременно несколько программ, которым присвоены различные приоритеты. Скорость работы центрального процессора значительно выше скорости работы устройств ввода-вывода. Если программа, использующая процессор, переходит в состояние ожидания завершения операции ввода-вывода, процессор передается для использования другой программой, имеющей наибольший приоритет. После завершения операции ввода-вывода процессор снова передается первой программе. Это позволяет обеспечить мультипрограммирование, то есть одновременное выполнение нескольких программ.


Поделиться:

Дата добавления: 2015-01-01; просмотров: 587; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты