Как называется резидентная программа постоянно находящаяся

Большой класс программ, обеспечивающих функционирование вычислительной системы (драйверы устройств, оболочки DOS, русификаторы, интерактивные справочники и др.), должны постоянно находиться в памяти и мгновенно реагировать на запросы пользователя, или на какие-то события, происходящие в вычислительной системе. Такие программы носят названия программ, резидентных в памяти (Terminate and Stay Resident, TSR), или просто резидентных программ. Сделать резидентной можно как программу типа.СОМ, так и программу типа .ЕХЕ, однако поскольку резидентная программа должна быть максимально компактной, чаще всего в качестве резидентных используют программы типа .СОМ.

Программы, предназначенные для загрузки и оставления в памяти, обычно состоят из двух частей (секций) – инициализирующей и рабочей (резидентной). В тексте программы резидентная секция размещается в начале, инициализирующая – за ней.

При первом вызове программа загружается в память целиком и управление передается секции инициализации, которая заполняет или модифицирует векторы прерываний, настраивает программу на конкретные условия работы (возможно, исходя из параметров, переданных программе при ее вызове) и с помощью прерывания DOS Int 21h с функцией 31h завершает программу, оставляя в памяти ее резидентную часть. Размер резидентной части программы (в параграфах) передается DOS в регистре DX. Указывать при этом сегментный адрес программы нет необходимости, так как он известен DOS. Для определения размера резидентной секции ее можно завершить предложением вида:

II фаза программы ЗАЩИТЫ беженцев // УКРАИНЦЫ в Испании


ressize=$-main

Где main – смещение начала программы, а при вызове функции 31h в регистр DX заслать результат вычисления выражения (rcssLze+10Fh)/16.

Разность S – main представляет собой размер главной процедуры. Однако перед главной процедурой размещается префикс программы, имеющий размер 100h байт, который тоже надо оставить в памяти. Далее, при целочисленном делении отбрасывается остаток, т.е. происходит округление результата в сторону уменьшения. Для компенсации этого дефекта можно прибавить к делимому число 15 = Fh. Деление всего этого выражения на 16 даст требуемый размер резидентной части программы в параграфах (возможно, с небольшим кусочком секции инициализации величиной до 15 байт).

Функция 31h, закрепив за резидентной программой необходимую для ее функционирования память, передает управление командному процессору COMMAND.СОМ, и вычислительная система переходит, таким образом, в исходное состояние. Наличие программы, резидентной в памяти, никак не отражается на ходе вычислительного процесса за исключением того, что уменьшается объем свободной памяти. Одновременно может быть загружено несколько резидентных программ.

Читайте также:
Программа nvidia corporation для чего она нужна

Для того, чтобы активизировать резидентную программу, ей надо как-то передать управление и, возможно, параметры. Как правило, активизация резидентной программы осуществляется с помощью механизма прерываний.

Кроме того, специально для взаимодействия с резидентными программами в DOS предусмотрено мультиплексное прерывание 2Fh.

Самая полезная программа (выпуск от 05.03.2022)

Рассмотрим типичную структуру резидентной программы и системные средства оставления ее в памяти. Как уже отмечалось, резидентные программы чаще всего пишутся в формате .СОМ:

code segment assume CS:text,DS:text org 100h main proc jmp init; Переход на секцию инициализации …; Данные резидентной секции программы entry:; Точка входа при активизации …; Текст резидентной секции программы iret main endp ressize=$-myproc; Размер (в байтах) резидентной секции init proc; Секция инициализации … mov DX,(ressize+10Fh)/16; Размер в параграфах mov AX,3100h; Функция «завершить и int 21h; оставить в памяти» init endp code ends end main

При первом запуске программы с клавиатуры управление передается на начато процедуры main (первый байт после префикса программы). Командой jmp осуществляется переход на секцию инициализации, в которой, в частности, подготавливаются условия для дальнейшей активизации программы уже в резидентном состоянии. Последними строками секции инициализации вызывается функция 31h, которая выполняет завершение программы с оставлением в памяти указанной ее части. С целью экономии памяти секция инициализации располагается в конце программы и отбрасывается при ее завершении.

Источник: samoychiteli.ru

15. Резидентные программы

Большой класс программ, обеспечивающих функционирование вычислительной системы (драйверы устройств, оболочки DOS, программы шифрации и зашиты: данных, русификаторы, обслуживающие программы типа электронных блокнотов или калькуляторов и др.), должны постоянно находиться в памяти и мгновенно реагировать на запросы пользователя, или на какие-то события, происходящие в вычислительной системе. Такие программы носят названия программ, резидентных в памяти или просто резидентных программ. Сделать резидентной можно как программу типа .СОМ, так и программу типа .ЕХЕ, однако поскольку резидентная программа должна быть максимально компактной, чаще всего в качестве резидентных используют программы типа .СОМ.

Программы, предназначенные для загрузки и оставления в памяти, обычно состоят из двух частей (секций) — инициализирующей и рабочей (резидентной). В тексте программы резидентная секция размещается в начале, инициализирующая — за ней.

