Главная страница Случайная лекция Мы поможем в написании ваших работ! Порталы: БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика Мы поможем в написании ваших работ! |
Дескрипторы процессовПроцесс - это по своей сути абстракция, введенная для лучшего восприятия работы системы, для построения механизмов ОС на едином концептуальном базисе. Любому процессу, несмотря на абстрактную природу, присущи две вполне «осязаемые» части: программа, по которой будет развиваться процесс в активном состоянии, и дескриптор процесса, представляющий собой информацилнную структуру, в которой сосредоточена управляющая информация, необходимая и достаточная для системы управления процессом. Процесс - это динамичный объект, который может изменять свои состояния и способен по мере своего развития запрашивать, использовать и освобождать ресурсы. Динамика изменений состояний, а также связей с ресурсами обусловливает динамический характер информации, состредоточенный в дескрипторе любого процесса. В той или иной степени в дескрипторе отражены классификационные признаки процессов. Прежде всего отражны динамически изменяемые связи с другими процессами. Все процессы, находящиеся в текущей связи в одном и том же состоянии, объединены через дескрипторы в одну цепочку (прошиваются через дескрипторы) и образуют списковую структуру. Такой прием проводят с дескрипторами тех процессов, которые ожидают доступа к одному и томе же ресурсу. В таком случае прошивку, как правило, осуществляют в соответсвии с приоритетами на право использовать ресурс. Дескрипторы прошиваются также для отображения «родственных» связей между процессами. Несомненно одна из главенствующих ссылок, хранящихся в дескрипторе - это ссылка на область памяти, в которой будет использоваться программа при нахождении процесса в активном состоянии. Таким образом, информацию, которая находится в дескрипторе, можно разделить на несколько групп по функциональному назначению: · информация по идентификациисодержит уникальное имя процесса для реализации операций управления над процессами как над поименованными объектами; · информация о ресурсахсодержит информацию о ресурсах, которые затребованы или используются процессом в настоящее времы; · информация о состоянии процессасодержит информацию о текущем состоянии процесса, позволяющую определить текущее состояние и возможность перехода на следующее. · информация о родственных связяхиспользуется для корректного окончания процессов, связанных родственными связями, передачи для совместного или автономного использования некоторых ресурсов, для установления информационных связей. · информация, необходимая для учета и планирования процессов, содержит адресные ссылки на другие процессы в случае, если процесс находится в каких-то очередях, приоритет или место в соответсвующей очереди, ссылки на информацию для организации доступа к внешним данным по отношению к процессу, ссылки на средства синхронизации между процессами и т.д. В ОС UNIX процесс представлен, во-первых, областью данных пользователя, которая в момент существования процесса может быть выделена в ОП и хранить данные и программу пользователя либо находится во ВП, если процесс подвергнут свопингу - временно вытеснен из ОП. Во-вторых, процесс представлен дескриптором процесса. Дескрипторы объединены в таблицу процессов. Из каждого дескриптора есть ссылка на таблицу пользователя, которую еще называют контекст процесса. Каждая таблица пользователя - это продолжение дескриптора. В этой таблице хранится менее актуальная информация, чем в таблице процессов. Таблицы отличаются еще и тем, что таблица процессов постоянно находится в ОП в известном месте и размер ее фиксирован, а таблица пользователя требуется системе только в том случае, когда процесс находится в активном состоянии. Поэтому эта таблица, являясь частью области данных процесса, м.б. перемещена при необходимости во ВП, когда процесс находится в состоянии, отличном от активного. В данном случае она становится недоступной для модификации. В таблице пользователя сосредоточена текущая информация, ориенированная в основном на организацию работы процесса с внешними данными (файлами). Это, по сути, программный интерфейс процесса с файловой системой. Каждый дескриптор в таблице процессов резервируется при порождении процесса и освобождается при его завершении. Здесь содержится статусная информация о процессе, которая необходима независимо от того, находится ли процесс в ОП или выгружен (подвержен свопингу). В частности, здесь содержатся адресные ссылки на область памяти, где располагается «образ процесса»: данные и программа. Кроме того, здесь содержится адресная ссылка на область внешней памяти, куда вытесняется процесс в результате свопинга. В дескрипторе содержится информация, необходимая для синхронизации процессов. Здесь же содержатся идентификаторы процесса, а также породившего его процесса. Схема работы краткосрочного планировщика Реализация краткосрочного планировщика - это подсистема управления задачами(процессами). Она состоит из отдельных программных единиц, исполнение которых реализуется в форме параллельных взаимодейтсвующих процессов. Долгосрочный Обработчик планировщик прерываний
Супревизор задач Супервизор Супервизор Очередь связей памяти готовности Диспетчер Супервизор Очередь задач таймера ожидания
Остальные управляющие программы
Супервизор задач - системная программа, выполняющая функции по управлению процессами. В ее состав входит супервизор связей, осуществляющий функции по созданию, уничтожению и переводу задач из состояния в состояние, поддерживает синхронизация параллельных процессов. Супервизор памяти обеспечивает распределение ОП, а супервизор таймера управляет обращениями к интервальному таймеру по требованию параллельных задач. В ОС UNIX функции краткосрочного планировщика выполняет одна из двух секций ядра ОС. Эта секция по назначению является центральной. Она программно реализрвана на языке СИ. Основные функции, выполняемый секцией: резервирование ресурсов, определение последовательности выполнения процессов, принятие запросов на обслуживание. Распределение процессора производится на приоритетной основе. Причем система берет на себя функции динамического изменения приоритетов в зависимости от текущих характеристик процессов. Оценка текущего приоритета основана на оценке отношения времени, которое уже использовано процессом к моменту текущего назначения приоритета, к прогнозируемому времени работы ВС, которое требуется процессу для исполнения. Чем меньшн значение подсчитанного отношения, тем большим должен быть приоритет. Поэтому процессы, программы которых были недавно загружены, но работающие с момента загрузки малое время (например, из-за ожидания ввода-вывода), будут иметь относительно высокий приоритет. Перераспределение приоритетов на основе указанной зависимости происходит детерминировано с дискретностью один раз в секунду. Этот период перепланирования называется квантом мультиплексирования процессора, т.к. после очередного перераспределения приоритетов производится переключение процессора. Он отдается процессу, имеющему в текущий момент врмени самый высокий приоритет. Данный алгоритм динамического назначения приоритетов обладает полезной отрицательной обратной связью. Если процесс обладает высоким приоритетом и далее пытается монополизировать процессор (затратил много времени на предыдущем интервале мультиплектирования), то его приоритет снизится. Если же процесс с низким приоритетом длительное время игнорируется, то его приоритет повысится. При данном алгоритме в выгодном положении оказываются интерактивные процессы, так как у них указанное соотношение будет невелико. Как и в других ОС, приоритеты системным процессам назначаются более высокими, чем пользовательским процессам. В диспетчерские функции первой секции ядра ОС UNIX входит помимо прочего организация свопинга процессов. Специальный процесс ядра отслеживает распределение ОП для процессов, находящихся в состоянии готовности. Если места в ОП для размещения всех атрибутов процесса недостаточно, то ему м.б. выделена часть ВП. Такой процесс пересылается процессом-свопингом в контролируемое им место ВП, с тем, чтобы былп возможность при активации процесса вновь переместить вытесненный процесс в предварительно отведенное место ОП. Возможно, что для размещения процесса в ОП процессу-свопингу придется переместить на уровень ВП один или несколько процессов, находящихся в состоянии ожидания или готовности. При этом среди кандадатов на вытеснение учитывается как время их пребывания в ОП, так и размер занимаемой области памяти. Первая секция ядра ОС UNIX содержит средства для порождения и уничтожения процессов, перевода их из состояния в состояние.
Дата добавления: 2014-11-24; просмотров: 447; Нарушение авторских прав Мы поможем в написании ваших работ! |