Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы построения операционных систем.doc
Скачиваний:
50
Добавлен:
07.11.2018
Размер:
5.07 Mб
Скачать

3.4.4. Освобождение страниц

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

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

Включение команд освобождения страниц в прикладные программы пользователя может значительно замедлить их разработку.

3.4.5. Размер страниц

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

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

2. При крупных размерах страниц в первичную память при подкачке попадают большие объемы информации, которая, вообще говоря, может и не понадобиться. Это указывает на необходимость уменьшения размеров страниц.

3. Поскольку обмены данными с дисковой памятью занимают относительно много времени, мы хотим свести к минимуму число обменов, которые будут производиться для программы во время ее выполнения. Это указывает, по-видимому, на необходимость увеличения размеров страниц.

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

5. Поскольку блоки процедур и данных редко представляют целое число страниц, в системах со страничной организацией наблюдается внутренняя фрагментация. Чем меньше размер страницы, тем меньше потери из-за внутренней фрагментации.

В большинстве существующих операционных систем размер страницы установлен в 256 четырехбайтных слов.

4. Управление процессами

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

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