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

Ч4_Опишите состав контекста потока и роль его иерархической организации.

Читайте также:
  1. I. Отчет составляется по строго установленной форме с учетом возможности использования вычислительной техники для ее обработки.
  2. III. Изучение геологического строения месторождений и вещественного состава руд
  3. III. Изучение геологического строения месторождений и вещественного состава сырья
  4. III. Составление структурной схемы системы
  5. J составьте пирамиду общения
  6. q в любой форме (например, в виде графической схемы) составить алгоритм решения задачи, например как показано на рисунке 2.4.2;
  7. Автор-составитель: Т.В. Биндель

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

8. Ч4_Как организуются и переупорядочиваются очереди потоков?

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

9. Ч4_Чем различаются вытесняющие и невытесняющие алгоритмы планирования?

Все множество алгоритмов планирования можно разделить на два класса:

· вытесняющие, когда решение о прекращении выполнения потока (процесса) принимает ОС;

· невытесняющие, когда это решение принимается самим потоком, а не ОС, и даже не пользователем.

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

 

10. Ч4_Чем различаются вытесняющие и невытесняющие алгоритмы планирования?

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

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

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

· поток перешел в состояние ожидания;

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

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

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

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


 

11. Ч4_Что такое «приоритет потока» и каким он бывает?

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

12. Ч4_Чем динамические приоритеты потоков отличаются от статических?

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

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

13. Ч4_Опишите схему назначения приоритетов в ОС WindowsNT.

В системе определено 32 уровня приоритетов (с диапазоном значений 0-31) и два класса потоков – потоки с переменными приоритетами (с диапазоном значений 1-15) и потоки РВ (с диапазоном значений 16-31). Приоритет 0 зарезервирован для системных целей [2, 6]. При порождении процесса он в зависимости от класса получает по умолчанию базовый приоритет K в верхней или нижней части диапазона (0-31). На рис.4.2 он обозначен (1). Базовый приоритет процесса позднее может быть повышен или понижен ОС. Все потоки данного процесса первоначально получают базовый приоритет (2) из того же диапазона в интервале [K-2, K+2]. Значит, изменяя базовый приоритет процесса, можно влиять на базовые приоритеты его потоков.

 

 

Именно на основе динамических приоритетов осуществляется планирование потоков. Значение динамического приоритета потока ограничено снизу минимумом его базового приоритета (2), а сверху максимумом приоритета своего класса (рис.4.2). В ОС используются две разновидности приоритетного планирования: обслуживание с относительными и абсолютными приоритетами. При появлении в системе более приоритетного готового к выполнению потока при обслуживании с абсолютными приоритетами выполнение текущего потока прерывается. При обслуживании с относительными приоритетами такого прерывания не происходит. В системах с абсолютными приоритетами время простоя потока в очередях можно свести к минимуму, назначив ему самый высокий допустимый приоритет.

 

14. Ч4_Опишите смешанный алгоритм планирования в ОС WindowsNT.

В основе планирования лежит квантование, но величина кванта и/или порядок выбора потока из очереди готовых определяется приоритетами потоков. Именно так организовано планирование в ОС Windows NT, где квантование сочетается с динамическими абсолютными приоритетами. На выполнение выбирается поток с наивысшим приоритетом и получает квант. Появившийся более приоритетный поток вытесняет выполняемый. Вытесненный поток возвращается в очередь готовых, причем становитсявпереди всех остальных, имеющих равный приоритет.

15. Ч4_Опишите смешанный алгоритм планирования в ОС UNIXSystemVRelease 4.

В ОС UNIX System V Release 4.2, где вообще отсутствуют потоки и поддерживается вытесняющая многозадачность, основанная приоритетах и квантовании. Здесь процесс может относиться к одному из классов: РВ или РДВ, причем процессы РДВ делятся на пользовательские и системные. Назначение и обработка приоритетов выполняются для процессов разных классов по-разному. Процессы системные РДВ, зарезервированные для ядра, используют стратегию фиксированных приоритетов. Их значения задаются ядром и никогда не изменяются. Процессы РВ также имеют фиксированные приоритеты, но пользователь может изменять их значения. По умолчанию новый процесс становится пользовательским РДВ. Для справедливого распределения процессора между процессами этого класса используется стратегия динамических приоритетов.

16. Ч4_Опишите смешанный алгоритм планирования в OS/2.

Планирование в ОС OS/2 также основано на использовании квантования и абсолютных динамических приоритетов [12-14]. Все потоки разделены на 4 класса (по убыванию приоритета):

