
- •Ответы на вопросы по курсу “системное программирование”, 1997 г.
- •Состав и функции основных блоков вс: процессора, оперативной памяти, устройства управления, внешних устройств.
- •Структурная схема машины фон Неймана:
- •Адресация на примере процессора 8086.
- •Двоичное кодирование информации. Представление элементарных типов данных: натуральные числа, целые числа со знаком, числа с плавающей точкой.
- •Представление графической информации – растровое и векторное представления, разрешающая способность, полутоновые и цветные изображения, палитры.
- •Представление звуковой информации – общее понятие о дискретизации и квантовании звуковых сигналов, точность представления звуковых колебаний.
- •Форматы хранения оцифрованного звука в файлах:
- •Общая структура машинных команд, адресность. Способы адресации операндов. Расслоение памяти, выравнивание, кэш-память.
- •Общая структура машинных команд.
- •Классификация объектных данных в программах на языках высокого уровня. Агрегатные
- •Базовые типы
- •Указатели и динамические структуры данных: стеки, списки, очереди, деревья.
- •24. Способы выделения памяти в программах: абсолютное, статическое, динамическое и автоматическое распределения. Механизм стека и кучи при реализации процессоров языка программирования.
- •29. Общая структура программного модуля для микропроцессора 80х86 – регистр bp, локальные переменные, глобальные переменные, параметры.
- •30. Сегментация памяти. Типы программных сегментов, их использование в программах.
- •Использование многомодульной структуры необходимо:
- •34. Технология разработки программ – трансляция и редактирование связей. Понятие об исходном, объектном, выполняемом модулях.
- •37. Разрешение внешних ссылок, функция автовызова, библиотеки объектных модулей и их использование.
- •38. Типы внешних ссылок и общих имен. Статическое и динамическое разрешение ссылок.
- •39. Динамическое распределение памяти, оверлейные программы. Общая структура объектного модуля.
- •45. Системная архитектура 80386: сегментирование, страничная организация, средства авторизации и защиты.
Использование многомодульной структуры необходимо:
а) для разбиения большого текста на модули по функциональному назначению;
б) для создания библиотек процедур;
в) для написания подпрограмм в языки высокого уровня.
34. Технология разработки программ – трансляция и редактирование связей. Понятие об исходном, объектном, выполняемом модулях.
Исходный код программы – код, написанный на языке программирования. Может включать модули на ЯВУ и модули с подпрограммами на языке ассемблера.
Объектный модуль – код программы после трансляции (компиляции), преобразованный в машинные коды. Помимо них содержит внешние ссылки и информацию для редактора связей и может также содержать отладочную информацию (debug info).
Исполняемый модуль –модуль, содержащий готовую к выполнению программу – м.б. 2 видов:
а) точный образ памяти программы с привязкой к абсолютным адресам (в MS-DOS – формат файла *.COM)
б) перемещаемый исполняемый формат, см. 17.
Трансляция – получение объектного кода из исходного.
Редактирование связей – разрешение внешних ссылок и создание исполняемого модуля из объектных.
35. Основные функции редактора связей – распределение памяти, разрешение внешних ссылок – см. 17, 33.
36. Программные сегменты и их атрибуты, способы распределения памяти под сегменты.
Собственно сегменты и распределение памяти см. 30.
Атрибуты сегментов
Атрибут комбинации сегмента предназначен дляуказания компоновщику, каким образом объединять сегменты, находящиеся в разных модулях и имеющие одинаковые имена. М.б. PRIVATE (сегмент не будет объединяться с одноименными из др. модулей), PUBLIC (будет) и некоторые другие.
Атрибут класса сегмента представляет собой строку, заключенную в кавычки, которая позволяет определить компоновщику нужный порядок размещения сегментов при помещении их в программу из разных модулей. Он группирует вместе сегменты с одинаковым классом.
Атрибут выравнивания сегмента – сообщает компонаовщику, чтобы он позаботился о том, чтобы сегмент начинался с указанной границы. Возможное выравнивание: BYTE – выравнивание не делается, сегмент начинается со следующего байта, WORD (DWORD) – выравнивание погарнице слова (двойного слова), PARA – выравнивание по границе 16-байтового параграфа, и т.п.
Атрибут размера сегмента – показывает размер, 16 или 32-битные сегменты.
Атрибут доступа – показывает возможность доступа к сегменту в защищенном режиме – доступен как кодовый, для чтения, записи, чтения и записи.
37. Разрешение внешних ссылок, функция автовызова, библиотеки объектных модулей и их использование.
Разрешение внешних ссылок – см. 33, 17.
Библиотеки объектных модулей – пакет объектных модулей, собранных в один файл и подключаемый к программе на этапе разрешения внешних ссылок (все идентификаторы, которые должны быть доступны из библиотек, объявляются в модулях как PUBLIC). Компоновщик может просматривать библиотеку и самостоятельно находить нужные модули, избавляя от этого программиста. Библиотеки делаются с помощью программы-библиотекаря. Библиотекарь может добавлять и извлекать модули, а также получать список доступных идентификаторов.
Любой компилятор ЯВУ имеет в комплекте несколько стандартных библиотек, например, библиотеки ввода-вывода, работы с плавающей точкой, графическую и т.п.