|
Всякий
раз, когда подпрограмма завершения находит очередной блок, кото-
рым владеет процесс, она устанавливает поле владельца MCB в нуль,
указывая, тем самым, что блок свободен. Таким образом, при про-
смотре MCB освобождаются все блоки памяти, которыми владел завер-
шаемый процесс, включая операционную среду. |
словарь |
|
|
Для освобождения сво-
ей среды программе не нужно предпринимать специальных действий.
Подпрограмма завершения DOS получает адрес JFT из PSP текуще-
го (завершающего) процесса и просматривает JFT для поиска откры-
тых файлов. При этом подпрограмма завершения закрывает каждый от-
крытый файл. |
ad aware |
|
|
Для каждого открытого файла подпрограмма закрытия
уменьшает счетчик ссылок SFT. Если счетчик ссылок станет нулевым
и файлом владеет текущая программа, то подпрограмма закрытия ос-
вобождает вход SFT. |
avast 4 home |
|
|
русско английский словарь, перевод с русского на английский, asplinux server, kaspersky, резервное копирование, .
avast 4 home
|
При завершении программы
эта подпрограмма копирует адреса критической ошибки (int 24h) и
прерывания ISR (int 23h), сохраненные в PSP для IVT, закрывает
все файлы и освобождает всю память, относящуюся к текущему про-
цессу. Управление возвращается по адресу завершения (int 22h).
Если завершающий процесс не модифицировал вход IVT для адреса за-
вершения, то программа, загрузившая программу завершения, снова
получит управление для выполнения инструкции, непосредственно
следующей за запросом загрузки. Затем, как обычно, управление
возвращается в файл COMMAND.COM. Критические ошибки вызывают ава-
рийные завершения. Одна и та же программа обрабатывает запросы
аварийного и обычного завершения, различие заключается лишь в вы-
работке разного кода завершения, сохраняемого во внутренней пере-
менной DOS.
Освобождение памяти является простым процессом. DOS распреде-
ляет память на блоки. Каждому блоку памяти непосредственно пред-
шествует 16-байтовый блок управления памятью (MCB). Область MCB
содержит размер следующего блока и записи PSP владельца. Слово,
стоящее во главе списка, содержит сегмент первого блока управле-
- 4-29 -
ния памятью. Подпрограмма завершения DOS просматривает список MCB
для нахождения блоков, которыми владеет текущий процесс.
|
|
|