Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

Процессу, выбранному для выполнения, менеджер страниц отводит таблицу карт. При этом менеджер страниц обнуляет содержимое таблицы. Затем рабочий набор процесса сохраня­ется в таблице карт, а сам процесс передается на обработку программе диспетчера. В процессе работы программы элемен­ты в таблице карт модифицируются согласно выдаваемым за­просам на загрузку страниц.

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

Таблица страниц. Таблица страниц содержит по одному элементу, называемому дескриптором страницы, для каждой физической страницы в основной памяти. Этот элемент содер­жит текущий статус страницы с точки зрения ее защиты, при­знак постоянного присутствия в рабочем наборе процесса, сте­пень использования и ее физический адрес на диске. В этот элемент обычно входят следующие поля:

Мнемоника

Назначение

статус – страницы

Характеризует текущее использование стра­ницы (см. ниже)

защита – записи

Указывает на защиту страницы по записи после загрузки последней

признак – изменения

Указывает на то, что содержимое страницы было изменено некоторым процессом

счетчик – использования

Указывает время, прошедшее с момента последней адресации к странице

признак – блокировки

Указывает на то, что данная страница по­сле своей загрузки должна постоянно присутствовать в рабочем наборе

идентификатор – виртуальной – страницы

Идентификатор виртуальной страницы в таблице карт

дисковый – адрес

Адрес образца данной страницы на диске

признак –запись-чтение

Указывает на то, что элемент должен быть считан или записан на диск

Активная физическая страница может пребывать в четырех состояний, определенных полем СТАТУС - СТРАНИЦЫ. Соответствующие значения статуса:

НЕ нашли? Не то? Что вы ищете?

Значение

Назначение

0

1

2

3

Страница активна

Страница находится в очереди на удаление

Страница недоступна (т. е. находится в режиме удаления или загрузки)

Страница доступна для выделения ее некоторому процессу

Страница может быть защищена от записи в нее информации процессом. В системах с реентерабельными программами стра­ницы часто подразделяются на содержащие кодовые сегменты и содержащие сегменты данных. Все страницы, содержащие кодовые сегменты, имеют ПРИЗНАК-АКТИВНОСТИ, установлен­ный в единицу. ПРИЗНАК-ИЗМЕНЕНИЯ указывает те страни­цы, содержимое которых было изменено. Если необходимость присутствия страницы в рабочем наборе отпадает и ПРИЗНАК-ИЗМЕНЕНИЯ установлен в единицу, она переписывается на диск. ПРИЗНАК-БЛОКИРОВКИ устанавливается в том случае, если имеется необходимость постоянного присутствия данной страницы в основной памяти. Фактически блокированные стра­ницы никогда не рассматриваются как кандидаты на удале­ние.

Физическая страница связывается с таблицей карт с по­мощью ИДЕНТИФИКАТОРА-ВИРТУАЛЬНОЙ-СТРАНИЦЫ. Это упрощает механизм об­новления таблиц карт. При удалении таблицы из памяти си­стема должна обновить соответствующий элемент таблицы карт, зарегистрировав этим отсутствие данной страницы. ДИСКОВЫЙ-АДРЕС содержит адрес образа страницы на диске. Он используется системой для обновления страницы вследствие изменения содержимого данной страницы в памяти.

Рабочая область менеджера страниц. Для управления стра­ницами менеджеру страниц необходимо рабочее пространство. Это пространство образуется из дополнительных элементов в БУП, а также пространством, отводимым для этого в БУП ди­намически. Ниже перечисленные элементы дополняют стандарт­ный набор данных процесса:

Мнемоника

Применение

активное – время

Процессорное время, истекшее с момента начала работы процесса

квант

Квант процессорного времени, отводимый данному процессу

текущий– размер –рабочего – набора

Текущий размер рабочего набора, отводи­мого данному процессу

прежний– размер –рабочего – набора

Размер рабочего набора к концу предыду­щего активного периода

первая – виртуальная – страница

Первая виртуальная страница, необходи­мая для активизации данного процесса

адрес – рабочего – набора

Адрес рабочего набора для данного про­цесса

величина интервала

Время, остающееся в текущем рабочем ин­тервале

Величина АДРЕС-РАБОЧЕГО-НАБОРА определяет то место в БУП, где находится информация о текущих страницах рабочего набора. О каждой странице рабочего набора поддержива­ется следующая информация: идентификатор виртуальной страницы, адрес страницы на диске и признак защиты запи­си. Число элементов указывается в ТЕКУЩЕМ-РАЗМЕРЕ-РАБОЧЕГО-НАБОРА.

5. ФУНКЦИИ УПРАВЛЕНИЯ СТРАНИЦАМИ

Подсистема управления страницами управляется прерыва­ниями в том смысле, что после того, как процесс начал свое выполнение, вызов менеджера страниц происходит вследствие возникновения прерывания. При выполнении процесса из па­мяти извлекается инструкция, соответствующие адреса транс­лируются в реальные адреса памяти, и затем эта инструкция выполняется. После завершения выполнения инструкции CPU анализирует, не произошло ли прерыва­ния, переходя в этом случае к резидентной программе обслу­живания прерывания. На работу менеджера страниц влияют следующие прерывания:

Прерывание по таймеру интервалов. Рабочий интервал вре­мени В для данного процесса окончился и процесс помещается в очередь на выполнение.

Сбой страницы. Запрашиваемая страница в текущий мо­мент отсутствует в памяти, поэтому процесс блокируется на время ее загрузки.

Переполнение рабочего набора. Число страниц, запрошен­ное процессом, превысило максимально разрешенное число страниц в его рабочем наборе, вследствие чего он помещается в очередь на выполнение.

Ошибка адресации. Была сделана ссылка по недопустимому адресу, вызвавшая прекращение работы процесса.

Страничное прерывание. Страница была успешно удалена из памяти, что требует обновления соответствующих таблиц менеджера страниц.

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

5.1. Обработка прерываний по таймеру интервалов.

Таймер ин­тервалов предназначен для отсчитывания времени, отведен­ного процессу на один рабочий период. При диспетчеризации процесса таймер интервалов загружается конечным значением времени работы процесса. По истечении этого периода и при условии, что никакие другие прерывания не возникли, таймер интервалов генерирует прерывание, вынуждая процесс повтор­но осуществлять свое планирование. Выбор рабочего периода в системе со страничной организацией во многом определяет эф­фективность системы. Слишком короткое время требует боль­шой работы операционной системы по “переключению” про­цессов. Слишком большое время в сочетании с неподходящим размером рабочего набора может привести систему в режим “пробуксовки”.

Процедура прерываниями по таймеру приведена в модуле 1. Квант процессорного времени может составлять несколько рабочих периодов. Между перио­дами повторного планирования процесса не происходит.

Если квант процессорного времени еще не исчерпан, процедура проверяет, есть ли время на то, чтобы модифицировать размер рабочего набора. ВРЕМЯ-РАБОЧЕГО-НАБОРА - это число рабочих периодов (обычно четное число), требуемое для вы­числения рабочего набора. Число свободных страниц модифи­цируется в соответствии с произошедшими изменениями. Про­цесс затем помещается в очередь выполняющихся процессов, ожидая начала своего рабочего периода. Процедура ЦИРКУ­ЛЯЦИЯ помещает процесс в очередь выполняющихся процес­сов согласно установленным критериям (т. е. приоритет, “первый поступивший первым обслуживается” и т. д.).

МОДУЛЬ ОБРАБОТКИ ПРЕРЫВАНИЯ ПО ТАЙМЕРУ (Модуль 1).

PROCEDURE прерывание – по – таймеру – интервалов [процесс]

INCREMENT активное – время [процесс] ВУ рабочий – период

SET рабочий – период ТО величина – интервала [процесс]

IF активное – время [процесс] квант [процесс]

THEN

деактивизировать (процесс, очередь – на – выполнение)

ELSE

IF активное – время [процесс] < (рабочий – период + время – раб – набора)

THEN

IF активное – время [процесс] время – рабочего – набора

THEN

прежний – размер – рабочего – набора —– текущий – размер – рабочего –

набора изменение – рабочего – набора

INCREMENT число – свободных – страниц BY изменение – рабочего – набора

ENDIF

ENDIF циркуляция [процесс]

ENDIF

ENDPROC

5.2. Обработка страничных сбоев.

При обнаружении УУП пре­рывания по сбою страницы для загрузки требуемой страницы вызывается процедура СБОЙ-СТРАНИЦЫ. Поскольку эта страница отсутствует в таблицах трансляции, она, следователь­но, не принадлежит рабочему набору и должна быть загруже­на в память. Размер рабочего набора увеличивается на едини­цу. Значение таймера интервалов сохраняется в рабочем прост­ранстве процесса до того момента, пока страница не будет за­гружена в память. Это значение затем записывается в таймер интервалов, давая возможность процессу завершить свой рабо­чий период.

Процедура предполагает, что страница отсутствует в памя­ти. (В действительности страница может присут­ствовать в памяти в качестве члена предыдущего рабочего на­бора). Процедура ПРОВЕРИТЬ-ТАБЛИЦУ-СТРАНИЦ используется для выяснения того, находится ли страница физи­чески в памяти.

Если УСПЕХ равен единице, то страница находится в памя­ти и располагается в одной из очередей менеджера страниц. Страница извлекается из очереди, добавляется к списку стра­ниц, образующих рабочий набор процесса. Дескриптор страни­цы устанавливается в активное состояние и сохраняется в таб­лице карт процесса. Если страница находилась в списке до­ступных страниц, переменные СЧЕТЧИК-ДОСТУПНЫХ-СТРАНИЦ и СЧЕТЧИК-НАЗНАЧЕННЫХ-СТРАНИЦ увеличиваются на единицу. СЧЕТЧИК-НАЗНАЧЕННЫХ-СТРАНИЦ содержит число реальных страниц, отведенных менеджеру страниц в противоположность страницам, отведенным различным пользовательским процес­сам.

Если УСПЕХ равен нулю, то это означает, что реальная страница отсутствует в памяти. Процедура проверяет, имеются ли еще страницы, отведенные менеджеру страниц. Если таких нет, страница для замены должна быть выбрана из текущего рабочего набора самого процесса.

Процедура ПОГЛОТИТЬ (не описывается) выбирает соответствующую страницу, если выполняющийся процесс (исключая системный) — единствен­ный. В противном случае процесс помещается в очередь для повторной обработки планировщиком, ожидая появления до­ступной страницы, освобожденной другим процессом. Запраши­ваемая страница помещается в очередь на ввод на то время, пока процесс ожидает окончания ее загрузки в память, а соот­ветствующие счетчики модифицируются.

МОДУЛЬ ОБРАБОТКИ СБОЯ СТРАНИЦЫ (Модуль 2).

PROCEDURE сбой–страницы(виртуальная–страница, реальная–страница)

CLEAR успех

INCREMENT текущий–размер–рабочего–набора [процесс]

читать–таймер–интервалов( ) величина–интервала [процесс]

IF реальная–страница = 0

THEN проверить–таблицу–страниц (реальная–страница, виртуальная–страница,

процесс, адрес–очереди) -> успех

ENDIF

IF успех = 1

THEN отделить–дескриптор–страниц (реальная–страница, адрес–очереди,

адрес–дескриптора–страниц)

DECREMENT счетчик–свободных–страниц

IF адрес–очереди = список–доступных–страниц

THEN

DECREMENT счетчик–доступных–страниц

DECREMENT счетчик–назначенных–страниц

ENDIF

добавить–дескриптор–страниц (реальная–страница, список–процессов [процесс],

адрес–дескриптора–страниц)

SET 1 ТО признак–активности [адрес–буфера–динамической–трансляции]

сохранить–карту(виртуальная–страница,адрес–буфера–динамической–трансляции)

ELSE

IF счетчик–назначенных–страниц = 0

THEN

IF счетчик [очередь–на–выполнение] 0

THEN

поглотить (реальная–страница, список–процессов [процесс])

DECREMENT текущий–размер–рабочего–набора

ENDIF

ELSE

деактивизировать(процесс, очередь–на–выполнение)

ENDIF

поставить–в–очередь–на–ввод (процесс, виртуальная–страница)

DECREMENT счетчик–назначенных–страниц

DECREMENT счетчик–свободных–страниц

ENDIF

ENDPROC

5.3. Проверка элементов таблицы страниц.