При первом вызове программы она загружается в память целиком, и управление передается секции инициализации, которая заполняет или модифицирует векторы прерываний, настраивает программу на конкретные условия работы и с помощью прерывания DOS Int 21h с функцией 31h завершает программу, оставляя в памяти ее резидентную часть. Размер резидентной части программы (в параграфах) передается DOS в регистре DX. Указывать при этом сегментный адрес программы нет необходимости, так как он известен DOS. Для определения размера резидентной секции ее можно завершить предложением вида ressize=$-myproc,

Читайте также:
В гонке технологий победит тот кто лучше пишет программы и анализирует инженерные процессы

где myproc — смещение начала программы, а при вызове функции 31h в регистр DX заслать результат вычисления выражения (ressize+10Fh) /16.

Функция 31h, закрепив за резидентной программой необходимую для ее функционирования память, передает управление командному процессору COMMAND.COM, и вычислительная система переходит, таким образом, в исходное состояние. Наличие программы, резидентной в памяти, никак не отражается на ходе вычислительного процесса за исключением того, что уменьшается объем свободной памяти. Одновременно может быть загружено несколько резидентных программ.

Для того чтобы активизировать резидентную программу, ей надо как-то передать управление и, возможно, параметры. Запустить резидентную программу можно тремя способами:

  • вызвать ее оператором CALL как подпрограмму;
  • использовать механизм асинхронных (аппаратных) прерываний;
  • с помощью синхронного (программного) прерывания.

Источник: studfile.net

Большая Энциклопедия Нефти и Газа

Особенно это относится к резидентной части операционной системы , от которой требуется работа в реальном масштабе времени и высокое быстродействие, например, быстрая реакция на прерывание, виртуальная память, поиск страниц, поиск очередей к датчику времени и др. Всюду здесь необходимо осуществить быстрый поиск и выборку информации и поэтому целесообразно использовать АЗУ. [3]

LINKLIB и включаются в резидентную часть операционной системы . [4]

Некоторые из этих 256 прерываний используются системным программным обеспечением, поставляемым фирмой IBM к своим персональным ЭВМ IBM PC, a именно резидентной частью операционной системы ( называемой BIOS), дисковой операционной системой DOS и интерпретатором языка Бейсик. [5]

Программа обработки прерываний и две ведущие программы ( супервизора и диспетчера) должны находиться в оперативной памяти постоянно и в своей совокупности образуют так называемую резидентную часть операционной системы . [7]

Точка зрения на то, является ли система простой или сложной, очень часто зависит от того, какая часть операционной системы всегда остается резидентной. В некоторых персональных компьютерах резидентная часть операционной системы включает только обслуживание устройств ввода-вывода и распределение пространства памяти. В других случаях в нее входит также транслятор с языка программирования высокого уровня, чаще всего Бейсика. Как уже указывалось в § 5.3, все элементы такой системы имеют постоянные адреса. Такой же постоянный адрес имеет и резидентная программа-транслятор с языка Бейсик. [8]

Читайте также:
Компьютер не открывает программы с флешки

Сердцем вычислительной системы является ее операционная система; именно в нее должны включаться основные программы решения задач защиты информации. Они должны входить в резидентную часть операционной системы , чтобы исключить возможность изменения или считывания их содержимого при выполнении прикладных программ. [9]

Совокупность программ операционной системы, как правило, требует для своего размещения большего объема памяти, чем оперативная. Поэтому в оперативной памяти выделяют область для постоянного хранения: резидентной части операционной системы ; резидентных рабочих программ или подпрограмм, используемых достаточно часто; общих данных нескольких программ, требующих быстрого доступа. Остальные программы и данные хранятся во внешней памяти и переносятся в оперативную память по мере необходимости. Операционная система определяет, какие рабочие программы должны находиться в оперативной памяти и какая из них в данный момент должна выполняться. [10]

Однако можно не строить такие машины, а полностью или частично микропрограммно реализовывать операционную среду, используемую компилятором. Вызовы различных вспомогательных программ, в том числе и принадлежащих резидентной части операционной системы , вставляемые обычно компилятором в получающийся в процессе компиляции код, так же как и машинные команды, микропрограммно реализуемы. [11]

Операционные системы представляют собой комплекс программ, состоящий из десятков и сотен тысяч команд. В целях более эффективного использования оперативной памяти в пей постоянно размещается только сравнительно небольшая, так называемая резидентная часть операционной системы . Большая пасть операционной системы размещается па внешних устройствах ( магнитной ленте, магнитном барабане или магнитном диске), откуда в нужный момент вызываются в оперативную память соответствующие программы. [12]

Условные и безусловные переходы внутри программного сегмента, как правило, производятся относительно его базы. Это является средством достижения перемещаемости программных сегментов. При перемещении программы с одного места памяти на другое нет необходимости изменять адреса переходов. В системе команд предусмотрены также переходы по абсолютному адресу. Такого рода переходы используются в резидентной части операционной системы . Условные переходы производятся в зависимости от содержания младшего разряда второго слова в стеке и значений некоторых управляющих регистров центрального процессора. [13]

Источник: www.ngpedia.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru