Введение в программирование на VBA - eDrive
Введение в программирование на VBA - eDrive
Введение в программирование на VBA - eDrive
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
8<br />
Преры<strong>в</strong>анием <strong>на</strong>зы<strong>в</strong>ается ситуация <strong>в</strong>ременного прекращения<br />
<strong>в</strong>ыполнения операции с передачей упра<strong>в</strong>ления другой операции по<br />
<strong>в</strong>нешнему сиг<strong>на</strong>лу. Устройст<strong>в</strong>а, работающие <strong>в</strong> режиме обме<strong>на</strong> по<br />
преры<strong>в</strong>аниям (таймеры, распределители импульсо<strong>в</strong>, синхронизаторы и т.п.),<br />
<strong>в</strong>ыста<strong>в</strong>ляют требо<strong>в</strong>ания преры<strong>в</strong>ания <strong>в</strong> произ<strong>в</strong>ольные моменты <strong>в</strong>ремени,<br />
асинхронно по отношению к дейст<strong>в</strong>иям процессора. В от<strong>в</strong>ет <strong>на</strong> требо<strong>в</strong>ание<br />
преры<strong>в</strong>ания <strong>в</strong>ыполняется:<br />
• идентификация источника преры<strong>в</strong>ания;<br />
• запоми<strong>на</strong>ние текущего состояния прер<strong>в</strong>анного процесса;<br />
• маскиро<strong>в</strong>ание (запрет) по<strong>в</strong>торных преры<strong>в</strong>аний;<br />
• <strong>в</strong>ыполнение обработки преры<strong>в</strong>ания;<br />
• <strong>в</strong>осстано<strong>в</strong>ление и продолжение прер<strong>в</strong>анного процесса.<br />
По преры<strong>в</strong>аниям операцион<strong>на</strong>я система формирует соот<strong>в</strong>етст<strong>в</strong>ующие<br />
сообщения. Сообщения от таких разделяемых ресурсо<strong>в</strong> как таймер,<br />
кла<strong>в</strong>иатура или мышь, помещаются <strong>в</strong>о <strong>в</strong>ходные очереди частей приложений,<br />
имеющих или получающих фокус. Для каждого потока данных Windows<br />
организует отдельную очередь. Обслужи<strong>в</strong>аются очереди самими<br />
приложениями. При этом каждое приложение, получающее сообщения,<br />
«решает», следует ли <strong>на</strong> него реагиро<strong>в</strong>ать. Такое по<strong>в</strong>едение<br />
информационных объекто<strong>в</strong> <strong>на</strong>зы<strong>в</strong>ают событийно-упра<strong>в</strong>ляемым, или<br />
ориентиро<strong>в</strong>анным <strong>на</strong> события.<br />
Сообщения Windows <strong>в</strong>есьма разнообразны. Сущест<strong>в</strong>ует более 200<br />
<strong>в</strong>строенных идентификаторо<strong>в</strong> сообщений Windows. Обычно <strong>в</strong>ыделяют<br />
системные сообщения, сообщения упра<strong>в</strong>ления ок<strong>на</strong>ми, сообщения мыши,<br />
кла<strong>в</strong>иатуры и др. Они нера<strong>в</strong>нопра<strong>в</strong>ны и образуют сложную иерархию,<br />
причем старшие сообщения могут порождать младшие.<br />
Обрабаты<strong>в</strong>ая сообщения, Windows поддержи<strong>в</strong>ает д<strong>в</strong>а типа<br />
многозадачности: процессную и потоко<strong>в</strong>ую. Процессом <strong>на</strong>зы<strong>в</strong>ают<br />
приложение, <strong>на</strong>ходящееся <strong>в</strong> фазе <strong>в</strong>ыполнения. Процесс<strong>на</strong>я многозадачность<br />
<strong>в</strong>ыражается <strong>в</strong> том, что Windows поз<strong>в</strong>оляет одно<strong>в</strong>ременно запускать<br />
несколько приложений, разделяя между ними ресурсы компьютера, <strong>в</strong><br />
пер<strong>в</strong>ую очередь память и дисплей. Поток — это самостоятельно<br />
<strong>в</strong>ыполняемая и упра<strong>в</strong>ляемая часть приложения. Любой процесс имеет как<br />
минимум один поток и поэтому, работая <strong>в</strong> Windows, можно по отдельности<br />
<strong>в</strong>ыполнять несколько частей одной программы.<br />
Система Windows функционирует <strong>в</strong> режиме разделения <strong>в</strong>ремени. О<strong>на</strong><br />
использует схему переключения задач с а<strong>в</strong>то<strong>в</strong>ыгрузкой — <strong>в</strong>ытесняющую<br />
многозадачность, базирующуюся <strong>на</strong> <strong>в</strong>ременных к<strong>в</strong>антах. Отработа<strong>в</strong><br />
устано<strong>в</strong>ленный к<strong>в</strong>ант <strong>в</strong>ремени, задача а<strong>в</strong>томатически <strong>в</strong>ыгружается системой,<br />
и упра<strong>в</strong>ление передается следующей задаче (если тако<strong>в</strong>ая имеется). Всякий<br />
раз перед переключением с одной задачи <strong>на</strong> другую процессор сохраняет