"Ральф Бургер. Большой справочник по компьютерным вирусам" - читать интересную книгу автора

каждым повторным запуском должна быть передана (загружена)
из массовой памяти в рабочую, на что каждый раз требуется
определенное время - время загрузки,- программа же, рези-
дентная в памяти,после однократной загрузки всегда доступна
и может быть активизирована в кратчайшее время. Активизация
таких программ осуществляется чаще всего при помощи так на-
зываемого прерывания. Одно такое прерывание (Interrupt) бу-
дет описано в следующем примере.
Вы пишете письмо. В середине предложения звонят в
дверь. Вы откладываете ручку в сторону, идете к двери и
приглашаете пришедшего войти. Неожиданно звонит телефон. Вы
просите посетителя немного подождать, идете к телефону, от-
вечаете и беседуете с абонентом. Затем Вы завершаете теле-
фонный разговор и можете посвятить себя посетителю. После
того, как посетитель уйдет, Вы вернетесь к письму и закон-
чите его. Это пример двойного вложенного прерывания поясня-
ет проблемы, возникающие при обработке прерываний, в част-
ности, задание различных приоритетов (если одновременно
звонят дверной звонок и телефон, на что реагировать в пер-
вую очередь?) и сохранение определенного состояния прерыва-
ния (что Вы делали в то время, когда зазвонил дверной зво-
нок - писали или говорили по телефону?). С этими основными
проблемами сталкивается процессор при обработке прерывания.
При возникновении прерывания обычная обработка прог-
раммы прерывается, и управление передается другой програм-
ме. Затем программа обработки прерывания определяет, вер-
нуться ли в вызывающую программу или продолжить выполнение

- 15 -
задачи.

1.2 Обработанные программы
──────────────────────────────
Обычно каждый программист старается обеспечить рабо-
тоспособность программного обеспечения. Например он стре-
мится избежать пресловутого "зависания" ЭВМ (постоянного
повторения программного цикла без возможности из него вый-
ти). Он старается также сделать так, чтобы неверный ввод
пользователя не мог повредить массивы данных и программ.
Программирование такой защиты осуществляется особенно тща-
тельно и является одной из важнейших проблем, возникающих
при создании программного обеспечения.
Если необходимо внести изменения в программу,представ-
ленную в виде объектного кода, следует учитывать серьезные
трудности, сопровождающие этот процесс, хотя бы уже потому,
что фирмы-создатели программного обеспечения обычно не пос-
тавляют вместе с программой ее исходного текста. Эта мера
предусмотрена для защиты от несанкционированного копирова-
ния и является несостоятельной. Еще ни одна программа, ни
одна защита от копирования не устояла от "разрушения".