Книга: Архитектура операционной системы UNIX
6.5.6 Освобождение области
6.5.6 Освобождение области
Если область не присоединена уже ни к какому процессу, она может быть освобождена ядром и возвращена в список свободных областей (Рисунок 6.25). Если область связана с индексом, ядро освобождает и индекс с помощью алгоритма iput, учитывая значение счетчика ссылок на индекс, установленное в алгоритме allocreg. Ядро освобождает все связанные с областью физические ресурсы, такие как таблицы страниц и собственно страницы физической памяти. Предположим, например, что ядру нужно освободить область стека, описанную на Рисунке 6.22. Если счетчик ссылок на область имеет нулевое значение, ядро освободит 7 страниц физической памяти вместе с таблицей страниц.
алгоритм detachreg /* отсоединить область от процесса */
входная информация: указатель на точку входа в частной таблице областей процесса
выходная информация: отсутствует
{
обратиться к вспомогательным таблицам процесса, имеющим отношение к распределению памяти, освободить те из них, которые связаны с областью;
уменьшить размер процесса;
уменьшить значение счетчика ссылок на область;
if (значение счетчика стало нулевым и область не является неотъемлемой частью процесса)
освободить область (алгоритм freereg);
else { /* либо значение счетчика отлично от 0, либо область является неотъемлемой частью процесса */
снять блокировку с индекса (ассоциированного с областью);
снять блокировку с области;
}
}
Рисунок 6.26. Алгоритм отсоединения области
- Освобождение памяти
- 2.12.2. Анализ усилительных каскадов в области малых времен
- Настройка верхней области навигации
- Создание дочерней рабочей области
- Создание рабочей области для документов
- Удаление рабочей области для документов
- Создание рабочей области для собраний с использованием шаблона
- Создание рабочей области для собраний на основе календарного события
- Использование домашней страницы рабочей области для собраний
- 2. Нормативно-правовая база, государственное регулирование и координация в области ВЯД
- Из области уведомлений вдруг пропадают значки запущенных программ
- Освобождение места на диске