Page 103 - 4875
P. 103

Лекція 9
                                           РЕЗИДЕНТНІ ПРОГРАМИ (TSR)

                                  Terminate  But  Stay  Resident  (TSR)  –  такі  програми
                           представляють  собою  один  із  трьох  основних  класів  програмних
                           модулів,  що  використовуються  в  DOS.  Основною  відмінністю  між
                           резидентними  і  звичайними  програмами  є  те,  що  після  завершення
                           роботи звичайної програми операційна система вивільняє всю пам’ять,
                           яка використовується цією програмою. Після завершення резидентної
                           програми  її  частина  (функціональний  обробник)  залишається  в
                           оперативній  пам’яті,  при  чому,  на  неї  вказує  попередньо  змінений
                           вектор переривань.
                                  Розрізняють також напіврезидентні програми — це програми,
                           що загружають і виконують іншу програму, залишаючись при цьому в
                           пам'яті, а потім, після того як завантажена програма виконана, вони теж
                           закриваються.  Напіврезидентна  програма  може  містити  обробники
                           переривань, що будуть діяти увесь час, поки працює завантажена з-під
                           неї  звичайна  програма.  Так  що,  з  погляду  даної  дочірньої  програми,
                           напіврезидентна  програма  функціонує  як  звичайна  резидентна.  Такі
                           програми  зручно  використовувати  для  внесення  змін  і  доповнень  в
                           існуючі  програми,  якщо  не  можна  внести  виправлення  прямо  в  їх
                           виконавчий код. Так створюються загрузчики для ігор, що зберігають
                           свій код у зашифрованому чи упакованому виді. Такий загрузчик може
                           відслідковувати  визначені  комбінації  клавіш  і  обманювати  гру,
                           додаючи  гравцю  ті  чи  інші  ресурси,  або,  наприклад,  знаходити  код
                           перевірки пароля і виключати його.
                                  Резидентні програми прийнято розділяти на активні і пасивні, в
                           залежності від того, чи перехоплюють вони переривання від зовнішніх
                           пристроїв чи одержують керування, тільки якщо програма спеціально
                           викликає команду int з потрібним номером переривання і параметрами.
                                  DOS  –  це  система,  яка  не  буде  надавати  ніяких  спеціальних
                           можливостей  для  одночасного  виконання  декількох  процесів,  крім
                           можливості  залишати  програми  резидентною  в  пам'яті.  Тому,  щоб
                           організувати  загальну  пам'ять  для  декількох  процесів,  треба
                           завантажити  пасивну  резидентну  програму,  що  буде  підтримувати
                           функції  виділення  блоку  пам'яті  (повертаючи  ідентифікатор),
















                                                           102
   98   99   100   101   102   103   104   105   106   107   108