question-13

Вопрос 13

Подпрограммы в БЭВМ. Цикл исполнения команд перехода и возврата из подпрограммы. Стек, передача параметров. Позиционно-независимый код. Загрузчик и библиотеки.

Подпрограмма

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

В БЭВМ для работы с подпрограммами используются команды CALL и RET.

CALL выполняет переход к подпрограмме и сохраняет адрес возврата. RET завершает выполнение подпрограммы и возвращает управление в точку вызова.

Цикл исполнения CALL

call-execution-cycle.png

Цикл исполнения RET

return-execution-cycle.png

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

  • через аккумулятор;
  • через адресуемые ячейки памяти;
  • через стек.

Стек

Стек — структура данных типа LIFO (Last In — First Out). call-subroutine-stack.png

В БЭВМ стек организуется программно в области оперативной памяти. Для работы со стеком используется регистр SP (Stack Pointer), содержащий адрес вершины стека. Стек находится по адресу 7FF и при при помещении данных в стек указатель уменьшается, при извлечении — увеличивается.

Основные операции:

stack-push-pop.png


Позиционно-независимый код (PIC)

PIC (Position Independent Code) — программный код, который может быть загружен в любую область памяти без изменения содержащихся в нём адресов.

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


Загрузчик и библиотеки

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

Загрузчик выполняет:

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

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

Различают:

  • статические библиотеки — код функций включается в программу на этапе компиляции;
  • динамические библиотеки — загружаются и связываются во время запуска программы.

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

Ссылка на оригинал


question-28

Вопрос 28

Характеристики запоминающих устройств. Пирамида памяти

Запоминающее устройство (ЗУ) характеризуется рядом параметров, определяющих его информационные, временные и экономические свойства.

Основные характеристики памяти:

  1. Месторасположение (процессорная, внутренняя, внешняя)
  2. Емкость (метрические (-Кило), двоичные(Киби-))
  3. Единица пересылки (слово, строка кэша, блок диска)
  4. Метод доступа (произвольный (адресный), прямой (блочный), последовательный, ассоциативный)
  5. Временные характеристики памяти:
    • Время доступа (Тд)
    • Время чтения и время записи
    • Время восстановления (Тв)
    • Длительность цикла памяти (Тц=Тд+Тв)
    • Скорость передачи информации
  6. Стоимость
  7. Физ. тип и особенности

Пирамида памяти

memory-hierarchy.png

По мере удаления от процессора:

  • увеличивается объем памяти;
  • уменьшается стоимость хранения одного байта;
  • увеличивается время доступа;
  • уменьшается быстродействие.

Регистры являются самой быстрой, но самой дорогой и малой по объему памятью. Магнитные ленты обладают максимальной емкостью и минимальной стоимостью хранения, но имеют наибольшее время доступа.

Ссылка на оригинал