Аппаратные и программные прерывания (1086662)
Текст из файла
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ
РАДИОТЕХНИКИ, ЭЛЕКТРОНИКИ И АВТОМАТИКИ
(ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)»
ВЕЧЕРНИЙ ФАКУЛЬТЕТ
АВТОМАТИКИ И ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ
КАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ
ЛАБОРАТОРНАЯ РАБОТА
(системное программное обеспечение)
ТЕМА: Аппаратные и программные прерывания
Выполнила: студентка группы
ВССУ-8н-06 Мордвинцева М.В.
Москва 2010
Аппаратное прерывание IRQ
Аппаратные прерывания. К аппаратным прерываниям относятся как логические прерывания процессора и сопроцессора, возникающие при особой ситуации, например, делении на ноль, так и прерывания от контроллера прерываний, который обслуживает 15-16 линий для внешних устройств, таких как последовательные, и параллельные порты, клавиатуры, гибкие и жесткие диски и т.д. В первых компьютерах имелось восемь линий, затем они были расширены до 15 путем объединения 8 новых каналов в один. Этот канал может не только обрабатывать линий, но и работать самостоятельно. Поэтому компьютер может обслуживать от 15 до 16 линий. Девять линий находятся на шине ввода/вывода, оставшиеся линии предназначены для внешних устройств, например, клавиатуры, таймера и пр.
Прерывания процессора и сопроцессора возникают при выполнении текущей инструкции и прерывают работу текущей программы, являясь неожиданными для нее. При этом текущая программа может закончить свою работу, например при переполнении порядка, когда в результате арифметических действий появляется число, которое не может быть сохранено в памяти, так как его значение больше допустимого, или при делении на ноль.
Аппаратные прерывания, могут быть: немаскируемыми и маскируемыми внешними прерываниями.
Когда маскируемое прерывание поступает к центральному процессору, то он может отложить обработку этого прерывания до тех пор, пока не освободится.
Для вызова справки о системе используем команду MSINFO32 для Windows XP (32)
Программные прерывания (IDT)
Программное прерывание имеет абсолютно такой же механизм реализации, что и обычное прерывание. Единственное отличие – источником прерывания является не внешнее событие, а специальная команда в программе. В связи с этим у программного прерывания теряется одно из важных свойств прерывания – асинхронность, оно становится обычной прозрачной процедурой. В связи с этим программное прерывание используется для взаимодействия с различными компонентами операционной системы, резидентными программами и т.п.. Сохранные в стеке регистры процессора в момент прерывания (формальные параметры функции обработки прерывания) могут использоваться для передачи параметров в вызываемую функцию (процедуру).
Для получения информации о векторной таблице прерываний требуется:
-
скачать и установить Debugging Tools for Windows
-
скопировать файл LiveKd.exe в папку с проинсталлированным Debugging Tools for Windows (по умолчанию C:\Program Files\Debugging Tools for Windows (x86)
-
запустить LiveKd.exe
-
утвердительно ответить на все запросы (нажать Y)
-
набрать команду .logopen путь\имя_файла.txt (например .logopen C:\idt.txt)
-
набрать команду !IDT –a
-
набрать команду .logclose
В файле, который вы указали, будет содержаться вся таблица векторных прерываний для вашего типа процессора и ОС.
LiveKd
http://technet.microsoft.com/ru-ru/sysinternals/bb897415.aspx
Debugging Tools for Windows
http://www.microsoft.com/whdc/devtools/debugging/default.mspx
Opened log file 'C:\idt.txt'
kd> !IDT -a
Dumping IDT:
00: 804df350 nt!KiTrap00
01: 804df4cb nt!KiTrap01
02: Task Selector = 0x0058
03: 804df89d nt!KiTrap03
04: 804dfa20 nt!KiTrap04
05: 804dfb81 nt!KiTrap05
06: 804dfd02 nt!KiTrap06
07: 804e036a nt!KiTrap07
08: Task Selector = 0x0050
09: 804e078f nt!KiTrap09
0a: 804e08ac nt!KiTrap0A
0b: 804e09e9 nt!KiTrap0B
0c: 804e0c42 nt!KiTrap0C
0d: 804e0f38 nt!KiTrap0D
0e: 804e164f nt!KiTrap0E
0f: 804e197c nt!KiTrap0F
10: 804e1a99 nt!KiTrap10
11: 804e1bce nt!KiTrap11
12: Task Selector = 0x00A0
13: 804e1d34 nt!KiTrap13
14: 804e197c nt!KiTrap0F
15: 804e197c nt!KiTrap0F
16: 804e197c nt!KiTrap0F
17: 804e197c nt!KiTrap0F
18: 804e197c nt!KiTrap0F
19: 804e197c nt!KiTrap0F
1a: 804e197c nt!KiTrap0F
1b: 804e197c nt!KiTrap0F
1c: 804e197c nt!KiTrap0F
1d: 804e197c nt!KiTrap0F
1e: 804e197c nt!KiTrap0F
1f: 806edfd0 hal!HalpApicSpuriousService
20: 00000000
21: 00000000
22: 00000000
23: 00000000
24: 00000000
25: 00000000
26: 00000000
27: 00000000
28: 00000000
29: 00000000
2a: 804deb92 nt!KiGetTickCount
2b: 804dec95 nt!KiCallbackReturn
2c: 804dee34 nt!KiSetLowWaitHighThread
2d: 804df77c nt!KiDebugService
2e: 804de631 nt!KiSystemService
2f: 804e197c nt!KiTrap0F
30: 804ddcf0 nt!KiUnexpectedInterrupt0
31: 804ddcfa nt!KiUnexpectedInterrupt1
32: 804ddd04 nt!KiUnexpectedInterrupt2
33: 804ddd0e nt!KiUnexpectedInterrupt3
34: 804ddd18 nt!KiUnexpectedInterrupt4
35: 804ddd22 nt!KiUnexpectedInterrupt5
36: 804ddd2c nt!KiUnexpectedInterrupt6
37: 806ed728 hal!PicSpuriousService37
38: 804ddd40 nt!KiUnexpectedInterrupt8
39: 804ddd4a nt!KiUnexpectedInterrupt9
3a: 804ddd54 nt!KiUnexpectedInterrupt10
3b: 804ddd5e nt!KiUnexpectedInterrupt11
3c: 804ddd68 nt!KiUnexpectedInterrupt12
3d: 806eeb70 hal!HalpApcInterrupt
3e: 804ddd7c nt!KiUnexpectedInterrupt14
3f: 804ddd86 nt!KiUnexpectedInterrupt15
40: 804ddd90 nt!KiUnexpectedInterrupt16
41: 806ee9cc hal!HalpDispatchInterrupt
42: 804ddda4 nt!KiUnexpectedInterrupt18
43: 804dddae nt!KiUnexpectedInterrupt19
44: 804dddb8 nt!KiUnexpectedInterrupt20
45: 804dddc2 nt!KiUnexpectedInterrupt21
46: 804dddcc nt!KiUnexpectedInterrupt22
47: 804dddd6 nt!KiUnexpectedInterrupt23
48: 804ddde0 nt!KiUnexpectedInterrupt24
49: 804dddea nt!KiUnexpectedInterrupt25
4a: 804dddf4 nt!KiUnexpectedInterrupt26
4b: 804dddfe nt!KiUnexpectedInterrupt27
4c: 804dde08 nt!KiUnexpectedInterrupt28
4d: 804dde12 nt!KiUnexpectedInterrupt29
4e: 804dde1c nt!KiUnexpectedInterrupt30
4f: 804dde26 nt!KiUnexpectedInterrupt31
50: 806ed800 hal!HalpApicRebootService
51: 804dde3a nt!KiUnexpectedInterrupt33
52: 804dde44 nt!KiUnexpectedInterrupt34
53: 804dde4e nt!KiUnexpectedInterrupt35
54: 804dde58 nt!KiUnexpectedInterrupt36
55: 804dde62 nt!KiUnexpectedInterrupt37
56: 804dde6c nt!KiUnexpectedInterrupt38
57: 804dde76 nt!KiUnexpectedInterrupt39
58: 804dde80 nt!KiUnexpectedInterrupt40
59: 804dde8a nt!KiUnexpectedInterrupt41
5a: 804dde94 nt!KiUnexpectedInterrupt42
5b: 804dde9e nt!KiUnexpectedInterrupt43
5c: 804ddea8 nt!KiUnexpectedInterrupt44
5d: 804ddeb2 nt!KiUnexpectedInterrupt45
5e: 804ddebc nt!KiUnexpectedInterrupt46
5f: 804ddec6 nt!KiUnexpectedInterrupt47
60: 804dded0 nt!KiUnexpectedInterrupt48
61: 804ddeda nt!KiUnexpectedInterrupt49
62: 82fcd2b4 atapi!IdePortInterrupt (KINTERRUPT 82fcd278)
63: 82d4e4d4 USBPORT!USBPORT_InterruptService (KINTERRUPT 82d4e498)
64: 804ddef8 nt!KiUnexpectedInterrupt52
65: 804ddf02 nt!KiUnexpectedInterrupt53
66: 804ddf0c nt!KiUnexpectedInterrupt54
67: 804ddf16 nt!KiUnexpectedInterrupt55
68: 804ddf20 nt!KiUnexpectedInterrupt56
69: 804ddf2a nt!KiUnexpectedInterrupt57
6a: 804ddf34 nt!KiUnexpectedInterrupt58
6b: 804ddf3e nt!KiUnexpectedInterrupt59
6c: 804ddf48 nt!KiUnexpectedInterrupt60
6d: 804ddf52 nt!KiUnexpectedInterrupt61
6e: 804ddf5c nt!KiUnexpectedInterrupt62
6f: 804ddf66 nt!KiUnexpectedInterrupt63
70: 804ddf70 nt!KiUnexpectedInterrupt64
71: 804ddf7a nt!KiUnexpectedInterrupt65
72: 804ddf84 nt!KiUnexpectedInterrupt66
73: 82c99334 portcls!CKsShellRequestor::`vector deleting destructor'+0x26 (KINTERRUPT 82c992f8)
74: 804ddf98 nt!KiUnexpectedInterrupt68
75: 804ddfa2 nt!KiUnexpectedInterrupt69
76: 804ddfac nt!KiUnexpectedInterrupt70
77: 804ddfb6 nt!KiUnexpectedInterrupt71
78: 804ddfc0 nt!KiUnexpectedInterrupt72
79: 804ddfca nt!KiUnexpectedInterrupt73
7a: 804ddfd4 nt!KiUnexpectedInterrupt74
7b: 804ddfde nt!KiUnexpectedInterrupt75
7c: 804ddfe8 nt!KiUnexpectedInterrupt76
7d: 804ddff2 nt!KiUnexpectedInterrupt77
7e: 804ddffc nt!KiUnexpectedInterrupt78
7f: 804de006 nt!KiUnexpectedInterrupt79
80: 804de010 nt!KiUnexpectedInterrupt80
81: 804de01a nt!KiUnexpectedInterrupt81
82: 82f43dd4 atapi!IdePortInterrupt (KINTERRUPT 82f43d98)
83: 82c6db3c VIDEOPRT!pVideoPortInterrupt (KINTERRUPT 82c6db00)
USBPORT!USBPORT_InterruptService (KINTERRUPT 82c6dd98)
USBPORT!USBPORT_InterruptService (KINTERRUPT 82d56d98)
84: 804de038 nt!KiUnexpectedInterrupt84
85: 804de042 nt!KiUnexpectedInterrupt85
86: 804de04c nt!KiUnexpectedInterrupt86
87: 804de056 nt!KiUnexpectedInterrupt87
88: 804de060 nt!KiUnexpectedInterrupt88
89: 804de06a nt!KiUnexpectedInterrupt89
8a: 804de074 nt!KiUnexpectedInterrupt90
8b: 804de07e nt!KiUnexpectedInterrupt91
8c: 804de088 nt!KiUnexpectedInterrupt92
8d: 804de092 nt!KiUnexpectedInterrupt93
8e: 804de09c nt!KiUnexpectedInterrupt94
8f: 804de0a6 nt!KiUnexpectedInterrupt95
90: 804de0b0 nt!KiUnexpectedInterrupt96
91: 804de0ba nt!KiUnexpectedInterrupt97
92: 82d4cdd4 serial!SerialCIsrSw (KINTERRUPT 82d4cd98)
93: 82daa044 i8042prt!I8042KeyboardInterruptService (KINTERRUPT 82daa008)
94: 82d3f044 NDIS!ndisMIsr (KINTERRUPT 82d3f008)
95: 804de0e2 nt!KiUnexpectedInterrupt101
96: 804de0ec nt!KiUnexpectedInterrupt102
97: 804de0f6 nt!KiUnexpectedInterrupt103
98: 804de100 nt!KiUnexpectedInterrupt104
99: 804de10a nt!KiUnexpectedInterrupt105
9a: 804de114 nt!KiUnexpectedInterrupt106
9b: 804de11e nt!KiUnexpectedInterrupt107
9c: 804de128 nt!KiUnexpectedInterrupt108
9d: 804de132 nt!KiUnexpectedInterrupt109
9e: 804de13c nt!KiUnexpectedInterrupt110
9f: 804de146 nt!KiUnexpectedInterrupt111
a0: 804de150 nt!KiUnexpectedInterrupt112
a1: 804de15a nt!KiUnexpectedInterrupt113
a2: 804de164 nt!KiUnexpectedInterrupt114
a3: 82c71dd4 i8042prt!I8042MouseInterruptService (KINTERRUPT 82c71d98)
a4: 82b61044 USBPORT!USBPORT_InterruptService (KINTERRUPT 82b61008)
a5: 804de182 nt!KiUnexpectedInterrupt117
a6: 804de18c nt!KiUnexpectedInterrupt118
a7: 804de196 nt!KiUnexpectedInterrupt119
a8: 804de1a0 nt!KiUnexpectedInterrupt120
a9: 804de1aa nt!KiUnexpectedInterrupt121
aa: 804de1b4 nt!KiUnexpectedInterrupt122
ab: 804de1be nt!KiUnexpectedInterrupt123
ac: 804de1c8 nt!KiUnexpectedInterrupt124
ad: 804de1d2 nt!KiUnexpectedInterrupt125
ae: 804de1dc nt!KiUnexpectedInterrupt126
af: 804de1e6 nt!KiUnexpectedInterrupt127
b0: 804de1f0 nt!KiUnexpectedInterrupt128
b1: 82f46544 ACPI!ACPIInterruptServiceRoutine (KINTERRUPT 82f46508)
SCSIPORT!ScsiPortInterrupt (KINTERRUPT 82b91008)
b2: 82e08dd4 serial!SerialCIsrSw (KINTERRUPT 82e08d98)
b3: 804de20e nt!KiUnexpectedInterrupt131
b4: 82d684bc USBPORT!USBPORT_InterruptService (KINTERRUPT 82d68480)
b5: 804de222 nt!KiUnexpectedInterrupt133
b6: 804de22c nt!KiUnexpectedInterrupt134
b7: 804de236 nt!KiUnexpectedInterrupt135
b8: 804de240 nt!KiUnexpectedInterrupt136
b9: 804de24a nt!KiUnexpectedInterrupt137
ba: 804de254 nt!KiUnexpectedInterrupt138
bb: 804de25e nt!KiUnexpectedInterrupt139
bc: 804de268 nt!KiUnexpectedInterrupt140
bd: 804de272 nt!KiUnexpectedInterrupt141
be: 804de27c nt!KiUnexpectedInterrupt142
bf: 804de286 nt!KiUnexpectedInterrupt143
c0: 804de290 nt!KiUnexpectedInterrupt144
c1: 806ed984 hal!HalpBroadcastCallService
c2: 804de2a4 nt!KiUnexpectedInterrupt146
c3: 804de2ae nt!KiUnexpectedInterrupt147
c4: 804de2b8 nt!KiUnexpectedInterrupt148
c5: 804de2c2 nt!KiUnexpectedInterrupt149
c6: 804de2cc nt!KiUnexpectedInterrupt150
c7: 804de2d6 nt!KiUnexpectedInterrupt151
c8: 804de2e0 nt!KiUnexpectedInterrupt152
c9: 804de2ea nt!KiUnexpectedInterrupt153
ca: 804de2f4 nt!KiUnexpectedInterrupt154
cb: 804de2fe nt!KiUnexpectedInterrupt155
cc: 804de308 nt!KiUnexpectedInterrupt156
cd: 804de312 nt!KiUnexpectedInterrupt157
ce: 804de31c nt!KiUnexpectedInterrupt158
cf: 804de326 nt!KiUnexpectedInterrupt159
d0: 804de330 nt!KiUnexpectedInterrupt160
d1: 806ecd34 hal!HalpClockInterrupt
d2: 804de344 nt!KiUnexpectedInterrupt162
d3: 804de34e nt!KiUnexpectedInterrupt163
d4: 804de358 nt!KiUnexpectedInterrupt164
d5: 804de362 nt!KiUnexpectedInterrupt165
d6: 804de36c nt!KiUnexpectedInterrupt166
d7: 804de376 nt!KiUnexpectedInterrupt167
d8: 804de380 nt!KiUnexpectedInterrupt168
d9: 804de38a nt!KiUnexpectedInterrupt169
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.