При снижении степени многозадачности один или несколько резидентных в настоящее время процессов должны быть приостановлены (выгружены во вторичную память). В [CARR84] перечислены шесть возможностей.
· Процесс с наименьшим приоритетом. Так реализована стратегия планировщика, не имеющая отношения к вопросам производительности.
· Процесс, вызывающий прерывания. Данный выбор основан на большой вероятности того, что у процесса, генерирующего прерывания из-за отсутствия страницы, рабочее множество не резидентно, и суммарная производительность системы не пострадает при приостановке данного процесса.Кроме того, при таком выборе блокируется процесс, который и так практически все время находится в заблокированном состоянии, так что его приостановка приводит к снижению накладных расходов, связанных с замещением страниц и операциями ввода-вывода.
· Последний активированный процесс. Маловероятно, что у этогопроцесса рабочее множество резидентно.
· Процесс с минимальным резидентным множеством. Этот выбор минимизирует будущие затраты на загрузку данного процесса. К сожалению, таковыми являются процессы с высокой степенью локализации.
· Наибольший процесс. При этом выборе мы освобождаем большое количество кадров перегруженной процессами памяти, снижая тем самым количество процессов, которые должны быть деактивированы.
· Процесс с максимальным остаточным окном исполнения.В большинстве схем планирования процесс может выполняться только определенное количество квантов времени до прерывания и перемещенияего в конец очереди активных процессов. Данный выбор приближается к стратегии планирования, предоставляющей преимущество процессам с наименьшим временем работы.
Как и во многих других областях разработки операционных систем, выбор стратегии основан на здравом смысле и зависит от множества факторов, как, например, характеристик выполняемых в системе программ.
8.3. УПРАВЛЕНИЕ ПАМЯТЬЮ B UNIX
Система управления памятью в UNIX варьируется в разных операционных системах. Ранние версии UNIX использовали переменное распределение памяти без применения виртуальной памяти. Современные реализации, включая SVR4 и Solaris 2-х, используют страничную виртуальную память.
В SVR4 и Solaris, по сути, имеются две раздельные схемы управления памятью. Страничная система обеспечивает реализацию возможностей виртуальной памяти, распределяя кадры основной памяти среди процессов, а также среди буферов диска. Хотя описанная схема эффективно работает с пользовательскими процессами и дисковым вводом-выводом, страничная виртуальная память мало приспособлена для управления памятью ядра. Для этой цели используется распределение памяти ядра. Рассмотрим оба механизма.