Студопедия — Загрузчики. Абсолютный загрузчик
Студопедия Главная Случайная страница Обратная связь

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

Загрузчики. Абсолютный загрузчик






Предназначен для загрузки загрузочного модуля в оперативную память и передачи ему управления.

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

Абсолютный загрузочный модуль содержит три типа карт:

H<имя модуля><длина модуля><адрес загрузки>

Т<адрес данных><длина данных><данные>

Е<точка входа>

Алгоритм функционирования абсолютного загрузчика:

  1. Открытие файла с загрузочным модулем и чтение карты Н. Определение

имени, длины и адреса загрузки модуля.

  1. Запрос ОС блока памяти с указ. Адреса и указ. Длины. Если память не

выделенена, то сообще. Об ошибке и переход к пункту 6

  1. Чтение очередной карты.
  2. Если карта E, то формирование адреса 1-й команды, равной точке входа и

переход к пункту 6

  1. Обработка карты T.Считывается адрес и длина данных и произв. Загрузка

данных из карты в оперативную память по указанному адресу. Переход к п.3

  1. Конец.

Преимущества загрузчика:

  1. Загрузчик простой, представляет программу из одного, максимум двух циклов.
  2. Маленький размер загрузчика.
  3. Высокая скорость

Недостатки

При одновременном выполнении нескольких программ распределение памяти выполняется пользованием и выполняется в момент создания загрузочного модуля, а не в момент их выполнения.

Абсолютные загрузчики используются в специализированных операционных системах (например, управление технологическими процессами).

Выполнение программы возможно только в том случае, если блок памяти, на котором сгенерирована программа свободен.

 

47. Загрузчик. Перемещающий загрузчик

Перемещающий загрузчик – предназначен для загрузки перемещаемого загрузчного модуля в ОП и передачи ему управления.

Перемещаемый загрузочный модуль – модуль, который содерж. подпрограммы, сформированные для загрузки с нулевого адреса и дополнительную информацию для обеспечения загрузки прог-мы с любого адреса, т.е. обеспечение перемещаемости прог-мы.

Перемещаемый модуль содержит:

Н <имя мод.> <дл.мод.>

Т <адр.данных> <дл.дан.> <данные>

М <адр.данных> <дл.дан.> [<формула модификации> +адр.загрузки]

Е <точка входа>

Алгоритм:

1. открытие файла с перемещ-ым модулем. Чтение карты Н, определение имени модуля и его длины.

2. заказ в ОС блока памяти указанной длины. Если память выделена, то её адрес присваивается адресу загрузки модуля (АЗМ), иначе (если память занята или недостаточно памяти) сообщение об ошибке и п.п. 6

3. чтение очередной карты

4. обработка карты

4.1 Если карта Е, то вычисление и установка адреса первой выполняемой команды Ап.к.=<точка входа>+АЗМ и п.п.6

4.2 Если карта Т, то определение адреса и длины данных, затем вычисление адреса данных в ОП Адоп.=<адр.данных>+АЗМ и загрузка данных из карты по вычисленному адресу Адоп

4.3 Если карта М, то определение адреса и длины данных, затем вычисление адреса данных в ОП. Выбор по вычисленному адресу значения указанной длины и увеличение на АЗМ

5. П.п. 3

6. Конец

Преимущества:

Позволяет выполнить загрузку прог-мы с любого адреса.

Недостатки:

1. Загрузчик требует больше ОП

2. Перемещаемый модуль имеет больший размер, чем абсолютный, т.к. есть карты М

 

 

49. Загрузчик оверлейных программ.

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

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

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

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

- Преимущества автоматического загрузчика: не требует вмешательства программиста в процесс реализации загрузки. Позволяет создавать оверлейную программу неквалифицированному программисту.

- Недостатки автоматического загрузчика: автоматическая загрузка может приводить к неэффективному использованию памяти, когда много кратно много кратно выполняется загрузка одних и тех же модулей, часто приходиться выполнять перезагрузку активных модулей. Это вызвано тем, что порядок загрузки модулей определяется порядком вызова процедур.

- Преимущества планируемого загрузчика: позволяет эффективно организовывать процесс загрузки модулей, так как им управляет программист.

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

Пример автоматического загрузчика.

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

 

50. Интерпретатор.

Транслятор- программа выполняющая преобразование исходного текста

программы в формат необходимый для её выполнения. Разделяют на интерпретаторы и компиляторы. Компилятор – выполняет преобразование программы в машинный формат, которую затем выполняет процессор.

