Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Теория очереди сообщений



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

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

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


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

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

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

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

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

Алгоритмы планирования процессов

Планирование процессов включает в себя решение следующих задач:

· определение момента времени для смены выполняемого процесса;

· выбор процесса на выполнение из очереди готовых процессов;

· переключение контекстов "старого" и "нового" процессов.

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

В соответствии с алгоритмами, основанными на квантовании, смена активного процесса происходит, если:

· процесс завершился и покинул систему,

· произошла ошибка,

· процесс перешел в состояние ОЖИДАНИЕ,

· исчерпан квант процессорного времени, отведенный данному процессу.

Процесс, который исчерпал свой квант, переводится в состояние ГОТОВНОСТЬ и ожидает, когда ему будет предоставлен новый квант процессорного времени, а на выполнение в соответствии с определенным правилом выбирается новый процесс из очереди готовых. Таким образом, ни один процесс не занимает процессор надолго, поэтому квантование широко используется в системах разделения времени. Граф состояний процесса, изображенный на рисунке 2.1, соответствует алгоритму планирования, основанному на квантовании.

Рис. 2.1. Граф состояний процесса в многозадачной среде

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

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

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

Существует две разновидности приоритетных алгоритмов: алгоритмы, использующие относительные приоритеты, и алгоритмы, использующие абсолютные приоритеты.

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

Рис. 2.2. Графы состояний процессов в системах
(а) с относительными приоритетами; (б) с абсолютными приоритетами

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

ВЫПОЛНЕНИЕ- активное состояние процесса, во время которого процесс обладает всеми необходимыми ресурсами и непосредственно выполняется процессором;

ОЖИДАНИЕ- пассивное состояние процесса, процесс заблокирован, он не может выполняться по своим внутренним причинам, он ждет осуществления некоторого события, например, завершения операции ввода-вывода, получения сообщения от другого процесса, освобождения какого-либо необходимого ему ресурса;

ГОТОВНОСТЬ - также пассивное состояние процесса, но в этом случае процесс заблокирован в связи с внешними по отношению к нему обстоятельствами: процесс имеет все требуемые для него ресурсы, он готов выполняться, однако процессор занят выполнением другого процесса.

 

19.Опишите общие принципы построения планирования. Расскажите приоритеты процессов.

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

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

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

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

Независимо от экономической системы плакирование обычно разделяют по срокам выполнения намечаемых задач на

долгосрочное (более трех лет)

среднесрочное (1...3 года)

краткосрочное (недели месяцы)

В зависимости от содержания (широты, направлений деятельности и значимости) решаемых вопросов планирование разделяют на

генеральное

стратегическое

оперативное (текущее, регулярное)

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

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

По содержанию учитываемых факторов стратегическое планирование можно разделить на два вида:

бизнес-планирование

производственно-экономическое планирование

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

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

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

планирование: работ по конкретному объекту или комплексу объектов (по всей строй площадке)

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

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

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

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

 

 

Приоритеты процессов

Часть ОС, называемая системным планировщиком (system scheduler), управляет переключением заданий, определяя, какому из конкурирующих потоков следует выделить следующий квант времени процессора. Решение принимается с учетом приоритетов конкурирующих потоков. Множество приоритетов, определенных в ОС для потоков, занимает диапазон от 0 (низший приоритет) до 31 (высший приоритет). Нулевой уровень приоритета система присваивает особому потоку обнуления свободных страниц. Он работает при отсутствии других потоков, требующих внимания со стороны ОС. Ни один поток, кроме него, не может иметь нулевой уровень. Приоритет каждого потока определяется в два этапа исходя из:

класса приоритета процесса, в контексте которого выполняется поток, О уровня приоритета потока внутри класса приоритета потока.

Комбинация этих параметров определяет базовый приоритет (base priority) потока. Существует шесть классов приоритетов для процессов:

IDLE_PRIORITY_CLASS,

BELOW_NORMAL_PRIORITY_CLASS,

NORMAL__PRIORITY_CLASS,

ABOVE_NORMAL_PRIORITY_CLASS,

HIGH_PRIORITY_CLASS,

REALTIME_PRIORITY_CLASS

Два класса (BELOW... и ABOVE...) появились начиная с Windows NT 5.0. По умолчанию процесс получает класс приоритета NORMAL_PRIORITY__CLASS. Программист может задать класс приоритета создаваемому им процессу, указав его в качестве одного из параметров функции CreateProcess. Кроме того, существует возможность динамически, во время выполнения потока, изменять класс приоритета процесса с помощью API-функции SetPriorityClass. Выяснить класс приоритета какого-либо процесса можно с помощью API-функции GetPriorityClass.

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

Если вы пишете драйвер какого-либо устройства, используя API-функции из набора DDK (Device Driver Kit), то ваш процесс может иметь класс REALTIME... С осторожностью следует использовать класс HIGH_PRIORITY_CLASS, так как если поток процесса этого класса подолгу занимает процессор, то другие потоки не имеют шанса получить свой квант времени. Если несколько потоков имеют высокий приоритет, то эффективность работы каждого из них, а также всей системы резко падает. Этот класс зарезервирован для реакций на события, критичные ко времени их обработки. Обычно с помощью функции SetPriorityClass процессу временно присваивают значение HIGH..., затем, после завершения критической секции кода, его снижают. Применяется и другая стратегия: создается процесс с высоким классом приоритета и тотчас же блокируется — погружается в сон с помощью функции Sleep. При возникновении критической ситуации поток или потоки этого процесса пробуждаются только на то время, которое необходимо для обработки события.

 

 

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.