Эта процедура, при­веденная в модуле 3, просматривает таблицу страниц, проверяя, присутствует ли физически в памяти страница, указан­ная в таблице карт. Возможны два варианта:

1. Если реальная страница соответствует запрашиваемой физической странице и в данный момент содержит идентифи­катор требуемого процесса, то она, следовательно, принадлежит к рабочему набору данного процесса. Переменная УСПЕХ в этом случае устанавливается в единицу.

2. В противном случае страница не принадлежит требуе­мой рабочей области и переменная УСПЕХ устанавливается в нуль.

Процедура, кроме того, проверяет, не находится ли страни­ца в очереди на удаление, являясь тем самым недоступной для любого процесса. Если УСПЕХ равен единице, то вызывающей программе возвращается адрес очереди, в которой находится необходимая реальная страница.

МОДУЛЬ ОБРАБОТКИ ТАБЛИЦ СТРАНИЦ (Модуль 3).

PROCEDURE проверить–таблицу–страниц (реальная–страница,

виртуальная–страница, адрес–очереди успех)

виртуальная–страница виртуальная–страница

адрес–очереди очереди

загрузить–дескриптор–страницы (реальная–страница, адрес–дескриптора–страницы)

IF виpтуaльнaя–cтpаница<мaкcимальное–числo –виpтуальных–cтpаниц [процесс]

THEN

IF статус–страницы (адрес–дескриптора–страницы) = 2

THEN

IF виртуальная–страница—ид–виртуальной–страницы [адрес-дескриптора-стр]

THEN

IF процесс–ид–процесса [адрес–дескриптора–страницы]

THEN

SET I TO успех

ELSE

CLEAR успех

ENDIF

ENDIF

ENDIF

ENDIF

IF успех = I

THEN

IF статус-страницы [адрес-дескриптора-cтpаницы] = 1

THEN

SET список–обменных–страниц TO адрес–очереди

ELSE

SET список–обменных–страниц TO адрес–очереди

ENDIF

ENDIF

ENDPROC

5.4. Постановка страниц в очередь на ввод.

Если страница от­сутствует в памяти, то ее нужно загрузить с устройства страничной памяти. Процедура, инициализирующая дескриптор тре­буемой страницы, приведена в модуле 4. Она анализирует два возможных случая:

1. Если для загрузки виртуальной страницы существует до­ступная физическая страница, то ее дескриптор удаляется из списка доступных страниц и заполняется соответствующей ин­формацией для виртуальной страницы. Запрос помещается в список обменных страниц. При этом признак записи-чтения ус­танавливается в нуль, указывая на то, что данная страница подлежит чтению. Процесс приостанавливается до того момен­та, когда страница станет доступной.

2. Если требуемая физическая страница недоступна, про­цесс помещается в очередь–ожидания–страницы до момента освобож­дения этой физической страницы другим процессом. Система поддерживает информацию о запрошенной странице, сохраняя ее в блоке данных процесса.

В любом случае процедура удаляет первую страницу (если таковая .имеется) из списка обменных страниц и подготавливает ее для записи во “внешнюю память (признак записи-чтения устанавливается в единицу). Эта операция обеспечивает осво­бождение данной страницы системой и добавление ее к списку доступных страниц.

Процедура ПОСТАВИТЬ-В-ОЧЕРЕДЬ-НА-ВВОД вызывает вспомогательную процедуру УДАЛИТЬ–СЛЕДЫ. Эта процедура (не приводится) удаляет всю информацию из дескриптора физической страницы, которая 'могла оставать­ся от таблицы карт другого процесса.

МОДУЛЬ ПОСТАНОВКИ В ОЧЕРЕДЬ НА ВВОД (Модуль 4).

PROCEDURE поставить–в–очередь–на–ввод(процесс, виртуальная–страница)

IF счетчик–назначенных–страниц = 0

THEN удалить–дескриптор–страницы (реальная–страница, список–

доступных–страниц, адрес–дескриптора–страницы)

DECREMENT список–доступных–страниц

ид–процесса (адрес–дескриптора–страницы, процесс) адрес–процесса

ид–виртуальной–страницы [адрес–дескриптора–страницы] ид–вирт–стр