Интерпретатор – выполняет преобразование программы в машинно-независимый формат, и затем сам её выполняет.

Интерпретатор – считывает операторы исходной программы. Выполняет лексический и синтаксический анализ. Формирует внутреннюю кодировку. А затем реализует выполнение команды. В интерпретаторе значение переменных храниться в специальной таблице, полями которой являются имя переменной, размер, тип, значение. Ключом является имя. Соответственно для обращения к переменной необходимо выполнить операцию поиска, добавления, и удаления в таблице.

Преимущества: - сравнительно дешевый вариант разработки транслятора; - Высокая универсальность(переносимость) т.к. используется машинно-независимый формат представления команд, а они выполняются на процессором а процедурами программы интерпретатора. – Не требуется разработка сложных систем отладки программ т.к. сам интерпретатор обрабатывает исходную программу, и обрабатывает значения в таблице внешних переменных.

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

 

51. Компилятор Р-кодов.

В этом трансляторе обработка исходного текста программы разбивается на 2 части: компиляция и выполнение:


Исходная программа
Компилятор пи-кодов
Пи-код программы
Интерпретатор
Оперативная память

 

Компилятор выполняет лексический и синтаксический анализ программы и формирует машинно-независимый код программы – Р-код. Интерпретатор считывает коды команд в машинно-независимом формате.


Выполняется их дешифрацию и выполняет соответствующие процедуры реализации команд.


Преимущества:

1. Сравнительно высокое быстродействие т.к процесс синтаксического и лексического анализа вынесен из процесса выполнения программы.

2. Полностью выполняется лексический и синтаксический анализ программы до ее выполнения.

Недостатки:

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

 

52. Структура компилятора машинных кодов

Предназначен для преобразования исходной программы к заданной системе команд (в основном машинные коды). Комп. имеет след.структуру.

Исходная программа→лексический анализ→список лексем→синтаксический анализ→дерево разбора→генерация кода→код прог-мы→оптимизация кода→объектный код

Фрагменты дерева разбора соответствуют операторам языка прогр-ния.

Оптимизация предназначена для исключения из кода прог-мы «лишних» команд, которые возникают при вставке заготовок операторов.

Генерация кода предназначена для создания кода прог-мы по дереву разбора. Каждому оператору дерева разбора соответствует заготовка фрагмента прог-мы. Код прог-мы получается с помощью обхода дерева.

Преимущества:

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

Недостатки:

  1. Разработка компилятора более трудоёмкая и дорогая процедура, чем интерпретатора.
  2. Прог-ма может выполняться только на процессоре для которого она создана или совместима.

 

53. Компилятор. Лексический и синтаксический анализ

При лексическом анализе выполняется преобразование исходной программы в список лексем. Лексема – последовательность литералов (символов) представляющая собой логическую единицу языка (напр: идентификатор, разделитель, числовая константа). В списке лексем каждый элемент содержит код лексемы и её значение.

Лексический анализ может выполняться по прямой и непрямой схеме. При прямой схеме формирование лексемы выполняется только на основании литералов исходной программы. При непрямой схеме анализатор может получать дополнительную информацию о предполагаемой лексеме.

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

 

 

55. Библиотекарь. Назначение. Команды.

Библиотека – набор данных для хранения исходных объектных динамически связываемых загрузочных модулей и макроопределений. Состоит из оглавления и хранилища. В оглавлении указывается данные об имени модуля, его размере, месте в хранилище, даты записи и корректировки. Хранилище предназначено для хранения модуля. В хранилище модуль может быть в том же виде что и данных, а может представляться в виде отдельных структур. Например, объектный модуль может иметь инфу о внешних ссылках представленную в виде таблиц.

Основные команды библиотекаря. Библиотекарь состоит из 2х модулей: 1) модуль взаимодействия с редактором связи. 2) Модуль обслуживания библиотеки. Для первого модуля используются следующие команды:

- назначения (указания библиотеки) LIBRARY <имя библиотеки>[…] В команде указывается библиотека, в которой будет производиться поиск. Поиск модуля выполняется в библиотеке в том порядке, в котором они перечислены. Если модуль найден поиск прекращается.

- Включение модуля. INCLUDE <имя библиотеки><имя модуля> или просто <имя модуля>. По этой команде в программу включается модуль с заданными именами из заданной библиотеки.

- Игнорирование внешней ссылки. IGNORE(или NOCALL) <имя внешней ссылки>. По этой команде задаются внешние ссылки обработки, которых нужно игнорировать. Для этих ссылок не производиться проверка таблицы внешних переменных на наличие соответствующих переменных и не обрабатываются карты модификаций в которых указаны внешняя ссылка.

