Тема 4_2010_Принципы функциональной и структурной организации ЭВМ (542581), страница 2
Текст из файла (страница 2)
Если их удается свести к одному, универсальному, тотакой интерфейс называется стандартным. В IBM PC есть два стандартных интерфейсадля связи ЦП с внешними устройствами: параллельный (типа Centronics) ипоследовательный (типа RS-232).Интерфейсы постоянно совершенствуются, поэтому с появлением новых ЭВМ,новых внешних устройств и даже нового программного обеспечения появляются и новыеинтерфейсы.
Так, в программном обеспечении, разработанном ведущими фирмами, всешире используется новый интерфейс Plug and Play (Включи и играй), которыйпредназначен для облегчения системной настройки ЭВМ при подключении новыхустройств, к машине. Этот интерфейс позволяет подключить с помощью кабеля новоеустройство, а после включения ЭВМ ее программное обеспечение автоматическиопределяет состав подключенных устройств, их типы в настраивает машину на работу сними без вмешательства системного оператора.Если при обращении ЦП к внешнему устройству продолжение выполненияосновной программы центральным процессором возможно только после завершенияоперации ввода-вывода, то ЦП, запустив внешнее устройство, переходит в состояниеожидания и находится в нем до тех пор, пока внешнее устройство не сообщит ему обокончании обмена данными.
Это приводит к простою большинства устройств ЭВМ, таккак в каждый момент времени может работать только одно из них. Такой режим работыполучил название однопрограммного - в каждый момент времени все устройстванаходятся в состоянии ожидания, и только одно устройство выполняет основную (иединственную) программу.Для ликвидации таких простоев и повышения эффективности работы оборудованиявнешние устройства сделаны автономными. Получив от ЦП необходимую информацию,они самостоятельно организуют свою работу по обмену данными. Процессор же, запустиввнешнее устройство, пытается продолжить выполнение программы. При необходимости(если встретятся соответствующие команды) он может запустить в работу несколькодругих устройств (так как внешние устройства работают значительно медленнеепроцессора).
Если же ему приходится переходить в режим ожидания, то, пользуясь тем,что в ОП может одновременно находиться не одна, а несколько программ, ЦП переходитк выполнению очередной программы. При этом создается ситуация, когда в один и тот жемомент времени различные устройства ЭВМ выполняют либо разные программы, либоразные части одной и той же программы, такой режим работы ЭВМ называетсямногопрограммным.3.Организация работы ЭВМ при выполнении заданияпользователяОрганизация процессов ввода, преобразования и отображения результатовотносится к сфере системного программного обеспечения. Это сложные цр9цесс.ы„^которые чаще всего делаются “прозрачными”, т.е.
незаметными для пользователя. Одиниз них - реализация задания пользователя: профессиональный пользователь (программист)пишет задание для ЭВМ в виде программы на алгоритмическом языке. Написанноезадание (программа) представляет собой исходный модуль, сопровождаемыйуправляющими предложениями, указывающими операционной системе ЭВМ, на какомязыке написана программа и что с ней надо делать.
Если программа пишется наалгоритмическом языке, то управляющие предложения - на языке управленияоперационной системой (в ЕС ЭВМ и IBM 360/370 этот язык называется -Job ControlLangiage, в MS DOS IBM PC - это язык команд DOS, иногда оформляемый в виде bat файла).Исходный модуль перед исполнением должен быть переведен на внутренний языкмашины. Эта операция выполняется специальной программой - транслятором (рис. 1).Трансляторы выполняются в виде двух разновидностей: интерпретаторы икомпиляторы.
Интерпретатор после перевода на язык машины каждого оператораалгоритмического языка немедленно исполняет полученную машинную программу.Компилятор же сначала полностью переводит всю программу, представленную ему в видеисходного модуля (ИМ), на язык машины. Получаемая при этом машинная программапредставляет собой объектный модуль (ОМ). Результат работы компилятора может бытьзаписан в библиотеку объектных модулей (БОМ) или передан другим программам длядальнейшей обработки, поскольку полученная машинная программа не готова кисполнению по двум причинам.Во-первых, она содержит неразрешенные внешние ссылки (т.е. обращение кпрограммам, которые не содержатся в исходном модуле, но необходимы для работыосновной программы, например, к стандартным программам алгоритмическогоРис.
1. Обработка заданий операционной системойязыка, таким, как извлечение корня квадратного, вычисление тригонометрическихфункций и т.д.). Во-вторых, объектный модуль представляет собой машинную программув условных адресах - каждый объектный модуль начинается с адреса Oh, тогда как дляисполнения программа должна быть “привязана” к конкретным физическим адресамосновной памяти.Недостающие программы должны быть взяты из библиотек компилятора (которыемогут быть написаны в виде исходных либо в виде объектных модулей) и добавлены косновной программе. Эту операцию выполняет редактор связей.
В результате работыредактора связей образуется загрузочный модуль (ЗМ), который помещается всоответствующую библиотеку загрузочных модулей (БЗМ). В загрузочном модуле всессылки разрешены, т.е. он содержит все необходимые стандартные программы, нопривязки к памяти у загрузочного модуля нет.Привязка к памяти загрузочного модуля производится программой выборки,которая переносит загрузочный модуль из библиотеки загрузочных модулей (обычнохранящейся на магнитном носителе) в основную память и во время этого переносакорректирует адреса, учитывая, с какого адреса основной памяти размещаетсязагрузочный модуль. После перемещения загрузочного модуля в основную памятьпрограмма выборки инициирует ее выполнение.Представление машинной программы в виде исходных, объектных и загрузочныхмодулей позволяет реализовать наиболее эффективные программные комплексы.Например, если по одной и той же программе необходимо много раз производитьрасчеты, то неэффективно тратить каждый раз время на трансляцию и редактированиепрограммы - ее нужно оформить в виде загрузочного модуля и хранить всоответствующей библиотеке.
При обращении к такой программе сразу будет вызыватьсяпрограмма выборки для загрузки соответствующего модуля (а этапы компиляции иредактирования связей будут опускаться) - время на выполнение программы существенносократится.Если же программа только отлаживается или после каждого просчета ее нужнобудет модернизировать, то получение загрузочного модуля и обращение к программевыборки будут лишними операциями. Для их обхода вместо редактора связей может бытьприменен загрузчик - программа, сочетающая в себе функции редактирования связей изагрузки полученной машинной программы в основную память для исполнения. Но прииспользовании загрузчика многократные просчеты по программе4.
Отображение адресного пространства программы наосновную памятьАлгоритмы распределения, использования, освобождения ресурсов ипредоставления к ним доступа предназначены для наиболее эффективной организацииработы всего комплекса устройств ЭВМ. Рассмотрим их на примере управления основнойпамятью.Для выполнения программы при ее загрузке в основную память ей выделяетсячасть машинных ресурсов - они необходимы для размещения команд, данных,управляющих таблиц и областей ввода-вывода, т.е. производится трансляция адресногопространства откомпилированной программы в местоположение в реальной памяти.Выделение ресурсов может быть осуществлено самим программистом (особенноесли он работает на языке, близком машинному), но может производиться иоперационной системой.Если выделение ресурсов производится перед выполнением программы, такойпроцесс называется статическим перемещением, в результате которого программа“привязывается” к определенному месту в памяти вычислительной машины.
Если жересурсы выделяются в процессе выполнения программы, это называется динамическимперемещением, в этом случае программа не привязана к определенному месту в реальнойпамяти. Динамический режим можно реализовать только с помощью операционнойсистемы.При статическом перемещении может встретиться два случая.1. Реальная память больше требуемого адресного пространства программы. В этомслучае загрузка программы в реальную память производится, начиная с 0-го адреса(рис.2).Рис.2.
Загрузка программы в реальную память (объем реальной памяти больше адресногопространства программы)Загружаемая программа А является абсолютной программой, так как никакого измененияадресов в адресном пространстве, подготовленном компилятором, при загрузке восновную память не происходит - программа располагается с 0-го адреса реальнойпамяти.2.
Реальная память меньше требуемого адресного пространства программы (рис.3).Рис.3. Загрузка программы в реальную память (объем реальной памяти меньше адресногопространства программы)Реальная памятьОС20КбайтПрограмма А0КбайтПрограмма D50Кбайт10КбайгПрограмма В20КбайтПрограмма СРис.
4. Фрагментация реальной памятиВ этом случае программист (или операционная система) вынужден решатьпроблему, как организовать выполнение программы. Методов решения проблемысуществует несколько: можно создать оверлейную структуру (т.е. разбить программу начасти, вызываемые в ОП по мере необходимости), сделать модули программыреентерабельными (т.е. допускающими одновременную работу модуля по несколькимобращениям из разных частей программы или из различных программ) и т.д.В некоторых операционных системах адреса откомпилированной (с 0 адреса)программы могут быть преобразованы в адреса реальной памяти, отличные от 0.
При этомсоздается абсолютный модуль, который требует размещения его в памяти всегда с одногои того же адреса.При мультипрограммном режиме, если имеем программы А, В и С, для которыхизвестно, что программа А выполняется при размещении в памяти с адреса 60 Кбайт до 90Кбайт, В - с 60 Кбайт до 90 Кбайт, С - с 50 Кбайт до 120 Кбайт, организовать ихсовместное выполнение невозможно, так как им необходим один и тот же участокреальной памяти. Эти программы будут ждать друг друга либо их нужно зановоредактировать с другого адреса.При работе в мультипрограммном режиме может сложиться ситуация, когда междупрограммами образуются незанятые участки памяти. На рис.4Рис.5. Размещение программы в свободной части ОПобщий объем незанятой памяти, составляющий 50 Кбайт, достаточен, чтобызагрузить и программу D, находящуюся в ожидании.