Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Практические работы / практическая работа № 1 по операционным системам

.docx
Скачиваний:
9
Добавлен:
09.12.2018
Размер:
306.8 Кб
Скачать

Практическая работа №1

Тема: Обработка и генерация прерываний.

Цель: студент должен уметь:

  • пользоваться инструментальными средствами операционной системы;

знать:

  • принципы построения, типы и функции операционных систем;

  • операционное окружение;

  • машинно-независимые свойства операционных систем.

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

Задание 2: Так, прерывание с номером 18 ($12) возвращает в регистре AX объем оперативной памяти ПЭВМ. Пример программы выводящей на экран сообщение об этом объеме.

Задача 3: Процедура MSDOS инициирует прерывание с номером 33 ($21);

обращения: MSDOS(< регистры >); Здесь < регистры > - переменная типа REGISTERS, содержащая значения регистров на входе и выходе процедуры обработки прерывания.

Программное прерывание с номером 33 ($21) стоит особняком: как уже говорилось, оно дает доступ к большому количеству функций ДОС (этим прерыванием вызывается 85 функций). Рассматриваемая процедура полностью эквивалентна вызову. процедуры INTR c номером прерывания 33. Программа выведет на экран версию операционной системы:

Задача 4. С помощью следующих двух процедур программист может прочитать содержимое любого вектора или установить его новое значение.

Процедура GETINTVECT. Возвращает вектор прерывания с указанным номером; формат обращения GETINTVECT(< N >, < вектор >> Здесь < N > - выражение типа ВYТЕ, содержащее номер прерывания; < вектор > -переменная типа РOINTER, в которой возвращается адрес точки входа в процедуру обработки прерывания.

Пример: программа выводит на экран содержимое всех ненулевых векторов прерываний.

Задача 5. Как следует из технического описания операционной системы МS DOS, в ПЗУ BIOS по адресу $F000:$FFFE зашит байт-идентификатор типа компьютера. Таким образом можно определить тип компьютера, на котором запускается программа.

Ответы на контрольные вопросы:

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

  2. Номера прерываний зарезервированы за BIOS: $00, $04 - $7, $10-$19, $1A-$1F;

В MS-DOS: $21-$62.

  1. В Паскале есть две процедуры для прямого обращения к функциям MS-DOS – MSDos; BIOS - Intr.

  2. Регистр – это внутреннее запоминающее устройство процессора для временного хранения обрабатываемой или управляющей информации.

Особенность регистров общего назначения заключается в том, что возможна их адресация как в целом (т.е. одним словом), так и каждой однобайтовой части (например, AL- младшая половина, а AH – старшая половина).

  1. Процедуры, предназначенные для работы с регистрами процессора и прерывания MSDos и Intr модуля DOS:

Procedure MSDos (var regs: Registers);

Procedure Intr (number : Byte ; var regs: Registers);

Intr предназначена для обращения к прерыванию с указанным номером (первый параметр). Перед выполнением прерывания процедура загружает регистры процессора значением соответствующих полей записи regs. После выполнения прерывания содержимое этих регистров вновь записывается в соответствующую переменную. Процедура MSDos эквивалентна вызову процедуры Intr для прерывания $21.

  1. Любой вектор можно прочитать с помощь процедуры GETINTVECT.

Формат обращения: GETINTVECT(< N >, < вектор >>) Здесь < N > - выражение типа ВYТЕ, содержащее номер прерывания; < вектор > -переменная типа РOINTER, в которой возвращается адрес точки входа в процедуру обработки прерывания.

  1. МЕМ, МЕМW и МЕМL обеспечивают доступ к любому участку оперативной памяти по абсолютному адресу, РОRТ и РОRТW обеспечивают доступ к портам ввода-вывода.

Компонентами массива МЕМ являются данные типа ВYТЕ, массива МЕМW - типа WORD, массива МЕМL - типа LONGINT.