1.
1
2. Тема 3. Управление процессами
2
3. Процесс (или по-другому, задача) — абстракция, описывающая выполняющуюся программу или часть программы. Для операционной
Процесс (или по-другому, задача) абстракция, описывающая
выполняющуюся программу или
часть программы.
Для операционной системы
процесс представляет собой
единицу работы, заявку на
потребление системных ресурсов.
3
4. Процесс
• Процесс –
– Это программа в состоянии выполнения
– Некоторый объект, который выполняется на
процессоре
По сути своей все ПО, которые работает под
управлением ОС на нашем ПК, даже включая
иногда и саму ОС организованно в виде
множества процессов. Процессы это
минимальный примитив, который позволяет
организовать некоторую многозадачность.
• Как исполняемый объект, процесс позволяет
параллельное выполнение нескольких программ в
системе (ЦП переключается между программами)
• Все ПО, работающее на компьютере, включая
саму ОС, организованно в виде множества
4
процессов.
5. Мультизадачность
• Способ организации вычислительного
процесса, при котором на одном
процессоре попеременно выполняется
сразу несколько программ.
• Общее время выполнения
сокращается, хотя время выполнения
самих процессов обычно
увеличивается.
5
6.
При работе системы
запускается
множество
процессов,
о
которых
пользователь зачастую не
подозревает.
Например:
6
7.
Запущен процесс, ожидающий входящей
электронной почты;
Другой процесс — антивирусная программа
выполняет
периодическую
проверку
доступности определений новых вирусов;
Запущены
процесс,
инициированный
пользователем,
сброс
пользовательских
фотографий на USB-накопитель;
Одновременно пользователь через браузер
просматривает Интернет.
7
8.
Всей этой работой
нужно управлять, и для
этого требуется
многозадачная система,
поддерживающая работу
нескольких процессов.
8
9.
9
10.
В
любой
многозадачной
системе
центральный
процессор
быстро
переключается
между
процессами,
предоставляя каждому из них десятки или
сотни миллисекунд.
10
11.
При этом хотя в каждый конкретный момент
времени центральный процессор работает только
с одним процессом, в течение 1 секунды он
может успеть поработать с несколькими из них,
создавая иллюзию параллельной работы.
11
12.
Пример по аналогии.
Представим себе программиста, решившего заняться кулинарией и испечь
пирог на день рождения дочери. У него есть рецепт пирога, а на кухне есть все
ингредиенты: мука, яйца, сахар, и т. д. В данной аналогии рецепт — это
программа (то есть алгоритм, выраженный в некой удобной форме записи),
программист — это центральный процессор, а ингредиенты пирога — это
входные данные. Процесс — это действия, состоящие из чтения рецепта нашим
кулинаром, выбора ингредиентов и выпечки пирога. Теперь представим, что на
кухню вбегает сын программиста и кричит, что его ужалила пчела. Программист
записывает, на каком месте рецепта он остановился (сохраняется состояние
текущего процесса), достает книгу советов по оказанию первой помощи и
приступает к выполнению изложенных в ней инструкций. Перед нами процессор,
переключенный с одного процесса (выпечки) на другой процесс, имеющий более
высокую степень приоритета (оказание медицинской помощи), и у каждого из
процессов есть своя программа (рецепт против справочника по оказанию первой
помощи). После извлечения пчелиного жала программист возвращается к пирогу,
продолжая выполнять действия с того места, на котором остановился. Ключевая
идея здесь в том, что процесс — это своего рода действия. У него есть программа,
входные и выходные данные и состояние.
12
13.
13
14. Процесс – это
Выполняемый код в ОП
Область данных в ОП
Ресурсы
• Файлы
• Другие программы
• Прочие ресурсы
Служебная информация
14
15.
ОС ведет некоторый список процессов
Таблица процессов – на каждый
процесс приходится одна запись в этой
таблице;
Для каждого процесса нужна некая
структура данных, которая содержала
бы в себе все то, что относится к
процессу (некий контекст). Для этого в
ОС в используется
Блок управления процессом
(Process Control Block – PCB) –
который описывает свой процесс,
которому он принадлежит и его текущее
состояние
15
16.
Блок управления процессом (Process Control
Block – PCB).
Данный блок постоянного размера для любого процесса в ОС.
Содержит всю информацию, необходимую для выполнения над
процессом любых действий (приостановки, последующего
восстановления процесса, выгрузки на диск и загрузки с
диска):
Идентификаторы процесса или Номер процесса (так
называемый PID — Process IDentificator)
Информация о пользователе
Состояние процесса
Приоритет которым обладает данные процесс (информация
для планировщика)
Привилегии – доступ к памяти, допустимые инструкции
Информация о виртуальной памяти, присвоенной процессу
Статистическая информация и ограничения (ограничения по
времени выполнения, статистика о затраченном времени ЦП)
Вв/выв – владение ресурсами, открытые файлы, выделенные
устройства.
16
17.
Диспетчер – отправляет процессы на
выполнение, выделяет время ЦП и
переключает ЦП с одного процесса на
другой.
В любой момент времени любой процесс
может находиться в каком-либо состоянии:
Выполнение
Готовность к выполнению
Ожидание освобождения ресурса
Ожидание завершения операции вв/выв.
17
18.
• На протяжении существования процесса его
выполнение может быть многократно
прервано и продолжено.
18
19. Фоновые процессы
Во время работы операционной системы
создаются, как правило, несколько процессов.
Некоторые из них представляют собой
высокоприоритетные
процессы,
то
есть
процессы,
взаимодействующие
с
пользователями и выполняющие для них
определенную работу. Остальные являются
фоновыми процессами, не связанными с
конкретными
пользователями,
но
выполняющими ряд специфических функций.
19
20. Фоновые процессы
Например, фоновый процесс, который может
быть создан для приема входящих сообщений
электронной почты, основную часть времени
проводит в спящем режиме, активизируясь
только по мере появления писем.
Другой фоновый процесс, который может быть
создан для приема входящих запросов на вебстраницы,
размещенные
на
машине,
просыпается при поступлении запроса с целью
его обслуживания.
20
21. Фоновые процессы
Фоновые процессы, предназначенные для
обработки какой-либо активной деятельности,
связанной, например, с электронной почтой, вебстраницами, новостями, выводом информации
на печать и т. д., называются демонами. Обычно
у больших систем насчитываются десятки
демонов.
21
22. Создание процессов
1. Инициализация системы.
2. Выполнение работающим процессом
системного вызова, предназначенного для
создания процесса.
3. Запрос пользователя на создание нового
процесса..
22
23.
а
Вычисления
А
А
В
А
Ввод-вывод
В
В
б
Вычисления
Ввод-вывод
Готовность
(ожидание
процесса)
А
B
А
B
B
А
A
B
B
Время выполнения 2-х задач: в однопрограммной системе (а), в
мультипрограммной системе(б)
24. Состояния процесса
24
25. Состояния процесса
процесса;
— активное состояние
— пассивное состояние процесса,
процесс заблокирован;
— также пассивное состояние
процесса.
25
26. Выполнение — активное состояние процесса, во время которого процесс обладает всеми необходимыми ресурсами и выполняется
Состояния процесса
— активное состояние
процесса, во время которого процесс
обладает всеми необходимыми ресурсами
и выполняется процессором.
26
27. Ожидание — процесс заблокирован, он не может выполняться по своим внутренним причинам, он ждет осуществления некоторого
Состояния процесса
— процесс заблокирован, он не
может выполняться по своим внутренним
причинам,
он
ждет
осуществления
некоторого события, например: завершения
операции
ввода-вывода,
получения
сообщения
от
другого
процесса,
освобождения какого-либо необходимого
ему ресурса.
27
28. Готовность — процесс заблокирован в связи с внешними по отношению к нему обстоятельствами: процесс имеет все требуемые для него
Состояния процесса
— процесс заблокирован в
связи с внешними по отношению к нему
обстоятельствами: процесс имеет все
требуемые для него ресурсы, он готов
выполняться, однако процессор занят
выполнением другого процесса.
28
29. В состоянии «выполнение» в однопроцессорной системе может находиться только один процесс. А в состояний «ожидание» и
Состояния процесса
В
состоянии
«
»
в
однопроцессорной
системе
может
находиться
только
один
процесс.
А
в
состояний
«
»
и
«
» — может одновременно
находиться несколько процессов и эти
процессы образуют очереди соответственно
ожидающих и готовых процессов.
29
30. В операционных системах совместно работающие процессы могут использовать какое-нибудь общее хранилище данных, доступное каждому
Планирование процессов
1. определение момента времени для смены
выполняемого процесса;
2. выбор процесса на выполнение из очереди
готовых процессов;
3. переключение контекстов «старого» и
«нового» процессов (аппаратно).
31. Планирование процессов
Исходя из трех основных состояний процесса «готов», «выполнение»
«заблокирован» планировщик должен знать, какой процесс находится в
каком состоянии. Все усложняется, если ЦП содержит несколько
вычислительных ядер.
Поэтому в ОС вводятся различные очереди (списки) для планирования
процессов.
Исходя из трех состояний процесса вводятся 3 очереди:
1. Очередь задач: множество всех процессов, которые есть в системе
2. Очередь готовых: множество всех процессов, готовых для выполнения, им
можно в любой момент дать квант процессорного времени и они будут
выполняться.
3. Очередь ожидающих: множество всех заблокированных процессов.
В процессе жизненного цикла процессы перемещаются между этими
32
очередями.
32.
Управление процессами
Поступление
Очередь “готовых “
Диспетчинг
Освобождение
ЦП
Произошло
событие
Таймаут
Очередь “ заблокированных “
Ожидание события
33
33.
Модель состояния процесса 2
диспетчеризация
новый
готов
Событие
произошло
выполняется
таймаут
завершение
Ожидание
события
заблокирован
34
34. Модель состояния процесса 2
Модель состояния процесса №2
Новая модель, состояшая из 5 состояний, очень близка к сегодняшним ОС
1. «Новый» – процесс создан, но он еще не помещен ОС в пул выполняемых
процессов. Создана структура РСВ, но процесс еще не загружен в память
(т.е. создан РСВ и пустое адресное пространство)
2. Если новый процесс принимается ОС, если соблюдается, все права доступа,
то процесс помещается в состояние «Готовность»: процесс полностью готов
к выполнению, т.е. может получить управление и непосредственно начать
работать. Все загружено в память, инициализированы данные, стек, куча.
3. «Выполнение» — процесс исполняется.
4. «Блокировка» — процесс ожидает внешнего события (может быть вв/выв).
5. «Завершение» — процесс удаляется из пула выполненных процессов, он
закончил работу. Процесс помечается как «завершенный». Диспетчер будет
выполнять работу по очистке процесса. На данном этапе проходит работа по
освобождению памяти, закрытию ресурсов процесса (вв/выв, файлов…).35
35. Модель состояния процесса №2
Задачи динамического
планирования, т.е. наиболее
эффективного распределения
ресурсов, возникающие
практически при каждом событии,
называются диспетчеризацией.
36. Задачи динамического планирования, т.е. наиболее эффективного распределения ресурсов, возникающие практически при каждом
Долгосрочный планировщик
решает, какой из процессов,
находящихся во входной очереди,
должен быть переведен в очередь
готовых к выполнению процессов в
случае освобождения ресурсов
памяти.
37. Долгосрочный планировщик решает, какой из процессов, находящихся во входной очереди, должен быть переведен в очередь готовых к
Краткосрочный планировщик
решает, какая из задач,
находящихся в очереди готовых к
выполнению, должна быть
передана на выполнение.
38. Краткосрочный планировщик решает, какая из задач, находящихся в очереди готовых к выполнению, должна быть передана на
Основные стратегии планирования:
• по возможности заканчивать вычисления в
том же порядке, в котором он были начаты;
• отдавать предпочтение более коротким
задачам;
• предоставлять всем пользователям
одинаковые услуги, в том числе и одинаковое
время ожидания.
39. Основные стратегии планирования:
В соответствии с алгоритмами,
основанными на квантовании, смена
активного процесса происходит, если:
процесс завершился и покинул систему,
произошла ошибка,
процесс перешел в состояние ожидание,
исчерпан квант процессорного времени,
отведенный данному процессу.
40. В соответствии с алгоритмами, основанными на квантовании, смена активного процесса происходит, если:
ОС выполняет следующие функции:
• определяет момент снятия с выполнения
текущей задачи;
• сохраняет контекст текущей задачи в
дескрипторе задачи;
• выбирает из очереди готовых к выполнению
задач следующую;
• загружает контекст выбранной задачи;
• запускает выбранную задачу на исполнение.
41. ОС выполняет следующие функции:
Операционная система поддерживает
обособленность процессов: у каждого
процесса
имеется
свое
виртуальное
адресное пространство, каждому процессу
назначаются свои ресурсы — файлы, окна,
семафоры и т.д.
42
42. Операционная система поддерживает обособленность процессов: у каждого процесса имеется свое виртуальное адресное пространство,
Обособленность нужна для
защиты
одного процесса от другого, поскольку они,
совместно используя все ресурсы машины,
конкурируют
с
друг
другом.
В общем случае процессы принадлежат
разным пользователям, разделяющим один
компьютер.
43
43. Обособленность нужна для защиты одного процесса от другого, поскольку они, совместно используя все ресурсы машины, конкурируют
Процесс
(физическое представление)
Внизу 0 адрес, сверху максимальный.Макс.
На максимуме расположен стек,
затем куча, которые растут в
противоположных направлениях,
данные и код программы.
Важно понимать, что каждый процесс
обладает своим адресным
пространством. На схеме
виртуальное адресное
пространство начинается в нуля и
заканчивается неким
максимумом, которое состоит из
сегментов : кода, данных и стека.
Стек
Сегмент
стека
Сегмент
данных
куча
данные
0
Код
программы
Сегмент
кода
44
44. Процесс (физическое представление)
При запуске программы (например MS Word) в ОС происходит
следующее:
1. Выделяется место в памяти.
Каждый процесс выполняется в собственном виртуальном
адресном пространстве, которое состоит:
1. Сегмента стека –используется для вызовов функций и
системных вызовов
2. Сегмента данных – переменные статические и динамические,
выделяемые из кучи(все что нужно для работы)
3. Сегмента кода – код программы, обычно предоставляется
доступ «только для чтения»
Запуск одной и той же программы несколько раз порождает новые
процессы, у каждой из которых свое виртуальное адресное
пространство и окружение. Т.е. эта схема будет у каждого запущенного
процесса.
45
45. Процесс (физическое представление)
При
мультизадачности
повышается
пропускная способность системы, но
отдельный процесс никогда не может быть
выполнен быстрее, чем если бы он
выполнялся в однопрограммном режиме
(всякое разделение ресурсов замедляет
работу одного из участников за счет
дополнительных затрат
времени на
ожидание освобождения ресурса).
46
46. При мультизадачности повышается пропускная способность системы, но отдельный процесс никогда не может быть выполнен быстрее,
47
47.
Этапы создания процесса
Чтобы создать процесс надо:
1) Присвоить уникальный идентификатор новому
процессу
2) Выделить ему место в памяти (для программы,
данных и стека) – физически в памяти выделяются
некоторые страницы (создается образ процесса на
диске)
3) Инициализировать РСВ (блок управления
процессом)
4) Добавить процесс в очередь «готовых» к
выполнению.
48
48.
Потоки
49
49. Потоки
ПОТОКИ (НИТИ)
Процесс состоит как минимум из:
— 1) Адресное пространство (набор инструкций – код программы, данные)
— 2) Состояние процесса выполнения
Характеризуется состоянием регистров ЦП:
— Счетчик команд (регистр IP)
— Указатель стека (SP)
— Др.регистры ЦП
—
3) Множество ресурсов ОС, которыми процесс владеет в данное время
(открытые файлы, сетевые соединения) .
Все это находится в одном понятии процесса. Но не всегда это хорошо. Для
трех несвязанных между собой процессов надо выделять 3 различные
области.
Приходит на помощь понятие ПОТОК.
50
50. ПОТОКИ (НИТИ)
Потоки нужны для двух вещей – для параллелизма и одновременности.
Параллелизм – это физически одновременное выполнение для достижения
наибольшей производительности (например, между двумя ядрами)
Одновременность – логическое и/или физическое одновременное
выполнение (есть один ЦП, на нем одновременно выполняется несколько
программ – многозадачная ОС).
Потоки нужны в обоих случаях для эффективного использования. В самом
простом варианте, чтобы достичь параллелизма – использование
множества процессов – программы изолированы друг от друга в разных
процессах, поэтому параллелизм есть.
Потоки – другой способ достичь параллелизма. Потоки работают внутри
одного процесса. Все потоки процесса
имеют одно адресное
пространство и те же ресурсы ОС. У каждого потока есть свой стек и свое
состояние ЦП.
51
51. ПОТОКИ (НИТИ)
Параллелизм
Примеры:
Веб-сервер, который для каждого пользовательского процесса создает
новый процесс, т.е. должен обслуживать несколько запросов
параллельно.
Ожидая данных по запросу клиента из БД сервер в это же время мог бы
загрузить данные с диска для другого клиента и обработать запрос
третьего клиента.
Веб-браузер – в момент обращения к веб- странице, он мог бы параллельно
загружать данные из различных источников.
Некоторая вычислительная программа использующая физический
параллелизм – например, когда нужно обработать большой массив
данных.
52
52. Параллелизм
В каждом из этих примеров параллелизма есть общее:
• Один код
• Доступ к одним данным
• Один уровень доступа
• Одно множество ресурсов.
разное:
• Стэк и указатель стэка (регистр SP)
• Счетчик инструкций (регистр IP), указывающий на следующую
инструкцию в коде программы
• Множество регистров ЦП
53
53. Параллелизм
Как достичь параллелизма?
Используя знания о процессах, можно:
• Можно породить сразу несколько процессов
• Заставить каждый из них создавая свое адресное пространство
копировать в него одну и ту же информацию
Неэффективно: Затраты на PCB, таблицы страниц, создание ОС структур
данных, копирование адресного пространства, синхронизировать доступ.
Решение – ввести понятие Потока
Отделить понятие процесса (адресного пространства, ресурсов ОС) от
минимальной нити, потока управления, т.е. состояния стека и регистров
ЦП.
Иногда такое состояние называют «легким» процессом или потоком.
54
54. Параллелизм
Процессы и потоки
Большинство современных ОС поддерживает два объекта:
Процесс, который определяет адресное пространство и общие атрибуты
процесса.
Поток, который определяет последовательный поток выполнения в рамках
процесса.
Поток привязывается к одному процессу (одному адресному пространству)
— Может быть много потоков в одном адресном пространстве
— Легкий доступ к общим данным
— Создание потоков занимает очень мало времени
ПОТОКИ стали единицей планирования ОС
Процессы – всего лишь контейнер, в котором выполняются потоки.
Процесс – это непосредственно контейнер, а поток – это нити выполнения, которые
у него есть внутри.
55
55. Процессы и потоки
Многопоточность
Многопоточность полезна для :
— обработки одновременных событий
— построение параллельных программ.
Поддержка многопоточности – разделение понятие процесса
от минимального потока управления.
— Для параллельного потока выполнения не нужно создавать
новые процессы.
— Работает быстрее, меньше требования к памяти.
Без потоков: «Процесс»= адресное пространство + ресурсы ОС+
подразумевался единственный поток
С потоками: «Процесс»= адресное пространство + ресурсы ОС+
все потоки принадлежащие процессу
56
56. Многопоточность
Отличие потоков от процессов
Отличия
потоков
от
традиционных
многозадачной операционной системы:
процессов
• процессы, как правило, независимы, тогда как потоки
существуют как составные элементы процессов
• процессы несут значительно больше информации о состоянии,
тогда как несколько потоков внутри процесса совместно
используют информацию о состоянии, а также память и другие
вычислительные ресурсы
• процессы имеют отдельные адресные пространства, тогда как
потоки совместно используют их адресное пространство
• процессы взаимодействуют только через предоставляемые
системой механизмы связей между процессами
• переключение контекста между потоками в одном процессе, как
правило, быстрее, чем переключение контекста между
процессами.
• Такие системы, как Windows
и OS/2, как говорят, имеют
«дешёвые» потоки и «дорогие» процессы. В других
операционных системах разница между потоками и процессами
не так велика, за исключением расходов на переключение
адресного пространства.
58
57. Какие бывают потоки?
Стратегии обслуживания процессов
59
58. Отличие потоков от процессов
Дисциплина FCFS (first come – first served)
реализует стратегию обслуживания «по
возможности заканчивать вычисления в
порядке их появления».
Задачи обслуживаются в порядке очереди,
т.е. в порядке их появления.
Задачи, приостановленные для ожидания
какого-либо ресурса, после перехода в
состояние готовности становятся в эту
очередь перед задачами, которые еще не
выполнялись.
59. Стратегии обслуживания процессов
Образуются две очереди:
новые задачи;
ранее выполнявшиеся, но попавшие в
состояние ожидания.
60. Дисциплина FCFS (first come – first served) реализует стратегию обслуживания «по возможности заканчивать вычисления в порядке
Дисциплина FCFS не требует
внешнего вмешательства в ход
вычислений и перераспределения
процессорного времени. По классу
диспетчеризации (вытесняющие и
не вытесняющие) дисциплина FCFS
относится к не вытесняющим.
61. Образуются две очереди:
Дисциплина обслуживания SJN (shortest job
next) требует, чтобы пользователи
указывали предположительное время
выполнения. Диспетчер задач сравнивал
указанное время с реальным временем
выполнения и, если время выполнения
превышало указанное, то помещал это
задание в конец очереди.
62. Дисциплина FCFS не требует внешнего вмешательства в ход вычислений и перераспределения процессорного времени. По классу
Дисциплина обслуживания SRT
(shortest remaining time), основана
на том, что выбираемое на
исполнение задание требует
меньше всего времени для своего
завершения.
63. Дисциплина обслуживания SJN (shortest job next) требует, чтобы пользователи указывали предположительное время выполнения.
Перечисленные три дисциплины
обслуживания могут
использоваться для пакетных
режимов работы, когда не важно
время отклика.
64. Дисциплина обслуживания SRT (shortest remaining time), основана на том, что выбираемое на исполнение задание требует меньше
Для интерактивной работы надо
обеспечить приемлемое время
реакции системы и равенство в
обслуживании, если система
мультитерминальная.
Интерактивные задания должны
иметь преимущество перед
фоновыми. Эти условия решены в
дисциплине RR (round robin –
круговая, карусельная).
65. Перечисленные три дисциплины обслуживания могут использоваться для пакетных режимов работы, когда не важно время отклика.
Дисциплина обслуживания RR
предполагает, что каждая задача
получает процессорное время
порциями (квантами). После
окончания выделенного кванта
времени задача снимается с
исполнения и на выполнение
выбирается следующая задача.
66. Для интерактивной работы надо обеспечить приемлемое время реакции системы и равенство в обслуживании, если система
Величина кванта времени
выбирается как компромисс между
приемлемым временем реакции
системы на запросы пользователей
и накладными расходами на
частоту смены контекста задач.
67. Дисциплина обслуживания RR предполагает, что каждая задача получает процессорное время порциями (квантами). После окончания
Диспетчеризация без перераспределения
процессорного времени, не вытесняющая
многозадачность, – это такой способ
диспетчеризации процессов, при котором
активный процесс выполняется до тех пор,
пока он сам, по своей инициативе, не
отдаст управление диспетчеру задач для
выбора из очереди другого, готового к
исполнению процесса.
Дисциплины обслуживания FCFS, SJN, SRT
относятся к не вытесняющим.
68. Величина кванта времени выбирается как компромисс между приемлемым временем реакции системы на запросы пользователей и
При не вытесняющей
многозадачности механизм
разделения процессорного
времени распределен между ОС и
прикладной программой.
Диспетчер задач формирует
очереди и выбирает задачу на
исполнение.
69. Диспетчеризация без перераспределения процессорного времени, не вытесняющая многозадачность, – это такой способ диспетчеризации
Диспетчеризация с перераспределением
процессорного времени между задачами,
вытесняющая многозадачность, – это такой
способ, при котором решение о
переключении процессора с выполнения
одного процесса на выполнение другого
процесса принимается диспетчером задач,
а не самой активной задачей.
Дисциплина RR и аналогичные ей относятся
к вытесняющим.
70. При не вытесняющей многозадачности механизм разделения процессорного времени распределен между ОС и прикладной программой.
Критерии для сравнения алгоритмов
диспетчеризации:
использование (загруженность)
центрального процессора;
• пропускная способность –
количество процессов,
выполняющихся в единицу времени;
71. Диспетчеризация с перераспределением процессорного времени между задачами, вытесняющая многозадачность, – это такой способ, при
Критерии для сравнения алгоритмов
диспетчеризации
(продолжение):
время оборота – интервал времени от
момента появления процесса во входной
очереди до момента его завершения (время
ожидания во входной очереди + время
ожидания в очереди готовых к выполнению
процессов + время ожидания в очередях к
оборудованию + время выполнения в
процессоре + время ввода/вывода);
72. Критерии для сравнения алгоритмов диспетчеризации:
Критерии для сравнения алгоритмов
диспетчеризации
(продолжение):
время ожидания – суммарное время
нахождения процесса в очереди готовых к
выполнению процессов;
время отклика – время от момента
попадания процесса во входную очередь до
момента первого обращения к терминалу
73. Критерии для сравнения алгоритмов диспетчеризации (продолжение):
Введение механизма динамических
приоритетов позволяет реализовать
быстрое выполнение коротких
задач и гарантировать выполнение
любых запросов.
Эта дисциплина используется в ОС
UNIX.
74. Критерии для сравнения алгоритмов диспетчеризации (продолжение):
Каждый процесс имеет два атрибута
приоритета, с учетом которого
распределяется процессорное время
между исполняющимися задачами:
• p_cpu — текущий приоритет, на основе
которого осуществляется планирование;
• p_ nice — заказанный относительный
приоритет (nice number).
75. Главные причины уменьшения производительности системы:
p_nice назначается пользователем
явно или формируется по
умолчанию с помощью системы
программирования.
76. Методы повышения производительности:
p_cpu формируется диспетчером
задач (планировщиком
разделения времени) и называется
системной составляющей или
текущим приоритетом.
77. Введение механизма динамических приоритетов позволяет реализовать быстрое выполнение коротких задач и гарантировать выполнение
Текущий приоритет процесса
варьируется в диапазоне от 0 (низкий
приоритет) до 127 (высокий
приоритет).
Процессы, выполняющиеся в режиме
задачи, имеют более низкий приоритет
(0 – 65), чем в режиме ядра (66 – 95,
системный диапазон).
Приоритеты в диапазоне 96 – 127
относятся к процессам с
фиксированным приоритетом.
78. Каждый процесс имеет два атрибута приоритета, с учетом которого распределяется процессорное время между исполняющимися
Для принятия решения о выборе
следующего запускаемого процесса
планировщику необходима информация
об использовании процессора.
Составляющая приоритета p_cpu
уменьшается обработчиком прерываний по
таймеру по каждому тику таймера. Когда
процесс выполняется в режиме задачи, его
текущий приоритет линейно уменьшается.
79. p_nice назначается пользователем явно или формируется по умолчанию с помощью системы программирования.
Каждую секунду процессор
пересчитывает приоритеты
процессов, готовых к выполнению,
что приводит к перемещению
процессов в более приоритетные
очереди и повышает вероятность
их последующего запуска.
80. p_cpu формируется диспетчером задач (планировщиком разделения времени) и называется системной составляющей или текущим
Данный алгоритм планирования
обеспечивает:
интересы низкоприоритетных
процессов, так как в результате
длительного ожидания их приоритет
и вероятность выполнения
увеличиваются;
• более вероятный выбор
интерактивных процессов по
сравнению с вычислительными.
81.
85
Управление процессами и потоками в Microsoft Windows
Download
Report
Transcript Управление процессами и потоками в Microsoft Windows
Управление процессами и потоками в Microsoft Windows Представление процессов Диспетчеризация процессов и потоков Планирование процессов и потоков Характеристики процесса Процесс как самостоятельная сущность рассматривается на уровне архитектуры ЭВМ и на уровне ОС. На уровне архитектуры ЭВМ процесс характеризуется: - контекстом; - адресным пространством. На уровне ОС процесс описывается специальной структурой уровня ядра – PCB (Process Control Block) Представление процесса в защищенном режиме процессора Intel Дескриптор TSS активного процесса TR LDTR CS Селектор сегмента кода LDT Дескриптор сегмента кода активного процесса Дескриптор доп. сегмента основной Копия дескриптора TSS TSS Селектор TSS Сегмент кода Доп. сегмент Доп. сегмент сегменты кода, данных, стека GDTR GDT Оперативная память Адресное пространство процесса в защищенном режиме процессора Intel Сегмент Описание Адресация TSS Task Status Segment – сегмент состояния задачи Хранит полное описание контекста задачи -Через Сегмент кода Каждая задача обязательно должна иметь хотя бы один сегмент кода -Через Другие сегменты Могут содержать код и данные, в т.ч. собственные стеки процесса (задачи) -Через специальный системный дескриптор, который хранится в таблице GDT -Селектор дескриптора и копия самого дескриптора хранятся в регистре TR дескриптор в таблице LDT -Селектор дескриптора всегда хранится в регистре CS дескрипторы в таблице LDT -Селекторы дополнительных сегментов хранятся в сегментных регистрах DS, ES, FS, GS, SS Контекст процесса в защищенном режиме процессора Intel - Регистры общего назначения (EAX, EBX, ECX, EDX, EDI, ESI, ESP, EBP); Регистры состояния (EIP, EFLAGS); Регистры состояния процессора (CR0-CR4); Сегментные регистры (CS, DS, ES, FS, GS, SS); Регистры управления памятью (LDTR, TR); Значение поля селектора TSS из регистра TR для процесса, который запустил данный процесс; Содержимое таблицы LDT; Содержимое каталогов и таблиц страниц; Адрес битовой карты ввода/вывода. Представление процесса на уровне ОС В общем случае – информация о процессе (контекст процесса) ОС хранят в структурах PCB – Process Control Block (блок управления процессом) Структура PCB и состав контекста процесса различен для каждой конкретной ОС Представление процессов в ОС Windows XP Процесс – абстрактная структура, определяющая единое адресное пространство и контекст одного или нескольких взаимосвязанных потоков Поток – системный объект операционной системы, реально выполняющийся в процессоре. При создании любого процесса всегда создается первичный поток Потоки могут порождать новые потоки Основной поток Порожденный поток Порожденный поток Процесс Структуры Windows для управления процессами и потоками (обобщенная схема) Структура EPROCESS Блок процесса ядра (PCB) Блок переменных окружения процесса (PEB) Структура ETHREAD Структура KTHREAD Блок переменных окружения потока (TEB) Уровни управления процессами Аппаратный уровень Реализуются примитивные операции по управлению процессами: -прерывания; -переключение контекстов задач. Диспетчеризация процессов (уровень ядра) Реализуются примитивы перевода процессов из одного состояния в другое – запуск, приостановка, возобновление, остановка (завершение) Планирование процессов (уровень менеджера процессов) Реализуется строгий и сложный алгоритм управления состояниями процессов с учетом различных факторов, условий функционирования процессов, особенностей аппаратной части и операционной системы Механизмы управления процессами, реализуемые аппаратно Базовые аппаратные механизмы Прерывания Переключение задач Все механизмы, реализуемые аппаратно, в ОС Microsoft Windows замаскированы уровнем HAL Представление процесса на аппаратном уровне (CPU Intel) GDTR Дескриптор TSS активного процесса TR LDTR CS Селектор сегмента кода LDT Дескриптор сегмента кода активного процесса Дескриптор доп. сегмента основной TSS Селектор TSS Сегмент кода Доп. сегмент Доп. сегмент сегменты кода, данных, стека Копия дескриптора TSS Оперативная память Реализация переключения задач в защищенном режиме CPU Intel Для команд CALL и JMP проверяет привилегии (CPL текущей задачи и RPL селектора новой задачи не могут быть больше, чем DPL шлюза или TSS, на который передается управление). Проверяется дескриптор TSS (его бит присутствия и лимит). Проверяется, что новый TSS, старый TSS и все дескрипторы сегментов находятся в страницах, отмеченных как присутствующие. Сохраняется состояние задачи. Загружается регистр TR. Если на следующих шагах происходит исключение, его обработчику придется доделывать переключение задач, вместо того чтобы повторять ошибочную команду. Тип новой задачи в дескрипторе изменяется на занятый и устанавливается флаг TS в CR0. Загружается состояние задачи из нового TSS: LDTR, CR3, EFLAGS, EIP, регистры общего назначения и сегментные регистры. Механизмы диспетчеризации процессов уровня ядра Windows Создание процесса Создание потока Приостановка процесса Приостановка потока Активизация процесса Активизация потока Завершение процесса Завершение потока Создание процесса в Windows и функция CreateProcess Открытие файла-образа процесса (имя.exe или имя.com) Создание объекта процесс исполнительной системы (PCB) Создание первичного потока Уведомление о создании процесса и первичного потока Начать выполнение первичного потока Инициализировать адресное пространство процесса в контексте нового процесса и потока, подгрузить динамические библиотеки (*.dll) Начать выполнение программы Предварительные действия при запуске процесса Перед запуском процесса CreateProcess проверяет параметр CreationFlags, который указывается при запуске нового процесса и задает приоритеты процесса. Если задано несколько приоритетов, Windows выберет самый низкий из них Если приоритеты процесса не заданы, то Windows установит приоритет Normal Если приоритет процесса-создателя Idle или Bellow Normal, а приоритет нового процесса не указан, то Windows установит приоритет нового процесса равный приоритету процесса создателя Если создается процесс с приоритетом Real-Time, а создатель не имеет привилегий на создание таких процессов и/или привилегии Increase Scheduling Priority, то новый процесс будет создан с приоритетом High, что ниже приоритета Real-Time Происходит сопоставление окна процесса с объектом «рабочий стол» Этап 1. Открытие файла-образа Поиск Windows-образа, который будет выполнять указанный процесс, и создание объекта «раздел» для последующего проецирования его на адресное пространство нового процесса В качестве имени Windows-образа выбирается первый параметр командной строки Проверка политики безопасности (не запрещает ли она запуск данного процесса) Если запускается программа Windows, то она используется напрямую Если запускается не-Windows приложение, то ОС ищет специальный образ поддержки (support image) для запуска данной программы Этап 1. Открытие файла-образа Этап 1. Открытие файла-образа: завершение Запускаемый файл успешно открыт Для него создан объект «раздел», но этот раздел еще не спроецирован в память Если в процессе открытия файла возникают проблемы, то Windows находит в реестре информацию об отладчике для данного типа приложений и повторно запускает CreateProcess Этап 2. Создание объекта «процесс» Формируется блок EPROCESS Создается начальное адресное пространство процесса Инициализируется блок процесса ядра (KPROCESS) Инициализируется адресное пространство процесса, в т.ч. список рабочего набора и дескрипторы виртуального адресного пространства Образ процесса проецируется на адресное пространство Формируется блок PEB Завершается инициализация объекта «процесс» исполнительной системы Windows Этап 2а: Формирование блока EPROCESS Создание блока EPROCESS От родительского процесса наследуется привязка к процессорам Устанавливаются минимальное и максимальное значения рабочего набора Настраивается блок квот нового процесса (устанавливается ссылка на блок квот родительского процесса и увеличивается счетчик ссылок последнего) Наследуется пространство имен устройств Windows Для нового процесса сохраняется идентификатор родительского процесса Настраивается маркер доступа Наследуется от родителей Если используется функция CreateProcessAsUser создается новый маркер Инициализируется таблица описателей Статус нового процесса заменяется на STATUS_PENDING Этап 2b: создание начального адресного пространства процесса В соответствующих таблицах страниц формируются записи, позволяющие подкачивать начальные страницы процесса Значение максимально доступного количества резидентных страниц процесса уменьшается на значение количества страниц в рабочем наборе по умолчанию На адресное пространство проецируются страницы таблицы страниц для неподкачиваемого системного адресного пространства и системного кэша Этап 2c: создание блока процесса ядра (KPROCESS) Инициализация блока KPROCESS Устанавливаются ссылки на блоки потоков ядра (KTHREAD) Устанавливаются ссылки на таблицы страниц процесса Инициализируются поля блока KPROCESS, хранящие информацию о времени выполнения процесса Устанавливается базовый приоритет процесса Устанавливается привязка процесса к процессорам Определяется базовое значение кванта времени для данного процесса Этап 2d: инициализация адресного пространства процесса Диспетчер виртуальной памяти присваивает времени последнего усечения рабочего набора процесса текущее время Инициализируется список страниц рабочего набора Раздел проецируется на адресное пространство процесса, и базовый адрес раздела процесса приравнивается базовому адресу образа На адресное пространство процесса проецируется ntdll.dll На адресное пространство процесса проецируются таблицы NLS (National Language Support) Этап 2е: инициализация блока PEB Формируется блок PEB Заполняются поля блока PEB Этап 2f: завершение инициализации блока «процесс» исполнительной системы Если разрешен аудит, то факт создания процесса фиксируется в журнале безопасности Если родительский процесс входил в задание, то и новый процесс включается в задание Если для процесса был указан флаг создания, отмечающий, что данный процесс может выполняться только в однопроцессорной системе, то для выполнения всех потоков процесса выбирается один процессор Привязка процесса к процессору копируется в PEB и в дальнейшем используется как привязка по умолчанию Блок процесса помещается в конец списка активных процессов Устанавливается время создания процесса Возвращается дескриптор созданного процесса Этап 3. Создание первичного потока К началу этого этапа процесс полностью создан, но не может ничего делать, т.к. у него нет ни одного потока Для создания потока необходимо создать стек и контекст, в котором он будет выполняться Первичный поток создается системным вызовом NtCreateThread с параметром PEB Поток будет создан в приостановленном состоянии и не будет ничего делать до окончания инициализации процесса Этап 3. Создание первичного потока: NtCreateThread Увеличивает счетчик потоков для данного процесса Создает и инициализирует блок потока ETHREAD Генерирует идентификатор нового потока В пользовательском адресном пространстве формируется TEB Стартовый адрес потока пользовательского режима сохраняется в блоке ETHREAD Для Windows-потоков это адрес системной стартовой функции потока в kernel32.dll Стартовый адрес, указанный пользователем, также сохраняется в ETHREAD, но в другом месте, что позволяет системной функции вызвать пользовательскую стартовую функцию Этап 3. Создание первичного потока: NtCreateThread (продолжение) Инициализируется блок KTHREAD, в который заносятся параметры, необходимые для диспетчеризации и планирования потоков Вызываются общесистемные функции для уведомления о создании потока Настраиваются маркеры доступа потока Поток готов к выполнению Этап 4. Уведомление подсистемы Windows о новом процессе К данному моменту созданы и процесс, и его первичный поток Kernel32.dll отправляет подсистеме Windows уведомление: Описатели процесса и потока Флаги создания Идентификатор родительского процесса Флаг принадлежности процесса к Windowsприложениям Получив уведомление Windows должна подготовиться к выполнению нового процесса и потока Этап 4. Уведомление подсистемы Windows о новом процессе CreateProcess дублирует описатели процесса и потока, в результате чего количество пользователей процесса становится равным 2 Устанавливается класс приоритета процесса Создается и инициализируется блок процесса Csrss Настраивается порт исключений процесса как общий порт функций для подсистемы Windows. Таким образом, она сможет получать сообщения о возникновении исключений Если процесс в данный момент отлаживается, то в качестве порта функций выбирается отладочный порт Создается и инициализируется блок потока Csrss Этап 4. Уведомление подсистемы Windows о новом процессе (продолжение) CreateProcess включает поток в список потоков процесса Увеличивается счетчик процессов в данном сеансе Устанавливается уровень завершения процесса по умолчанию 0х280 Блок нового процесса включается в список общесистемных процессов Windows Создается и инициализируется структура W32PROCESS, индивидуальная для каждого процесса и используемся той частью процесса, которая выполняется в режиме ядра Выводится курсор в виде стрелки с песочными часами – система ждет от процесса GUI-вызова Этап 5. Запуск первичного потока Для завершения инициализации процесса необходимо возобновить его первичный поток (который был создан, как приостановленный), если при этом не указан флаг CREATE_SUSPENDED Этап 6. Инициализация в контексте нового процесса Начинается выполнение первичного потока нового процесса Происходит системный вызов KiThreadStartup, который понижает уровень IRQL с DPC/dispatch до APC Вызывается системная функция PspUserThreadStartup, параметром которой являтся стартовый адрес потока Функция PspUserThreadStartup проверяет, разрешена ли в системе предвыборка и, если да, то производит предвыборку страниц процесса, которые он запускал в течении первых 10 сек при предыдущем запуске Затем функция PspUserThreadStartup ставит APC пользовательского режима в очередь для запуска процедуры инициализации потока Этап 6. Инициализация в контексте нового процесса (продолжение) Когда поток вернется в пользовательский режим, APC будет доставлен После завершения PspUserThreadStartup управление передается KiThreadStartup, которая возвращается из режима ядра, доставляет APC, инициализирует загрузчик, кучи, таблицы NLS, массивы локальной памяти потока и структуры критической секции Функция KiThreadStartup загружает необходимые dll и вызывает их точки входа Управление возвращается диспетчеру APC пользовательского режима Начинается выполнение образа в пользовательском режиме Создание потока в Windows и функция CreateThread Создание стека пользовательского режима в адресном пространстве процесса Инициализация аппаратного контекста потока Создать объект потока исполнительной системы (в приостановленном состоянии) Уведомление Windows о создании нового потока Вернуть порождающему процессу (потоку) идентификатор и дескриптор (HANDLE) созданного потока Начать выполнение потока Планирование потоков в Windows Дисциплина планирования Windows реализована на основе вытесняющего планирования В системе используются приоритеты Всегда первым вытесняется готовый к выполнению поток, обладающий наибольшим приоритетом На выбор потоков к выполнению также влияет привязка потоков (а точнее – процессов) к процессору Для управления временем выполнения потока используется система квантования времени Величина кванта не постоянна и зависит от Конфигурационных параметров системы Статуса процесса (активный или фоновый) Использованием объекта «задание» Диспетчеризация на уровне ядра – диспетчер ядра Диспетчеризация может быть вызвана одним из следующих событий: Поток готов к выполнению – только что создан или вышел из состояния ожидания Поток вышел из состояния Running (истек квант времени или поток переходит в состояние ожидания) Изменяется приоритет процесса из-за системного вызова или самой Windows Изменена привязка к процессорам, из-за чего процесс не может больше выполняться на данном процессоре Уровни приоритета Назначение приоритетов с точки зрения WindowsAPI По приоритету процесса Real-time High Above normal Normal Bellow normal Idle По относительному приоритету потоков в рамках процесса Time-critical Highest Above normal Normal Bellow normal Lowest Idle Связь между приоритетами WindowsAPI и ядра Windows Установка базового приоритета процессов и потоков Базовый приоритет процесса устанавливается при его создании (параметром CreationFlags функции CreateProcess) Если базовый приоритет процесса не указан, то он наследуются от родительского процесса (как правило, он устанавливается в Normal) Базовый приоритет потока устанавливается в соответствии с унаследованным приоритетом процесса и собственным относительным приоритетом Кроме базового приоритета, каждый поток имеет текущий приоритет, на основании которого принимаются все решения относительно планирования потока Состояния потоков в ОС Windows 2000/XP Состояния потоков в OC Windows Server 2003 Для каждого уровня приоритетов – своя очередь База данных диспетчера ядра 32-битна маска Бит устанавливается в 1, если в соответствующей очереди есть поток Квант Квант – интервал процессорного времени, отводимый Windows для выполнения потока По истечении кванта Windows пытается передать управление потоку с тем же приоритетом. Если такого нет, очередной квант отводится тому же потоку, что и выполнялся В Windows 2000/XP величина кванта по умолчанию составляет 2 интервала таймера В Windows Server 2003 – 12 интервалов (увеличен, чтобы минимизировать переключения контекста) Длительность интервала таймера определяется HAL, а не ядром Учет квантов Величина кванта для каждого процесса хранится в блоке процесса ядра в виде количество_интервалов *3 Это значение кванта используется при запуске потоков Во время выполнения потока величина кванта уменьшается по таймеру, каждый раз на 3 Если поток прерывается, квант выполнения потока все равно уменьшается на 3 при каждом прерывании таймера Для ожидающих потоков (WaitForSingleObject или WaitForMultileObjects) величина кванта уменьшается всегда, даже если они сразу получили доступ к ожидаемому объекту (при этом квант уменьшается на 1) Изменение величины кванта Пользователь может изменить величину кванта, указав одно из двух значений – короткий (2) или длинный (12) в оснастке Performance Options Начиная с Windows NT 4.0 Workstation система использует алгоритм динамического изменения квантов для активных процессов (со статусом выше Idle). Если хотя бы один поток процесса использует активное окно, то его квант времени увеличивается в 3 раза Управление квантами возможно через реестр Windows Сценарии планирования Самостоятельное переключение Вытеснение Завершение кванта Завершение потока Самостоятельное переключение Поток самостоятельно переходит в состояние ожидания (WaitForSingleObject или WaitForMultipleObjects) Система запускает первый готовый поток с наивысшим приоритетом Вытеснение Поток с высоким приоритетом вышел из состояния ожидания или приоритет для данного потока повысился Поток вытесняется. Причиной вытеснения этого потока может быть то, что его приоритет понизился Завершение кванта При завершении кванта Windows может понизить приоритет приостановленного потока. Тогда она будет искать для выполнения новый поток с приоритетом, не ниже нового приоритета приостановленного потока Для данного потока Windows не понизила приоритет – он остался в конце своей очереди Динамическое повышение приоритета После завершения операций ввода-вывода По окончании ожидания на семафоре или событии исполнительной системы По окончании операции ожидания потоками активного процесса При пробуждении GUI-процессов в связи с операциями с окнами Если поток, готовый к выполнению, задерживается из-за нехватки процессорного времени Повышение приоритета после завершения операций ввода-вывода Windows считает, что ожидавшие потоки имеют больше шансов немедленно начать выполнение Потоки не получают неоправданных привилегий, т.к. пока они ожидали их квант времени был уменьшен на 1 Величина приращения всегда зависит от устройства, завершения ввода/вывода на котором ожидал поток Приоритет потока всегда повышается относительно базового, а не текущего приоритета Приращение приоритета всегда применяется в области динамических приоритетов Приоритет не может стать больше 15 Изменение приоритета после завершения операций ввода-вывода Повышение приоритета после завершения ожидания на семафорах и событиях Приоритет потока повышается на 1, если он ожидал семафора или события (функции WaitForSingleObject или WaitForMultipleObjects), после выполнения функций SetEvent, PulseEvent, ReleaseSemaphore Правила повышения приоритета аналогичны рассмотренным ранее Повышение приоритетов потоков активного процесса после завершения ожидания Текущий приоритет потока в активном процессе всегда повышается на величину PsPrioritySeparation, если он завершил ожидание на объекте ядра Фактически PsPrioritySeparation – индекс в таблице квантов и используется для выбора величины квантов для потоков активного процесса Но в данном случае эта величина (величина кванта) используется как величина изменения приоритета Используется для повышения отзывчивости интерактивных приложений Повышение приоритетов при пробуждении GUI-процессов в связи с операциями с окнами Приоритет потоков, владеющих окнами, повышается на 2 после их пробуждения из-за активности системы управления окнами Используется для повышения отзывчивости интерактивных приложений Повышение приоритетов при нехватке процессорного времени Применяется при блокировке потоков с низким приоритетом потоками с высокими приоритетами (тупики) Диспетчер настройки баланса раз в 1 сек сканирует очереди, чтобы обнаружить тупиковые ситуации При обнаружении блокированных потоков, которые в свою очередь блокируют другие потоки, Windows повышает их приоритет до 15 В Windows 2000/XP квант времени таких потоков удваивается В Windows Server 2003 квант времени для таких потоков устанавливается равным 4 Планирование потоков в многопроцессорных системах База данных диспетчера ядра включает в себя несколько стеков очередей – по одной для каждого процессора В БД включается маска активных процессоров, позволяющая определить количество доступных процессоров В системах с HyperThreading Количество логических процессоров не попадает под лицензионные ограничения на количество поддерживаемых процессоров При выборе логического процессора для запуска потока система учитывает, на каком физическом процессоре он реализуется Нагрузка на процессоры рассчитывается на основании физической привязки логических процессоров Планирование потоков в многопроцессорных системах: привязка к процессору Каждый поток имеет маску привязки к процессору Привязка к процессору наследуется от процесса, запустившего поток Привязка потоков к процессору может быть изменена с целью оптимизации производительности и пропускной способности системы Привязка потока к процессору может быть изменена индивидуально или для всех потоков процесса На выбор процессора для выполнения потока влияет не только привязка, но и особенности создания процесса (например, процесс может быть создан для запуска только в однопроцессорных системах) Выбор процессора для потока при наличии простаивающих процессоров При наличии простаивающих процессоров Windows пытается подключить поток к ним в следующем порядке: Идеальный Предыдущий Текущий В Windows 2000 выбирается первый простаивающий В Windows XP и Windows Server 2003 Анализируется маска привязки потока Если система с Hyperthreading и имеется простаивающий физический процессор, то список доступных процессоров сокращается для набора его логических Из полученного списка исключаются спящие процессоры Из списка выбирается процессор с наименьшим номером Выбор процессора для потока при отсутствии простаивающих процессоров Если на идеальном процессоре выполняется поток с приоритетом меньше, чем у запускаемого потока, то запускаемый поток вытеснит выполняющийся поток со своего идеального процессора Если при выборе процессора нельзя выбрать идеальный (только в Windows 2000), то выбирается процессор с наибольшим номером После выбора процессора формируется межпроцессорное прерывание Задания Задание – объект ядра, обеспечивающий управление одним или несколькими процессами, как группой Задание позволяет определить: Максимальное число процессов в группе Общий лимит на процессорное время (для всех процессов задания) в пользовательском режиме Индивидуальные лимиты процессов на процессорное время в пользовательском режиме Класс планирования задания (размер кванта для потоков процессов, входящих в задание) Привязку к процессорам Приоритет всех процессов задания Максимальный и минимальный размеры рабочего набора Лимит на виртуальную память
Тема: Процессы и потоки в ОС Windows NT 1. Внутреннее устройство процессов. 2. Внутреннее устройство потоков. 3. Планирование потоков.
Литература 1. М. Русинович, Д. Соломин Внутреннее устройство Windows: Windows Server 2003, Windows XP, Windows 2000. Мастер-класс. / Пер. с анг. – 4 -е изд. – М. : Издательско-торговый дом «Русская редакция» ; СПб. : Питер, 2005. – 992 с. 2. Э. Таненбаум Современные операционные системы. 3 -е изд. ; СПб. : Питер, 2010. – 1120 с.
Структура данных процессов и потоков
Блок процесса EPROCESS
Блок процесса исполнительной системы
Поля в блоке PEB
Переменные ядра, связанные с производительностью
Счетчики производительности, связанные с процессами
Функции, связанные с процессами
Функции, связанные с процессами
Основные этапы создания процесса
Выбор активируемого Windows- образа
Основные этапы создания процесса
Этап 2: Создание объекта «процесс»
Основные этапы создания процесса
Этап 3: Создание первичного потока, его стека и контекста
Этап 3: Создание первичного потока, его стека и контекста
Этап 3: Создание первичного потока, его стека и контекста
Основные этапы создания процесса
Этап 4: Уведомление подсистемы Windows о новом процессе
Реакция ОС на уведомление о новом процессе
Реакция ОС на уведомление о новом процессе
Реакция ОС на уведомление о новом процессе
Основные этапы создания процесса
Тема: Процессы и потоки в ОС Windows NT 2. Внутреннее устройство потоков.
Блок потока исполнительной системы
Схема блока потока ядра
Поля блока переменных окружения потока
Утилиты для исследования потоков и функций
Тема: Процессы и потоки в ОС Windows NT 3. Планирование потоков.
Уровни приоритета потоков
Взаимосвязь приоритетов в ядре и Windows API
Уровни прерываний и уровни приоритета
Состояния потоков в Windows XP
Состояния потоков в Windows Server 2003
База данных диспетчера ядра
Величины квантов 2*3 = 6*10 мс = 60 мс (рабочая станция) 12*3 = 36*15 мс = 540 мс (сервер)
Самостоятельное переключение
Планирование потоков с вытеснением
Планирование потоков в момент завершения кванта текущего потока
Рекомендованные приращения приоритета
Динамическое изменение приоритета
Скачать материал
Скачать материал «Лекция по предмету Операционные системы на тему: «Управление процессами»»
Рабочие листы
к вашим урокам
Скачать
Описание презентации по отдельным слайдам:
-
1 слайд
Дисциплина:
«Операционные системы»
Лекция
Управление процессами и потоками -
2 слайд
2
1. Мультипрограммирование в системах разделения времени
1
2
3
…
n
Центральный процессор
TКВ = 0,02 мс
2. Мультипрограммирование в системах реального времени
Управление техническими объектами, технологическими процессами, системами обслуживания и т. п.
Фиксированный набор заранее разработанных задач.
Жесткие ограничения на время обслуживания.
Режим типа запрос – ответ.3. Мультипроцессорная обработка
Операционные системы : Windows NT/2000/XP,7, Sun Solaris 2/x, Santa Cruz Operations Open Server 3.x, OS/2 и др.
Симметричная архитектура и асимметричная архитектура. -
3 слайд
3
4. Роль процессов, потоков и волокон в мультипрограммированииОтдельный процесс не может быть выполнен быстрее, чем в однопрограммном режиме.
Сложно создать программу, реализующую параллелизм в рамках одного процесса.
Стандартные средства современных ОС не позволяют создать для одного приложения несколько процессов для параллельных работ.
Многопоточная обработка позволяет распараллелить вычисления в рамках одного процесса.
Многопоточная (multithreading) обработка эффективна в многопроцессорных вычислительных системах.
Использование аппарата волокон (Windows 2000) повышает эффективность мультипрограммирования за счет сокращения переключения процессов, но увеличивает трудоемкость разработки приложений. -
4 слайд
4
5. Управление процессами и потоками
5.1. Основные функции управления процессами и потоками
Создание процессов и потоков.
Обеспечение процессов и потоков необходимыми ресурсами.
Изоляция процессов.
Планирование выполнения процессов и потоков.
Диспетчеризация потоков.
Синхронизация процессов и потоков.
Завершение и уничтожение процессов и потоков.События, приводящие к созданию процессов:
Инициализация (загрузка) ОС.
Запрос процесса на создание дочернего процесса.
Запрос пользователя на создание процесса (например, при входе в систему в интерактивном режиме).
Инициирование пакетного задания.
Создание операционной системой процесса какой-либо службы. -
5 слайд
5
Типичный граф состояния потока
ВЫПОЛНЕНИЕ
ГОТОВНОСТЬ
ОЖИДАНИЕ
Поток завершен или ошибка
Поток ожидает завершения ввода-вывода или другого события
Ввод-вывод завершен (событие произошло)
Поток вытеснен (исчерпал квант)
Поток выбран на выполнение
Вновь созданный поток -
6 слайд
6
Дескриптор процесса содержит:
1. Информацию по идентификации процесса (идентификатор процесса, идентификатор пользователя,
идентификаторы родительского и дочерних процессов).
2. Информацию по состоянию процесса
3. Информацию, используемую для управления процессом -
7 слайд
7
Информация по состоянию и управлению процессомСостояние процесса, определяющее его готовность к выполнению (выполняющийся, готовый к выполнению, ожидающий события, приостановленный);
Данные о приоритете (текущий, по умолчанию, максимально возможный);
Информация о событиях – идентификация события, наступление которого позволит продолжить выполнение процесса;
Указатели, позволяющие определить расположение образа процесса в оперативной памяти и на диске;
Указатели на другие процессы (находящиеся в очереди на выполнение);
Флаги,сигналы и сообщения, имеющие отношение к обмену информацией между двумя независимыми процессами;
Данные о привилегиях, определяющие прав доступа к определенной области памяти или возможности выполнять определенные виды команд, использовать системные утилиты и службы;
Указатели на ресурсы, которыми управляет процесс;
Сведения по использованию ресурсов и процессора;
Информация, связанная с планированием. -
8 слайд
8
КОНТЕКСТ ПРОЦЕССА
Содержимое регистров процессора, доступных пользователю (обычно 8 – 32 регистра и до 100 регистров в RISC – процессорах);
Содержимое счетчика команд;
Состояние управляющих регистров и регистров состояния;
Коды условия, отражающие результат выполнения последней арифметической или логической операции (например, равенство нулю,переполнение);
Указатели вершин стеков,хранящие параметры и адреса вызова процедур и системных служб.
Значительная часть этой информации фиксируется в виде слова состояния программы PSW (program status word – EFLAGS в процессоре Pentium). -
9 слайд
9
Простейшая модель процесса
Диспетчеризация
Пауза
Не выполняется
Выполняется
Вход
Выход
CPU
Вход
Выход
Очередь
Пауза
Диспетчеризация
CPU
Граф состояний и переходов
tкв -
10 слайд
10
Новый
Готовый к выполнению
Выполняю-щийся
Вход
в систему
Ожидание
Завершаю-щийся
Освобо-ждение
события
Блокирова-нный
CPU
Поступление процесса
Очередь готовых процессов
Тайм – аут ( tКВ )
Ожидание события -
11 слайд
11
5.2. Потоки и их моделиОписатель потока: блок управления потоком и контекст потока (в многопоточной системе процессы контекстов не имеют).
Способы реализации пакета потоков:
в пространстве пользователя (user – level threads – ULT);
в ядре (kernel – level threads – KLT). -
12 слайд
12
6. Планирование заданий, процессов и потоков
Виды планирования -
13 слайд
13
Долгосрочное планирование
Тайм-аут
Очередь готовых заданий
Среднесрочное планирование
Среднесрочное планирование
Очередь готовых приостановленных заданий
Очередь заблокированных приостановленных заданий
Очередь
заблокированных заданий
Событие
Интерактивные пользователи
Пакетные задания
Ожидание события
ЦП
Выход
ОП
Диск
Диск
ОП -
14 слайд
14
7. Создание процессов и потоков. Модели процессов и потоковОбраз процесса: программа, данные, стек и атрибуты процесса
-
15 слайд
15
Алгоритмы планирования потоков
Невытесняющие (non-preemptive)
планирование распределяется между ОС и прикладными программами;
необходимость частых передач управлений ОС, в противном случае возможна монополизация процессора приложением;
зависания приложений могут привести к краху системы
2. Вытесняющие (preemptive)
функции планирования сосредоточены в ОС;
планирование на основе квантования процессорного времени;
планирование на основе приоритетов потоков: статических, динамических, абсолютных, относительных, смешанных; -
16 слайд
16
Алгоритм планирования, реализующий предпочтения потокам с интенсивным вводом-выводомОжидание события
Тайм — аут
Процессор
Новый поток
Очередь 2
Очередь 1
Переключение контекстов потоков связано с потерями процессорного времени.
С увеличением времени кванта ухудшается обслуживание пользователей.
В алгоритмах, основанных на квантовании, ОС не имеет никаких сведений о характеристиках решаемых задач. -
17 слайд
17
Алгоритмы приоритетного планирования
Процессор
Назначение приоритета
Тайм-аут
Очередь высшего приоритета
Очередь низшего приоритета
Ожидание события
Ожидание события
Тайм-аут
Завершение (ошибка)
Новый поток
Приоритетное переключение с квантованием -
18 слайд
18
31
30
16
-1
0
15
Системные приоритеты
Пользоват. приоритеты
7
8
6
Наивысший
Повышенный
Обычный
Пониженный
Наинизший
Поток обнуления страниц
Пустой поток
Базовый приоритет
Наивысший
Наинизший
Очереди системных потоков и потоков псевдореального времени
Наивысший
Наинизший
ПРОЦЕССОР -
19 слайд
19
8. Взаимодействие и синхронизация процессов и потоков
8.1. Проблемы взаимодействия и синхронизации -
20 слайд
20
Взаимоблокировки (тупики, deadlock)
Группа процессов находится в тупиковой ситуации, если каждый процесс из группы ожидает события, которое может вызвать только другой процесс из этой же группы
Процесс
Ресурс
R1
P2
R2
P1
Исходное распределение ресурсов
R1
P2
R2
P1
P2
P1
R1
R2
Тупиковая ситуация -
21 слайд
21
Проблема “голодание”
R
R
R
R
P1
P2
P3
P1
P2
P3
P1
P2
P3
P1
P2
P3
Активный
Блокированные
Блокированные
Активный
Активный
Блокированные
Блокированные
Активный -
22 слайд
22
8.2. Синхронизирующие объекты ОС
Для синхронизации потоков, принадлежащих разным процессам, ОС должна предоставлять потокам системные объекты синхронизации.
К таким объектам относятся события (event), мьютексы (mutex – mutual exclusion – взаимное исключение), системные семафоры и др.
Объект-событие используется для того, чтобы оповестить потоки о том, что некоторые действия завершены.
Мьютекс (простейший двоичный семафор) используется для управления доступом к данным.
Семафоры используются для оповещения свершения последовательности событий.
Для синхронизации используются также “обычные ” объекты ОС: файлы, процессы, потоки
Все объекты синхронизации могут находиться в сигнальном и несигнальном (свободном) состоянии. Поток с помощью системного вызова WAIT(X) может синхронизировать свое выполнение с объектом синхронизации X. С помощью системного вызова SET(X) поток может перевести объект X в сигнальное состояние. Кроме того, в ОС определен набор сигналов для логической связи меду процессами, а также процессами и пользователями (терминалами). -
23 слайд
23
Мониторы – еще один, более надежный способ синхронизации, предложенный в 1974 г. одним из классиков компьютерных наук профессором Чарльзом Хоаром.
Основные компоненты ОС следующие: управление процессами; управление основной памятью; управление файлами; управление системой ввода-вывода; управление внешней памятью; поддержка сетей; система защиты; система поддержки командного интерпретатора; графическая оболочка.
Монитор – еще один удобный механизм синхронизации процессов по ресурсам. Он более надежен, чем семафоры, поскольку вызов операции монитора автоматически обеспечивает разблокировку ресурса после завершения вызова.
8.3 Мониторы
Монитор содержит описание общих для процессов данных и операций над ними, таких, что в каждый момент не более чем один параллельный процесс может выполнять какую-либо операцию монитора.
Монитор – многовходовый модуль M, в котором определены общие для процессов данные D (скрытые) и (абстрактные) операции P1, … PN над этими данными (в виде процедур).
В каждый момент не более чем один из параллельных процессов может вызвать какую-либо из операций: M.Pi (X, Y, …)
Вызов каждой операции монитора – атомарен (как и операции над семафором). -
24 слайд
24
Выводы:
Основные компоненты ОС следующие: управление процессами; управление основной памятью; управление файлами; управление системой ввода-вывода; управление внешней памятью; поддержка сетей; система защиты; система поддержки командного интерпретатора; графическая оболочка.
Процесс – программа пользователя при ее исполнении. ОС поддерживает средства создания, удаления, синхронизации, приостановки и возобновления, взаимодействия процессов. Облегченный процесс исполняется в том же пространстве виртуальной памяти, что и процесс-родитель.
Классические средства синхронизации процессов – семафоры и мониторы. Семафор может находиться в открытом и закрытом состояниях и в закрытом состоянии блокирует все, кроме одного, процессы, которым требуется доступ к общему ресурсу.
Монитор – еще один удобный механизм синхронизации процессов по ресурсам. Он более надежен, чем семафоры, поскольку вызов операции монитора автоматически обеспечивает разблокировку ресурса после завершения вызова. -
25 слайд
25
Контрольные вопросы:Назовите компоненты операционной системы.
Какие действия по управлению процессами выполняет ОС?
Что такое графическая оболочка ОС?
Что такое процесс?
Что такое дескриптор процесса?
Что такое облегченный процесс?
В каких состояниях может находиться процесс?
Что такое семафор и какие операции над ним определены?
Что такое критическая секция?
В чем суть принципа взаимного исключения критических секций?
Что такое атомарная операция?
Что такое взаимная блокировка процессов (deadlock)?
Что такое монитор?
Какое условие для выполнения своих операций обеспечивает монитор?
Рабочие листы
к вашим урокам
Скачать
Краткое описание документа:
Презентация может быть полезна для обучающихся по углубленной программе «Информатики» или «Операционные системы»
Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:
6 386 918 материалов в базе
- Выберите категорию:
- Выберите учебник и тему
- Выберите класс:
-
Тип материала:
-
Все материалы
-
Статьи
-
Научные работы
-
Видеоуроки
-
Презентации
-
Конспекты
-
Тесты
-
Рабочие программы
-
Другие методич. материалы
-
Найти материалы
Другие материалы
- 22.11.2022
- 1203
- 33
- 22.11.2022
- 76
- 1
- 22.11.2022
- 57
- 0
- 22.11.2022
- 87
- 1
- 22.11.2022
- 110
- 0
- 22.11.2022
- 104
- 0
- 22.11.2022
- 83
- 1
- 22.11.2022
- 127
- 1
Вам будут интересны эти курсы:
-
Курс профессиональной переподготовки «Управление персоналом и оформление трудовых отношений»
-
Курс повышения квалификации «Методика написания учебной и научно-исследовательской работы в школе (доклад, реферат, эссе, статья) в процессе реализации метапредметных задач ФГОС ОО»
-
Курс профессиональной переподготовки «Организация и предоставление туристских услуг»
-
Курс повышения квалификации «Введение в сетевые технологии»
-
Курс повышения квалификации «Финансы предприятия: актуальные аспекты в оценке стоимости бизнеса»
-
Курс повышения квалификации «Использование активных методов обучения в вузе в условиях реализации ФГОС»
-
Курс повышения квалификации «Организация маркетинга в туризме»
-
Курс повышения квалификации «Мировая экономика и международные экономические отношения»
-
Курс профессиональной переподготовки «Корпоративная культура как фактор эффективности современной организации»
-
Курс профессиональной переподготовки «Методика организации, руководства и координации музейной деятельности»
-
Курс профессиональной переподготовки «Организация деятельности по водоотведению и очистке сточных вод»
-
Курс профессиональной переподготовки «Организация процесса страхования (перестрахования)»
-
Курс профессиональной переподготовки «Осуществление и координация продаж»
-
Курс профессиональной переподготовки «Информационная поддержка бизнес-процессов в организации»
-
Курс профессиональной переподготовки «Управление качеством»
-
Настоящий материал опубликован пользователем Улыбина Елена Львовна. Инфоурок является
информационным посредником и предоставляет пользователям возможность размещать на сайте
методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них
сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайтЕсли Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с
сайта, Вы можете оставить жалобу на материал.Удалить материал
-
- На сайте: 3 года
- Подписчики: 0
- Всего просмотров: 339
-
Всего материалов:
2
Слайд 1
Описание слайда:
Операционные системы
Автор В.А.Серков
Подсистема управления процессами
Слайд 2
Описание слайда:
Процесс (или по-другому, задача) — абстракция, описывающая выполняющуюся программу.
Процесс (или по-другому, задача) — абстракция, описывающая выполняющуюся программу.
Для операционной системы процесс представляет собой единицу работы, заявку на потребление системных ресурсов.
Слайд 3
Описание слайда:
Программа это статический текст, который представляет собой последовательность машинных команд и хранится на одном из внешних носителей.
Программа это статический текст, который представляет собой последовательность машинных команд и хранится на одном из внешних носителей.
После загрузки программы в оперативную память и последующего запуска начинается процесс выполнения программы (процесс).
Слайд 4
Описание слайда:
Среда выполнения программы
Слайд 5
Описание слайда:
Реализация процесса
Слайд 6
Описание слайда:
Прикладная программа выполняет систематическую последовательность действий с данными. Данные представляются и хранятся на т.н. носителях данных. Совокупность носителей данных, используемых при какой-либо обработке данных, будем называть информационной средой.
Прикладная программа выполняет систематическую последовательность действий с данными. Данные представляются и хранятся на т.н. носителях данных. Совокупность носителей данных, используемых при какой-либо обработке данных, будем называть информационной средой.
Набор данных, содержащихся в какой-либо момент в информационной среде, будем называть состоянием этой информационной среды.
Слайд 7
Описание слайда:
Процесс можно определить как последовательность сменяющих друг друга состояний некоторой информационной среды.
Процесс можно определить как последовательность сменяющих друг друга состояний некоторой информационной среды.
Слайд 8
Описание слайда:
Выполнение — активное состояние процесса, во время которого процесс обладает всеми необходимыми ресурсами и непосредственно выполняется процессором.
Выполнение — активное состояние процесса, во время которого процесс обладает всеми необходимыми ресурсами и непосредственно выполняется процессором.
Слайд 9
Описание слайда:
Ожидание — пассивное состояние процесса, процесс заблокирован, он не может выполняться по своим внутренним причинам.
Ожидание — пассивное состояние процесса, процесс заблокирован, он не может выполняться по своим внутренним причинам.
Слайд 10
Описание слайда:
Готовность — также пассивное состояние процесса, но в этом случае процесс заблокирован в связи с внешними обстоятельствами.
Готовность — также пассивное состояние процесса, но в этом случае процесс заблокирован в связи с внешними обстоятельствами.
Слайд 11
Описание слайда:
Контекст и дескриптор процесса
Слайд 12
Слайд 13
Слайд 14
Описание слайда:
Состояние операционной среды отображается состоянием регистров и программного счетчика, режимом работы процессора, указателями на открытые файлы, информацией о незавершенных операциях ввода-вывода, кодами ошибок выполняемых данным процессом системных вызовов и т.д. Эта информация называется контекстом процесса.
Состояние операционной среды отображается состоянием регистров и программного счетчика, режимом работы процессора, указателями на открытые файлы, информацией о незавершенных операциях ввода-вывода, кодами ошибок выполняемых данным процессом системных вызовов и т.д. Эта информация называется контекстом процесса.
Кроме этого, операционной системе для реализации планирования процессов требуется дополнительная информация: идентификатор процесса, состояние процесса, данные о степени привилегированности процесса, место нахождения кодового сегмента и другая информация. Эта информация называют дескриптором процесса.
Слайд 15
Описание слайда:
Очереди процессов представляют собой дескрипторы отдельных процессов, объединенные в списки. Таким образом, каждый дескриптор, кроме всего прочего, содержит, по крайней мере, один указатель на другой дескриптор, соседствующий с ним в очереди.
Очереди процессов представляют собой дескрипторы отдельных процессов, объединенные в списки. Таким образом, каждый дескриптор, кроме всего прочего, содержит, по крайней мере, один указатель на другой дескриптор, соседствующий с ним в очереди.
Такая организация очередей позволяет легко их переупорядочивать, включать и исключать процессы, переводить процессы из одного состояния в другое.
Слайд 16
Описание слайда:
Создать процесс — это значит:
Создать процесс — это значит:
— создать информационные структуры, описывающие данный процесс, то есть его дескриптор и контекст;
— включить дескриптор нового процесса в очередь готовых процессов;
— загрузить кодовый сегмент процесса в оперативную память или в область свопинга.
Слайд 17
Описание слайда:
Алгоритмы планирования процессов
Слайд 18
Описание слайда:
Планирование процессов включает в себя решение следующих задач:
Планирование процессов включает в себя решение следующих задач:
— определение момента времени для смены выполняемого процесса;
— выбор процесса на выполнение из очереди готовых процессов;
— переключение контекстов «старого» и «нового» процессов.
Первые две задачи решаются программными средствами, а последняя в значительной степени аппаратно.
Слайд 19
Описание слайда:
Режим квантования
Каждому процессу определяется фиксированный квант (промежуток) времени и операционная система поочередно выделяет им ресурсы процессора, смена активного процесса происходит, если:
— процесс завершился и покинул систему;
— произошла ошибка;
— процесс перешел в состояние ОЖИДАНИЕ;
— исчерпан квант процессорного времени, отведенный данному процессу.
Слайд 20
Описание слайда:
Приоритетное планирование
Приоритет — это число, характеризующее степень привилегированности процесса при использовании ресурсов вычислительной машины, в частности, процессорного времени: чем выше приоритет, тем выше привилегии.
Всегда из очереди готовых процессов выбирается для выполнения тот, который обладает наивысшим приоритетом.
Слайд 21
Описание слайда:
Относительные приоритеты
В системах с относительными приоритетами активный процесс выполняется до тех пор, пока он сам не покинет процессор, перейдя в состояние ожидание (или же произойдет ошибка, или процесс завершится).
Слайд 22
Описание слайда:
Абсолютные приоритеты
В системах с абсолютными приоритетами выполнение активного процесса прерывается еще при одном условии: если в очереди готовых процессов появился процесс, приоритет которого выше приоритета активного процесса. В этом случае прерванный процесс переходит в состояние готовности
Слайд 23
Описание слайда:
Вытесняющие и невытесняющие алгоритмы планирования
Невытесняющая многозадачность — это способ планирования процессов, при котором активный процесс выполняется до тех пор, пока он сам, по собственной инициативе, не отдаст управление планировщику операционной системы для того, чтобы тот выбрал из очереди другой, готовый к выполнению процесс.
Вытесняющая многозадачность — это такой способ, при котором решение о переключении процессора с выполнения одного процесса на выполнение другого процесса принимается планировщиком операционной системы, а не самой активной задачей.
Слайд 24
Описание слайда:
При вытесняющей многозадачности механизм планирования задач целиком сосредоточен в операционной системе, и программист пишет свое приложение, не заботясь о том, что оно будет выполняться параллельно с другими задачами. При этом операционная система выполняет следующие функции:
При вытесняющей многозадачности механизм планирования задач целиком сосредоточен в операционной системе, и программист пишет свое приложение, не заботясь о том, что оно будет выполняться параллельно с другими задачами. При этом операционная система выполняет следующие функции:
— определяет момент снятия с выполнения активной задачи;
— запоминает ее контекст;
— выбирает из очереди готовых задач следующую и запускает ее на выполнение, загружая ее контекст.
Слайд 25
Описание слайда:
При невытесняющей многозадачности механизм планирования распределен между системой и прикладными программами.
При невытесняющей многозадачности механизм планирования распределен между системой и прикладными программами.
Прикладная программа, получив управление от операционной системы, сама определяет момент завершения своей очередной итерации и передает управление операционной системе с помощью какого-либо системного вызова, а операционная система формирует очереди задач и выбирает в соответствии с некоторым алгоритмом (например, с учетом приоритетов) следующую задачу на выполнение.
Такой механизм создает проблемы и для пользователей, и для разработчиков.
Слайд 26
Описание слайда:
Процессы Windows XP
Слайд 27
Описание слайда:
rundll32.exe
Утилита командной строки в среде Windows, выполняет следующую задачу — запуск библиотеки (DLL — Dynamic Link Library) как приложения, в том числе позволяя запускать некоторые функции, скомпилированные в DLL-файлах.
Слайд 28
Описание слайда:
cisvc.exe
(Microsoft Index Service Helper)
Контролирует использование памяти процессом CIDAEMON.exe и предотвращает проблемы, связанные с нехваткой памяти. Не рекомендуется завершать работу процесса, если вы используете службу индексации на локальном компьютере.
Слайд 29
Описание слайда:
cisvc.exe
Файл cisvc.exe всегда расположен в каталоге C:WindowsSystem32. В случае обнаружения этого файла в любом другом каталоге он должен быть незамедлительно удален. В настоящее время известно несколько вирусов (например, VBS.Spiltron@mm, VBS.Ypsan.E@mm, W32.HLLW.Gaobot.EE и другие), использующих имя csrss.exe для сокрытия своего присутствия в системе.
Слайд 30
Описание слайда:
Explorer.exe
Графическая оболочка операционной системы Microsoft Windows, включающая меню пуск, рабочий стол, панель инструментов и файловый менеджер. В случае удаления этого процесса, исчезнет из виду графический интерфейс для Windows.
Слайд 31
Описание слайда:
Explorer.exe
Файл Explorer.exe расположен в папке C:Windows. В случае обнаружения этого файла в любом другом каталоге он должен быть незамедлительно удален. Наиболее распространенные вирусы, использующие для сокрытия имя Explorer.exe – W32.MyDoom, w32.Codered, BKDR_ZAPCHAST.
Слайд 32
Описание слайда:
vsmon.exe
Процесс принадлежащий персональному межсетевому экрану ZoneAlarm. Он используется для контроля интернет трафика и создания предупреждений в зависимости от настроек безопасности пользователя.
Слайд 33
Описание слайда:
spoolsv.exe
Отвечает за обработку процессов печати на локальном компьютере в операционных системах Microsoft Windows. В случае завершения процесса spoolsv.exe, локальный пользователь не сможет распечатывать задания на локальном принтере.
Слайд 34
Описание слайда:
spoolsv.exe
Файл spoolsv.exe всегда расположен в C:WindowsSystem32 директории. В случае обнаружения этого файла в любом другом каталоге он должен быть незамедлительно удален. В настоящее время известно несколько вирусов (например Backdoor.Ciadoor.B, VBS.Masscal.Worm, Hacktool.Privshell и другие), использующих имя spoolsv.exe для сокрытия своего присутствия в системе.
Слайд 35
Описание слайда:
LSASS.EXE
Является сервером аутентификации локальной защиты, создающим процесс, ответственный за проверку пользователей для службы Winlogon. Данный процесс использует пакеты аутентификации, такие как Msgina.dll. Если аутентификация успешна, процесс Lsass создает маркер доступа пользователя, который используется для запуска пользовательской оболочки. Другие процессы, инициализируемые пользователем, наследуют данный маркер.
Слайд 36
Описание слайда:
CSRSS.EXE
Часть пользовательской Win32 подсистемы. SRSS — сокращение от «client/server run-time subsystem» (клиент/серверная подсистема). csrss отвечает за консольные приложения, создание/удаление потоков и за 16-битную виртуальную среду MS-DOS.
Файл csrss.exe всегда расположен в каталоге C:\Windows\System32/. В случае обнаружения этого файла в любом другом каталоге он должен быть незамедлительно удален. В настоящее время известно несколько десятков вирусов (например Trojan.Webus, W32.Dalbug.Worm, Spyware.LoverSpy и множество других), использующих имя csrss.exe для сокрытия своего присутствия в системе.
Слайд 37
Описание слайда:
SMSS.EXE
Данный процесс представляет подсистему менеджера сеансов.
Данная подсистема является ответственной за запуск пользовательского сеанса. Этот процесс инициализируется системным потоком и ответствен за различные действия, включая запуск процессов Winlogon и Win32 (Csrss.exe) и установку системных переменных. После запуска данных процессов процесс Smss ожидает их завершения. При «нормальном» завершении процессов система корректно завершает работу. Если процессы завершаются аварийно, процесс Smss.exe заставляет систему прекратить отвечать на запросы. Этот процесс нельзя завершить из менеджера задач.
Файл smss.exe расположен в каталоге c:windowsSystem32. В случае обнаружения этого файла в любом другом каталоге он должен быть незамедлительно удален. Наиболее распространенные вирусы, использующие для сокрытия своего присутствия в системе имя smss.exe – W32.Dalbug.Worm, Adware.DreamAd, Win32. Brontok, Win32 Sober, Win32.Landis и другие.
Слайд 38
Описание слайда:
Ctfmon.exe
Управляет технологиями альтернативного ввода данных. Он запускает языковую панель в системной трее при старте операционной системы, и работает в фоновом режиме даже после закрытия всех программ пакета Microsoft Office, независимо от того, запускались ли программы Office XP.
Слайд 39
Описание слайда:
Ctfmon.exe
Программа Ctfmon.exe активирует процессор текстового ввода компонента «Альтернативный ввод данных» и языковую панель Microsoft Office. Программа производит мониторинг активных окон и предоставляет поддержку клавиатуры, перевода, распознавания речи и рукописных символов, а также других технологий альтернативного ввода данных. Удалять Ctfmon.exe не рекомендуется, потому что это может вызвать проблемы в работе программ пакета Microsoft Office.
Файл Ctfmon.exe всегда расположен в C:\Windows\System32. В случае обнаружения этого файла в любом другом каталоге он должен быть незамедлительно удален. В настоящее время известно множество вирусов (например W32.Snow.A, Spyware.UltraKeylogger, Trojan.Satiloler и другие), использующих имя Ctfmon.exe для сокрытия своего присутствия в системе.