удaлить-следы(ид–виpт–cтp, адрес–процесса)

CLEAR статус-страницы [адрес-дескриптора-стр]

SET виртуальная-стр ТО ид-виртуальной-стр [адрес-дескриптора-стр]

сохр-защиту-записи (виртуальная-стр, процесс) -> защита-

зaпиcи [адрес-дecкpиптopa-cтp]

CLEAR призн-изменения [адрес-дескриптора-стр]

CLEAR счетчик-использ [адрес-дескриптора-стр]

процесс -> ид-процесса [адрес-дескриптора-стр]

сохр-адр-на-диске (виртуальная-стр, процесс) -> диск-

адрес[адрес-дескриптора-стр]

CLEAR призн-запись-чтепие [адрес-дескриптора-стр]

сохр-дескриптор-стр(реальная-стр, адрес-дескриптора-стр)

запрос-к-очереди (реальпая-стр)

приостановить (процесс)

ELSE

деактивизировать (процесс, очер-ожидапия-стр)

SET виртуальная-стр ТО требуемая-вирт-стр[процесс]

ENDIF

IF первая-стр[список-обменных-стр] =0

THEN удалить-дескриптор-стр(реальная-стр, список-обменных-стр,

адрес-дескриптора-стр)

SET 1 ТО призн-запись-чтение[адрес-дескриптора-стр]

сохр-дескриптор-стр(реальная-стр, адрес-дескриптора-стр)

запрос-к-очереди (реальная-стр)

ENDIF

ENDPROC

5.5. Прерывание по обмену со страничной памятью (прерывание по обмену с диском).

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

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

2. Если страница была удалена из памяти, ее дескриптор добавляется к списку доступных страниц, а счетчик доступных страниц увеличивается на единицу. Список–ожидания–страницы про­сматривается для выяснения того, существуют ли еще процес­сы, ожидающие появления доступных страниц. Если такой про­цесс находится, то он удаляется из списка, а необходимая ему виртуальная страница помещается в очередь за ввод.

По окончании операции обмена регистры процесса восста­навливаются и он возобновляет свою работу (модуль 5).

МОДУЛЬ ОБРАБОТКИ ПРЕРЫВАНИЯ ПО ОБМЕНУ С ДИСКОМ (Модуль 5).

PROCEDURE прерывание-по-обмену-с-диском (режим-передачи-стр, яд- страницы, процесс)

сохр-регистры (процесс)

IF режим-передачи-стр-ввода-страницы

THEN

загрузить-дескриптор-страницы (ид-страницы, адрес-дескриптора-стр)

установить-эленент-карты (ид-страницы, адрес-дескриптора-стр)

ид-процесса (адрес-дескриптора-стр) ->адрес-процесса

список-процессов [адрес-процесса] -> текущая-очередь

добавить-процесс(адрес-процесса, очередь-на-вып)

ENDIF

IF режим-передачи-стр = вывод-страницы

THEN дoбaвить-деcкpиnтop-cтp(ид-cтpaнцы, список-доступных-етр,

адрес-дескриптора-стр)

INCREMENT счетчик-доступных-стр

IF начало[список-ожидания-стр] =0

THEN

удалить-процесс(текущ-процесс, список-ожидания-стр)

требуемая-вирт-стр[текущ-процесс] -> ид-вирстр

поставить-в-очер-на-ввод (текущ-процесс, ид-вирстр)

ENDIF

ENDIF

восстановить-регистры (процесс)

ENDPROC

5.6. Вывод процесса из активного состояния (модуль деактивизации).

Как мы уже виде­ли, процесс может быть выведен из активного состояния по не­скольким причинам: при ожидании загрузки страницы, по окончании своего кванта рабочего времени или при перепол­нении своего рабочего набора. Вывод процесса из активного состояния требует от операционной системы выполнения боль­шого количества операций. Все физические страницы, поддер­живаемые системой, должны быть освобождены и помещены в список свободных страниц. Это требует обновления таблицы карт и таблицы страниц процесса. Карта памяти освобождает­ся для назначения ее другому процессу, а ее содержимое копи­руется в блок данных процесса.

