
Элементы системного
программирования. Прерывания Cтраница
Доступ к системным ресурсам 1
Распределение памяти 1
Специальные адреса памяти 2
Прерывания 4
Обработка прерываний 5
Использование прерываний в Паскале 5
Контрольные вопросы 6
Лекция № 26 Доступ к системным ресурсам
Системным программированием называют разработку программ, которые выполняют действия, возлагаемые на ОС. Это операции с файлами, управление выполнением программ, работа с устройствами и т.д.
Операционная система представляет собой программный комплекс (набор взаимосвязанных программ), который выполняет две основные функции:
обеспечение удобного интерфейса (взаимодействия) между пользователем или его программой и компьютером;
эффективное управление ресурсами компьютера, в число которых входят процессор, оперативная память, массив жестких дисков, периферийные устройства.
ОС MS-DOS работает только в реальном режиме. Во всех модернизациях своего микропроцессора (МП) фирма Intel поддерживает этот режим, в котором:
пространство оперативной памяти делится на сегменты по 64 килобайта;
страничное преобразование адреса запрещено, т.е. физический адрес = линейному и формируется как сумма 2-х составляющих;
максимальное значение физического адреса = 1Мб.
Основными элементами системного программирования являются регистры, сегменты и прерывания.
Регистр – это внутреннее запоминающее устройство процессора для временного хранения обрабатываемой или управляющей информации. В Паскале имеется специальный тип Registers, который описывается следующим образом:
type Registers = record {Registers record used by Intr and MsDos}
case Integer of
0: (AX, BX, CX, DX, BP, SI, DI, DS, ES, Flags: Word);
1: (AL, AH, BL, BH, CL, CH, DL, DH: Byte);
end;
Сегмент – это область памяти размером до 64 Кбайт, которая начинается по любому адресу, кратному 16. В области памяти, выделяемой программе, имеется три основных сегмента:
сегмент кода содержит машинные команды, которые будут выполняться. Первая выполняемая команда находится в начале кодового сегмента и ОС для выполнения программы передает управление по адресу данного сегмента.
сегмент данных содержит данные и рабочие области, необходимые программе.
сегмент стека содержит адреса для возврата в ОС и для возврата из подпрограмм в главную программу.
Прерывание – это вызов процедур низкого уровня операционной системы MS-DOS и BIOS.
Распределение памяти
Первые 640 Кбайт относятся к так называемой стандартной памяти. Следующие 384 Кбайт занимает область верхней памяти, недоступная для прикладных программ MS-DOS и зарезервированная для использования BIOS. Далее следует область расширенной памяти, не представленная на рисунке.
Рис.1. Логическая структура 1-ого Мбайта оперативной памяти
Для своих собственных нужд и пользовательских программ MS-DOS использует 640 Кбайт памяти.
-
Адрес
использование памяти
A0000
command.com
нерезидентная область памяти
резидентные программы
command.com
Драйверы устройств
10000-14000
Буферы MS-DOS
0800-0A00
Ядро MS-DOS
0040
Интерфейс BIOS
0000
Векторы прерываний
Рис.2. Распределение стандартной памяти