· критический (time critical). Например, системные потоки, решающие задачи управления сетью;

· серверный (server) – потоки, обслуживающие серверные приложения;

· стандартный (regular) – потоки обычных приложений;

· остаточный (idle) – наименее важные. Например, это поток, выводящий на экран заставку, когда в системе не выполняется никакой работы.

17. Ч4_Опишите схему изменения приоритетов потоков и величины квантов при планировании в OS/2.

Приоритеты потоков могут изменяться планировщиком OS/2 в следующих случаях:

· если поток находится в состоянии готовности дольше, чем это задано системной переменной MAXWAIT, то OS/2 увеличит уровень его приоритета. При этом результирующее значение приоритета не должно переводить данный поток в критический класс;

· если поток начинает операцию ввода-вывода, то после ее завершения он получит наивысшее значение приоритета своего класса;

· при активизации потока его приоритет автоматически повышается.

OS/2 динамически устанавливает и величину кванта потока в зависимости от степени загрузки системы и интенсивности подкачки. Средства настройки параметров OS/2 позволяют пользователю явно задать границы изменения кванта командой TIMESLICE=a, b (где a-b – задаваемый диапазон в пределах 32-65536 мс, по умолчанию 32-246 мс). Если поток был прерван до истечения кванта, то следующий квант его выполнения будет увеличен на 32 мс (один период таймера) и так много раз до тех пор, пока не будет достигнуто установленное значение b. Это позволяет уменьшить накладные расходы на переключение потоков, если в ВС несколько потоков одновременно ведут длительные вычисления.

Благодаря такому алгоритму планирования в OS/2 ни один поток не будет «забыт» системой и получит достаточно процессорного времени.

18. Ч4_Перечислите события, требующие перераспределения процессорного времени и поясните действия планировщика ОС в каждом случае.

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

1) прерывание от таймера – конец кванта. Планировщик ОС переводит задачу (поток) в состояние готовности и выполняет перепланировку;

2) активная задача выполнила системный вызов – запрос на ввод-вывод или на доступ к ресурсу (например, файлу), который в настоящий момент времени занят. Планировщик переводит задачу в состояние ожидания и выполняет перепланировку;

3) активная задача 1 выполнила системный вызов, связанный с освобождением ресурса. Планировщик проверяет, не ожидает ли этот ресурс задача 2. Если да, то она получает ресурс и переводится в состояние готовности (если она не ожидает еще и другие ресурсы). При этом, возможно, что задача 2 имела приоритет выше, чем задача 1. После перепланировки более приоритетная задача 2 активизируется, вытесняя текущую задачу 1;

4) внешнее аппаратное прерывание, сигнализирующее о завершении УВВ операции ввода-вывода. Планировщик переводит соответствующую задачу в очередь готовых и выполняет перепланировку;

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

 

 

19. Ч4_Опишите моменты перепланировки в среде ОС РВ.

При возникновении каждого из этих событий планировщик ОС просматривает очереди задач и решает, какая задача будет выполняться следующей. Кроме отмеченных, существует и ряд других событий, часто связанных с системными вызовами, требующих перепланировки. Например, запросы приложений и пользователей на создание новой задачи или повышение приоритета уже существующей создают новую ситуацию, требующую пересмотра очередей и переключения процессора. В системах РВ для отработки статического расписания планировщик активизируется по прерываниям от таймера, возникающим через короткие постоянные интервалы времени (около 32 мс). После каждого прерывания планировщик просматривает расписание и проверяет, не пора ли переключить задачи. Кроме прерывания от таймера в системах РВ перепланировка задач может происходить по прерываниям от внешних устройств – различного вида датчиков и исполнительных механизмов [2].

20. Ч4_Какие дополнительные организационные трудности для ОС создают прерывания?

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

 

21. Ч4_Как осуществляются диспетчеризация и учет приоритетов прерываний в ОС?

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

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

22. Ч4_Как работает диспетчер прерываний?

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

23. Ч4_Как соотносятся приоритеты обработчиков прерываний и приоритеты потоков?

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


 

24. Ч4_Как согласуется диспетчеризация прерываний с диспетчеризацией потоков?

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

25. Ч4_Как организована диспетчеризация системных вызовов?

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

 


Дата добавления: 2015-12-08; просмотров: 117 | Нарушение авторских прав



mybiblioteka.su - 2015-2024 год. (0.011 сек.)