- Замена внешней ссылки. CHANGE><имя внешней ссылки 1>< имя внешней ссылки 2>. По этой команде внешняя ссылка 1 заменяется на внешнюю ссылку 2. Эта замена производиться в таблице внешних ссылок и карте памяти.

Для 2го модуля: программа обслуживания библиотеки реализует следующие команды: создание библиотеки, добавление модуля, замена, удаление модуля вывод модуля в файл.

 

56. Отладчик. Функции и структура.

Отладчик – программа, предназначенная для реализации процесса отладки программы. Отладчик должен обеспечивать выполнение следующих функций: 1)Загрузка программы в оперативную память 2) управление процессом выполнение программы 3)вывод состояния оперативной памяти в процессе функционирования программы. 4) Вывод исходного текста программы. 5) Взаимодействие с пользователем в процессе выполнения программы.

Отладчика разделяют на: универсальные (являются машинно-ориентированными и позволяют выполнять отладку программы на любых языках) и специализированные (ориентированы на реализацию процесса отладки на конкретном языке, или в конкретной среде).

Модули отладчика:

1) Модуль загрузки. Предназначен для загрузки в оперативную память и загрузки дополнительной информации для отладчика.

2) Модуль управления. Предназначен для управления выполнением программы. Реализует механизм контрольных точек и его обработок.

3) Модуль вывода состояний. Предназначен для вывода значений переменных и исходного текста программы.

4) Модуль взаимодействий с пользователем. Предназначен для вывода инфы пользователю в удобной форме и передачи команд пользователя в отладчик.

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

 

57. Редактор текстов

Редактор текстов предназначен для ввода и корректировки текстовых данных сохраняемые в текстовых файлах. При работе редактора текстов текст должен располагаться в ОП. Для этого выделяется рабочее поле которое представляет любой двунаправленный динамический список элементами которого является строка вида:

Указатель на следующий Указатель на предыдущий Текст строки

Большинство редакторов текстов имеют ограничения на длину строки т.к она представляет массив (обычно 255 символов). Существует редакторы с неограниченной длиной строки. В этом случаи элементы списка имеют такую структуру:

Указатель на след Указатель на предыд. Текст строки Указат. На след. Фрагм

Строки объединяются в двунаправленный список для обеспечении просмотра текста от начала к концу и в обратном направлении. Представления данных элементами динамического двунаправленного списка вызвана большой частотой добавления удаления строки в процессии корректировки текста.

Функции редактора:

  1. загрузка текста из файла в рабочее поле
  2. вывод содержимого рабочего поля на экран
  3. ввод кодов с клавиатуры
  4. изменение данных в рабочем поле в соответствии с введённым кодом
  5. выполнение операций по просмотру данных на экране
  6. сохранение рабочего поля в файле

Алгоритм редактора текстов:

1. Отрываем файл содержащий текст

2. Чтение текста в рабочее поле

3. Вывод текста на экран

4. Ввод кода нажатой клавиши

4.1. Если код соответствует символу то производится добавление соответствующего символа на место отмеченное курсором. Увеличение позиции курсора на единицу по строке и переход к п 4

4.2. Код соответствует функциональной клавише, выполняется соотв действие и переход к п 4

4.3. Код соотв ESC производится проверка текста на соответствие в рабочем поле и в текстовом файле. Если текст не совпадает т о запрос на сохранения текста. Если «да» то сохраняем текст

5. КОНЕЦ.

 

 







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



Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Конституционно-правовые нормы, их особенности и виды Характеристика отрасли права немыслима без уяснения особенностей составляющих ее норм...

Толкование Конституции Российской Федерации: виды, способы, юридическое значение Толкование права – это специальный вид юридической деятельности по раскрытию смыслового содержания правовых норм, необходимый в процессе как законотворчества, так и реализации права...

Значення творчості Г.Сковороди для розвитку української культури Важливий внесок в історію всієї духовної культури українського народу та її барокової літературно-філософської традиції зробив, зокрема, Григорій Савич Сковорода (1722—1794 pp...

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

Тема 2: Анатомо-топографическое строение полостей зубов верхней и нижней челюстей. Полость зуба — это сложная система разветвлений, имеющая разнообразную конфигурацию...

Виды и жанры театрализованных представлений   Проживание бронируется и оплачивается слушателями самостоятельно...

Studopedia.info - Студопедия - 2014-2024 год . (0.012 сек.) русская версия | украинская версия