Рефераты DOS-extender для компилятора Borland C++ 3.1, защищенный режим процессора 80286, организация многозадачной работы процессора

Вернуться в Программирование

DOS-extender для компилятора Borland C++ 3.1, защищенный режим процессора 80286, организация многозадачной работы процессора
DOS-extender для компилятора Borland C++ 3.1, защищенный режим процессора 80286, организация многозадачной работы процессора



Оглавление.

1. Введение. 2

1.1 Уровни программной поддержки защищенного режима. 2

1.1.1 Интерфейс BIOS. 2

1.1.2 интерфейс драйвера HIMEM.SYS. 2

1.1.3 интерфейс EMS/VCPI. 3

1.1.4 интерфейс DPMI. 3

1.1.5 расширители DOS (DOS-экстендеры). 3

1.2 Текущее положение дел в мире DOS-extender-ов. 4

2. Обоснование выбора средств. 4

3. Реализация работы программы в защищенном режиме процессора 80286. 5

3.1 Адресация защищенного режима процессора 80286. 5

3.2 Переход в защищенный режим процессора 80286. 8

3.3 Возврат в реальный режим процессора. 10

3.4 Обработка прерываний в защищенном режиме. 11

3.5 Реализация мультизадачности. 13

3.5.1 Контекст задачи. 14

3.5.2 Переключение задач. 15

3.5.3 Разделение ресурсов. 16

3.5.4 Задачи. 16

4. Полные исходные тексты программы. 17

4.1 Файл TOS.INC. Определение констант и структур для модулей, составленных на языке ассемблера. 17

4.2 Файл TOS.H. Определение констант и структур для модулей, составленных на языке Си. 18

4.3 Файл TOS.H. Основной файл программы. 19

4.4 Файл TASKS.C. Содержит функции задач. 24

4.5 Файл SEMAPHOR.C. Содержит процедуры для работы с семафорами. 26

4.6 Файл TIMER.C. Процедуры для работы с таймером и диспетчер задач. 27

4.7 Файл EXCEPT.C. Обработка исключений. 28

4.8 Файл INTPROC.C. Заглушки для аппаратных прерываний. 29

4.9 Файл KEYB.C. Ввод символа с клавиатуры. 30

4.10 Файл KEYBOARD.ASM. Процедуры для работы с клавиатурой. 30

4.11 Файлы SCREEN.H и SCREEN.C – модуль для работы с видеоадаптером. 34

4.11.1 SCREEN.H 34

4.11.2 SCREEN.C 34

4.12 Файл TOSSYST.ASM. Процедуры для инициализации, перехода в защищённый режим и возврата в реальный режим, для загрузки регистра TR и переключения задач. 36

5. Выводы. 41

6. Литература. 41

1. Введение.

Операционная система MS DOS, не смотря на свое моральное устаревание, все еще довольно часто находит применение на парке старых ПК, а значит, все еще существует необходимость создания программ для нее.

К сожалению, написание программ в реальном режиме процессоров архитектуры Intel x86 осложнено отсутствием возможности использовать в программе оперативную память объемом свыше пресловутых 640 килобайт, а реально свыше 500-620 килобайт. Это ограничение к сожалению преследует MS DOS и аналогичные ей ОС других производителей, начиная с того момента, как горячо любимый в околокомпьютерных кругах Билл Гейтс заявил, что 640 килобайт достаточно для всех возможных задач ПК. Преодоление барьера 640 килобайт в новых версиях MS DOS усложнялось необходимостью совместимости с старыми программами, которые жизненно необходимо было поддерживать. Программирование защищенного режима процессора и расширенной памяти требовало от программистов недюжинных знаний архитектуры процессоров Intel и достаточно трудоемкого программирования.

1.1 Уровни программной поддержки защищенного режима.

Инженерная мысль не стоит на месте, особенно в такой области, как программирование. Задача программной поддержки защищённого режима и поддержки работы с расширенной памятью получила не одно, а сразу несколько решений. Этими решениями стали так называемые уровни программной поддержки защищённого режима и поддержки работы с расширенной памятью:

  • интерфейс BIOS;
  • интерфейс драйвера HIMEM.SYS;
  • интерфейс EMS/VCPI;
  • интерфейс DPMI;
  • расширители DOS (DOS-экстендеры).

1.1.1 Интерфейс BIOS.

Интерфейсом самого низкого уровня является интерфейс BIOS, предоставляемый программам в виде нескольких функций прерывания BIOS INT 15h. Интерфейс BIOS позволяет программе перевести процессор из реального режима в защищённый, переслать блок памяти из стандартной памяти в расширенную или из расширенной в стандартную

10 11 12 13 14 15 16 17 
Добавить в Одноклассники    

 

Rambler's Top100