AMIGA # 1
Счетчик числа пользователей шрифта будет при этом увеличен на единицу. Ну-с, а если шрифт никому стал не нужен (счетчик пользователей обнулился), то почему он занимает драгоценную память, спросите вы. А занимает потому, что авось кому потребуется в будущем. Не все ли равно что находится в памяти, пока её (памяти) всем хватает. А вот если не хватает?.. Все без исключения программы, процессы, задачи и т.д., работающие в системе Амиги получают память в своё распоряжение только по запросу к системе. Это вам не ZX-Spectrum, никакого там LOAD \"screen$\" CODE 16384,6912 (помните?) здесь и в помине нет. Абсолютные адреса отсутствуют в системе как класс, за единственным исключением, коим является адрес указателя базы библиотеки \"exec.library\". Так вот, если какой-либо запрос на резервирование свободной памяти система удовлетворить не может, то возникает ситуация, которая называется memory panic — что-то сродни бросанию мешков с песком с падающего воздушного шара. Система начинает лихорадочно уничтожать ресурсы с нулевыми счётчиками пользователей, пока не наберёт нужное количество свободной памяти. Красиво, не правда ли? Имитирует эту ситуацию исполнение AVAIL FLUSH. Обычно этот параметр используется только для того, чтобы посмотреть какое реальное количество свободной памяти имеется на данный момент времени в вашей системе. Все те цифры, касающиеся свободной памяти, которые выводят как сама команда AVAIL (без FLUSH), так и любые другие (включая Workbench и Directory OPUS), не учитывают той памяти, которая МОГЛА БЫ быть освобождена в случае необходимости и в силу этого обстоятельства практически всегда являются заниженными. Поэтому пусть вас не пугает ситуация, когда вы, например, смотрите сколько у вас памяти в системе, затем загружаете какую-либо программу, а после выхода из неё вдруг окажется, что часть свободной памяти куда-то пропала. Бывают, конечно, программы которые после себя не все убирают… Если у вас есть сомнения на этот счет, то проверить их можно либо исполнив AVAIL FLUSH до и после запуска подозрительной программы, либо зафиксировав величину свободной памяти ПОСЛЕ первого запуска программы, а затем запустив и выйдя из нее ещё раз, сравнить величину свободной памяти с первоначальной.
|