06.01.2015 Views

Введение в программирование на VBA - eDrive

Введение в программирование на VBA - eDrive

Введение в программирование на VBA - eDrive

SHOW MORE
SHOW LESS

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> другую процессор сохраняет

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!