Операционная система MS-DOS — страница 9

  • Просмотров 4115
  • Скачиваний 435
  • Размер файла 27
    Кб

3.    Результаты выполнения лабораторной работы. Контрольные вопросы 1.    Распределение памяти в ОС MS-DOS. 2.    Назначение и варианты использования векторной таблицы связи ОС MS-DOS. 3.    Назначение и способы использования MCB - блоков Литература 1.    Г. Дейтел. Введение в операционные системы. Том 1,2. М: Мир, 1987. 2.    А. В. Фролов, Г.В. Фролов MS-DOS для программиста. Библиотека системного

программиста, Том 19, М:ДИАЛОГ-МИФИ, 1995. Лабораторная работа № 4 Исследование системы обработки прерываний ОС MS-DOS Цель работы Изучение системы обработки прерываний ОС MS-DOS Общие положения Для обработки событий, происходящих асинхронно по отношению к выполнению программы, лучше всего подходит механизм прерываний. Прерывание можно рассматривать как некоторое событие в системе, требующее моментальной реакции. С прерыванием

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

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

килобайт оперативной памяти. Эта таблица находится в диапазоне адресов от 0000:0000 до 0000:03FFh и состоит из 256 элементов - дальних адресов обработчиков прерываний. Элементы таблицы векторов прерываний называются векторами прерываний. В первом слове вектора прерываний записывается компонента смещения обработчика прерывания, а во втором - сегментная компонента. Для программиста, использующего язык СИ, таблицу векторов прерываний

можно описать следующим образом: void (far* interrupt_table[256])(); Для изменения обработки некоторых прерываний программа должна установить векторы нужных прерываний на свой обработчик. Это можно сделать, изменив содержимое соответствующего элемента таблицы векторов прерываний. Перед завершением работы необходимо восстановить содержимое измененных векторов. Если нужно добавить какие-либо действия к тем, что выполняет стандартный