Процедура, выполняющая эти операции, приведена в модуле 6. Для модификации размера рабочего набора процедура использует активное время самого процесса. Процедура ОСВОБОДИТЬ-СТРАНИЦУ удаляет каждую страницу рабочего на­бора процесса из таблицы страниц и помещает ее в список до­ступных страниц или список обменных страниц. Процесс уда­ляется из очереди на выполнение и помещается в очередь, ука­занную вызывающей программой. Вектор состояния процесса (т. е. регистры т. д.) сохраняется в БУП, а из очереди на выполнение извлекается следующий процесс и инициализируется. Отметим, что очередь реальных страниц, первоначально назна­ченных “деактивизированному” процессу, присваивается те­перь новому процессу (модуль 6).

МОДУЛЬ ДЕАКТИВИЗАЦИИ (ОШИБКА АДРЕСАЦИИ) (Модуль 6).

PROCEDURE деактивизировать (процесс, адрес-очереди)

активн-время [процесс] -> текущ-активн-вр

CLEAR активн-время [процесс]

список-процессов [процесс] -> текущая-очередь

IF текущ-актквн-вр> = текущ-разм-раб-набора

THEN

IF прежний-разм-раб-набора<текущ-разм-раб-набора[процесс]

THEN

текущ-разм-раб-набора[процесс] -> прежний-разм-раб-набора [процесс]

ENDIF

ENDIF

CLEAR текущ-разм-раб-набора[процесс]

первая-стр (текущая-очередь) -> следующая-сти

WHILE следующая-стр = 0

DO

следующая-стр -> ид-страницы

отделить-дескриптор-стр(ид-страницы, адрес-дескриптора-стр)

освободить-страницу(ид-страницы, адрес-дескриптора-стр)

связь-вперед(адрес-дескриптора-стр) -> следующая-стр

ENDDO

удалить-процесс (процесс, очередь-выполняющихся-проц)

добавить-процесс (процесс, адрес-очереди)

сохранить-вектор-сост (процесс)

выбрать-следующ-проц(процесс, очередь-выполняющихся-проц)

текущая-очередь -> список-процессов [процесс]

загрузить-вектор-сост (процесс)

установить-таймер-интервалов (величина-интервала [процесс] )

ENDPROC

5.7. Освобождение страницы процесса.

Реальная страница, при­надлежащая процессу, может быть освобождена (т.е. изъята у него) по двум причинам: 1) процесс выведен из активного состояния и 2) страница “поглощается”, так как рабочий набор переполнен.

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

МОДУЛЬ ОСВОБОЖДЕНИЯ СТРАНИЦЫ (Модуль 7).

PROCEDURE освободнть-страницу(ид-страницы, адрес-дескриптора-стр)

IF призн-иэменения [адрес-дескриптора-стр] = 1

THEN

добавить-дескриптор-стр(ид-странипы, список-обменных-стр, адрес-дескриптора-стр)

ELSE

добавить-дескриптор-стр (ид-страницы, список-доступн-стр, адрес-деосриптора-стр)

INCREMENT счетчик-доступных-стр

ENDIF

INCREMENT счетчик-назначепных-стр

INCREMENT счетчик-свободных-страниц

ENDPROC

5.8. Менеджер страниц.

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

Каждый раз при своем выполнении менеджер страниц осу­ществляет две операции: 1) обновляет содержимое счетчика использования для каждой страницы из таблицы страниц и 2) активизирует процесс из очереди на выполнение, если в па­мяти имеется достаточно свободного места для размещения его рабочего набора.

Программа, реализующая функции менеджера страниц, при­ведена в модуле 8. Она сканирует таблицу страниц в по­иске тех находящихся в памяти страниц, обращения к которым. не было в течение последних J секунд (т. е. таких, для которых: счетчик -использования больше или равен J). Любая найденная страница, удовлетворяющая этому условию, “отбирается” у владеющего ей процесса. Размер рабочего набора процесса. уменьшается на единицу и страница освобождается. Затем ме­неджер страниц ищет в списке готовых к выполнению такие процессы, чей рабочий набор может быть размещен в памяти. Найденный процесс удаляется из списка, а его статус устанав­ливается в состояние “ожидание–страницы”. Первая страница, необходимая для инициализации выбранного процесса, помеща­ется в очередь на ввод (модуль 8).

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4