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