Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OS.docx
Скачиваний:
21
Добавлен:
21.04.2019
Размер:
68.14 Кб
Скачать
  1. Функции cp. Распределение времени между вм

Любая ос имеет своей целью обеспечить мультипрограммирование (многопоточность)

|_____ __ __

|вм1 |CP|вм2|

|____ |__|___|____

вм1 - VA1

вм2 - VA2

смена контекста вм - смена регистров общего назначения, регистров с плавающей точкой?, управляющих регистров

вирт адресное пространство

смена контекста - накладные расходы

В системе имеется 5 очередей

Q1, Q2, Q3, E1, E2

Очереди Qx - очереди вм, которые CP рассматривает как претенденты на реальный процессор

Ex - очереди подходящих вм, которые хотят получить процессор, но CP в ближайшее время им предоставлять не планирует

помещение вм в ту или иную очередь, а также перемещение между очередями осуществляет планировщик CP.

Предоставление процессора вм, находящихся в очередях Qx, осуществляет диспетчер CP

При первоначальном запросе на реальный процессор, вм помещается в очередь Q1. Она будет находиться в ней (в Q1) до тех пор, пока все потребности вм не будут выполнены

или же пока не будет превышено установленное число раз n1 предоставление реального процессора(порядка 6 раз). При этом она перемещается в очередь Q2

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

Вм в очереди Q2 выполняется так же не более чем установленного числа раз n2

n2 обычно > n1. Кроме того, вм из очереди Q2 реальный процессор предоставляется на время, равное нескольким квантам, но более редко по сравнению с вм из Q1

Если n2 превышено, то вм перемещается в очередь Q3

Q2/Q1 = Q3/Q2

Очередь Q1 - очередь диалоговых вм, Q2 - не диалоговых вм, Q3 - пакетные вм (длительная обработка)

Если вм, находящаяся в Q2/Q3 выполняет операцию на пульте управления, то она перемещается в Q1

Для каждой вм CP вычисляет величину рабочего набора. Эта величина численно равна объему памяти использованному этой вм за некоторое время

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

с размером области реальной памяти, доступной для распределения планировщик может уменьшить величину

суммарного рабочего набора путем перевода некоторых вм в очереди Ex

Это делается для снижения накладных расходов на страничный обмен

( В зависимости от количества вм в очередях они выполняются )

  1. Функции cp. Управление реальной памятью

| памяти может быть не меньше 16 МБ | 16 M |

|-------------------------------------------------+----------|

| TRACE | ~ 15.8 M |

| Область трассировки | |

| используется для отслеживания работы CP | |

| каждое событие в работе CP отражается записью | |

| в области трассировки. При переполнении области | |

| происходит ее заполнение сначала. Указатель на | |

| следующую свободную запись храниться где то | |

| в нулевой странице | |

| Нужна что бы понять что делал CP до аварийного | |

| завершения | |

|-------------------------------------------------+----------|

| DPA | ~ 2 M |

| динамическая страничная область | |

| используется для размещения страниц вирт | |

| адресных пространств как самого CP, так | |

| и всех вм. С размером этой области планировщик | |

| сравнивает суммарный рабочий набор | |

|-------------------------------------------------+----------|

| FREE | ~ 500 K |

| "свободная область" | |

| область, в которой динамически создаются | |

| модифицируются и уничтожаются различные | |

| управляющие структуры вм | |

| ( где хранятся идентификаторы вм ... ) | |

| выделяется память для канальных программ | |

| все запросы CP к памяти | |

|-------------------------------------------------+----------|

| Нестраничная часть ядра | 4 K |

| предназначена для хранения | |

| тех программ CP, которые обязаны | |

| присутствовать в памяти всегда | |

| обработчики прерываний, программы в/в | |

| страничного обмена, планировщик и диспетчер | |

|-------------------------------------------------+----------|

| PSA | |

| нулевая страница оп | 0 K |

Об отсутствии в области DPA той или иной страницы памяти вм CP узнает при помощи прерываний по особому случаю использования страницы или сегмента

Обрабатывая это прерывание, CP должен сделать требуемую страницу доступной, поместив ее в область DPA.

( первое обращение к странице. CP находит в области DPA пустую страницу, если нет - освобождает страницу

страница уже использовалась, но ее нет в DPA. Значит она в "файле подкачки". Очищает страницу и записывает туда эту страницу )

При отсутствии страницы в области DPA возможны 2 случая

1) эта страница раннее не использовалась вм

должна быть предоставлена пустая страница

( пустая - что бы защитить данные от другой вм )

2) запрашиваемая страница ранее использовалась этой вм

в этом случае эта страница должна быть считанна из области страничного обмена и помещена в область DPA

3) О обоих случаях может потребоваться освобождение страницы из области DPA

CP реализует стратегию замещения страниц основанную на выборе длительного времени не использовавшейся страницы

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

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

виртуальных адресных пространств

В противном случае накладные расходы на страничный обмен могут стать недопустимо велики.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]