Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Тема 4 Управление памятью в операционных системах



План

1. Управление оперативной памятью

2. Планирование

Решение следующих задач:

- распределение физической памяти ОЗУ между процессами

- программная поддержка виртуальной памяти

- подкачка (свопинг)

- защита памяти

Конкретные алгоритмы зависят от свойств конкретной ЭВМ. Для модельной ЭВМ будем рассматривать страничную организацию ОЗУ. Пусть имеется ОЗУ, включающее до N физических страниц. Система команд машины позволяет адресовать до k страниц. Рассмотрим пример частичных действий модельно ОС по управлению ОП.

Каждая строка ТС содержит информацию о статусе соответствующей физической страницы:

- свободна

- принадлежит j-му процессу (в этом случае в строке помещается ссылка на контекст соответствующего процесса)

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

При поступлении процесса в БОП заполняется ТСП. В начальный момент из описателей процесса, сформированных на этапе обработки в БВП выбирается список виртуальных страниц, который размещается в ТСП. Затем ОС анализирует содержимое ТС и «приписывает» виртуальным страницам их физические эквиваленты (при этом идет загрузка содержимого соответствующих виртуальных страниц из внешней памяти в физические страницы ОЗУ).

Для виртуальных страниц процесса, которым не были выделены физические страницы, в ТСП устанавливается признак отсутствия физической страницы (этот признак, также будет проставлен во все строки таблицы, соответствующие виртуальным страницам, не используемым процессом). Формируется содержимое таблицы «откаченных» страниц процесса ТОСП (указывается номер виртуальной страницы и ее месторасположение во внешней памяти).

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

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

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

- планирование очереди процессов на начало обработки процессором;

- планирование распределения времени ЦП между обрабатываемыми в мультипрограммном режиме процессами;

- планирование порядка обработки заказов на обмен с ВУ;

- планирование порядка обработки прерываний;

- планирование использования ОЗУ (организация свопинга).

В целом, комплексное решение задач планирования в ОС определяет основные эксплуатационные качества каждой конкретной системы. Рассмотрим типовые задачи планирования и модельные решения этих задач.

При планировании очереди процессов на начало обработки ЦП могут применятся как примитивные стратегии организации очереди FIFO, так и стратегии, учитывающие не только порядок поступления в очередь, но и объем ресурсов, продекламированных процессами для использования. В общем случае очередь процессов в БВП может предоставляться как объединение подочередей, где каждая подочередь включает в себя определенные классы процессов (например, такая классификация может строится на объеме запрашиваемых ресурсов и/или типе процесса). При этом возможно определение приоритета каждой из очередей (сначала рассматриваются непустые очереди с наименьшим приоритетом).

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

Рассмотри следующую модельную ситуацию. Пусть имеется пакет программ - некоторая совокупность программ, обладающих общим свойством – для выполнения каждой из программ необходимо значительное время работы ЦП. Необходимо обработать все программы пакета за минимальное время. Для этой цели используются специализированные пакетные ОС. Для данных ОС не является важным порядок в котором будут выполнены программы пакета и время за которое была выполнена та или иная программа пакета. Критерием эффективности пакетной ОС является минимизация времени, затраченного на выполнение всего пакета за счет минимизации, в свою очередь, непроизводительной работы ЦП. Основной задачей системы планирования пакетной ОС является максимальная загрузка процессора мультипрограммным выполнением программ/процессов пользователей. В частности, должны быть минимизировано время работы ОС. Это достигается за счет стратегии планирования, основанной на переключении выполнения одной программы/процесса на другую только в одном из следующих случаев: завершение выполнения программы/процесса; возникновение при выполнении программы/процесса прерывания (например, обращение к ВУ); фиксация операционной системой факта зацикливания процесса.

Очевидно, что при подобной организации планирования соотношение времени работы процессора, затраченного на выполнение программ пользователей к времени, затраченному на выполнение функций ОС будет максимально.

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

Мы можем видеть, что стратегия планирования пакетной ОС может быть сведена к стратегии ОС разделения времени (если считать размер кванта времени ЦП, выделяемого процессам при пакетной обработке равным бесконечности).

Характеристики конкретной системы разделения времени зависят от деталей стратегии распределения квантов ЦП, их величины, критериев выбора очередного процесса для выполнения.

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

 


Поделиться:



Последнее изменение этой страницы: 2019-05-08; Просмотров: 197; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.012 с.)
Главная | Случайная страница | Обратная связь