Похожие презентации:
Процессы и потоки. Типы многозадачности
1.
Процессы и потоки1
2.
Типы многозадачностиСуществует 2 типа многозадачности:
• Процессорная многозадачность. В таком случае наименьшим
элементом управляемого кода, которым может управлять планировщик
ОС, является программа (процесс).
• Поточная
многозадачность.
Наименьший
элемент
управляемого кода - поток (одна программа может
выполнять 2 и более задачи одновременно).
2
3.
Модель процессаа - четыре программы, работающие в многозадачном режиме;
б - концептуальная модель четырёх независимых друг от друга процессов;
в – в отдельно взятый момент времени активна только одна программа.
3
4.
Создание процессаСуществует 4 основных события, приводящих к созданию процессов:
1.
Инициализация системы.
2.
Выполнение работающим процессом системного вызова, предназначенного
для создания процесса.
3.
Запрос пользователя на создание нового процесса.
4.
Инициализация пакетного задания.
4
5.
Завершение процессаНаиболее частые причины завершения процесса:
Обычный выход (добровольно).
Выход при возникновении ошибки (добровольно).
Возникновение фатальной ошибки (принудительно).
Уничтожение другим процессом (принудительно).
5
6.
Состояния процессовПроцесс может находиться в трех состояниях:
выполняемый (в данный момент использующий ЦП);
готовый (работоспособный, но временно приостановленный, чтобы дать
возможность выполниться другому процессу);
заблокированный (не
какое-нибудь событие).
способный
выполняться,
пока
не
возникнет
6
7.
Состояния процессовНа рисунке представлен граф состояний процесса
7
8.
ПланировщикСамый низший уровень структурированной в виде
процессов операционной системы.
Он обрабатывает прерывания и планирует
выполнение процессов. Над этим уровнем находятся
последовательные процессы.
8
9.
ПотокиВ традиционных операционных системах у каждого
процесса есть адресное пространство и единственный поток
управления.
Фактически это почти что определение процесса. Тем не
менее нередко возникают ситуации, когда неплохо было бы
иметь в одном и том же адресном пространстве несколько
потоков управления, выполняемых параллельно, как будто они
являются чуть ли не обособленными процессами (за
исключением общего адресного пространства).
9
10.
Классическая модель потоковУ всех потоков одно адресное пространство, а
значит, они так же совместно используют одни и те же
глобальные переменные.
10
11.
Функции ОС по управлениюпроцессами и потоками:
1
• планирование
процессов,
т.е.
распределение
процессорного
времени
между
несколькими
одновременно выполняющимися в системе процессами
2
• создание и уничтожение процессов
3
• наделение
ресурсами
4
5
процессов
необходимыми
системными
• реализация обмена данными между процессами;
• синхронизация процессов и потоков
11
12.
Процесс - программа, находящаяся в стадии выполнения.Процесс (Process) – абстракция, описывающая выполняющуюся программу.
Потоки возникли как средство распараллеливания вычислений в рамках
одного процесса.
GPT против MBR
1.
2.
3.
4.
GPT допускает неограниченное количество основных разделов,
в то время как MBR допускает только четыре основных, а
остальные — дополнительные.
GPT позволяет создавать разделы любого размера, в то время как
MBR имеет ограничение в 2 ТБ.
GPT хранит копию данных раздела, позволяя восстановить их в
случае повреждения основного заголовка GPT; MBR хранит
только одну копию данных раздела в первом секторе жёсткого
диска, что может привести к потере всей информации в случае
повреждении информации о разделах.
GPT хранит значения контрольной суммы для проверки, что
данные не повреждены, и может выполнить необходимое
восстановление из других областей диска в случае повреждения;
MBR не имеет способа узнать о повреждении данных, вы
можете узнать об этом только если компьютер откажется
загружаться или исчезнет раздел.
12
13.
Преимущества использованияпотоков:
+
• Создание потоков требует от ОС меньших
накладных расходов, чем при создании процессов
+
• Быстрота создания потока по сравнению с
процессом
+
• Потоки одного процесса могут взаимодействовать
не обращаясь к ОС, а используя общую память
+
• Повышение производительности программы
13
14.
Задания и волокна14
15.
1516.
Состояния потоковвыполнение
активное состояние, во время которого поток
обладает всеми необходимыми ресурсами и
непосредственно выполняется процессором
готовность
пассивное состояние, поток заблокирован в связи с
внешними по отношению к нему обстоятельствами
ожидание
пассивное состояние, находясь в котором поток
заблокирован по своим внутренним причинам
16
17.
Граф состояний потока1. Поток выбран на выполнение
2. Поток ожидает завершения ввода/вывода
3. Ввод/вывод завершен (событие произошло)
4. Поток вытеснен планировщиком
17
18.
Создание процессовСобытия, приводящие к созданию
процессов:
загрузка системы
работающий
процесс подаёт
системный вызов
на создание
процесса
запрос
пользователя на
создание процесса
18
19.
Создать процесс означает:создать
описатель
процесса
загрузить коды и
данные исполняемой
программы процесса
с диска в
оперативную память
в многопоточной
системе для каждого
создаваемого процесса
создать как минимум
один поток
выполнения
19
20.
Идентификаторы, дескрипторы иконтекст
Дескриптор процесса содержит такую информацию о процессе, которая
необходима ядру в течение всего жизненного цикла процесса независимо от того,
находится он в активном или пассивном состоянии.
Контекст
процесса содержит менее оперативную, но более объёмную
часть информации о процессе, необходимую для возобновления выполнения
процесса с прерванного места.
20
21.
Планирование и диспетчеризация потоковПланирование:
определение момента времени для
смены текущего активного потока
выбор потока для выполнения из очереди
готовых
21
22.
Планированиединамическое
(решения принимаются во
время работы системы на
основе анализа текущей
ситуации)
статическое
(решения приняты
заранее, работа по
расписанию)
22
23.
Диспетчеризацияэто реализация найденного в результате планирования решения, т.е.:
1
2
3
• сохранение контекста текущего потока
• загрузка контекста потока, выбранного
в результате планирования
• запуск нового потока на выполнение
23
24.
Планирование процессовАлгоритмы планирования
невытесняющие
активный поток выполняется
до тех пор, пока он сам, по
собственной инициативе, не
отдаст управление ОС для
того, чтобы та выбрала из
очереди другой готовый к
выполнению поток
вытесняющие
решение о переключении
процессора с выполнения
одного потока на
выполнение другого потока
принимается ОС, а не
активной задачей
24
25.
Алгоритмы планирования, основанные наквантовании
Квант – ограниченный непрерывный интервал
процессорного
времени,
который
поочередно
предоставляется всем существующим в системе
потокам.
25
26.
Алгоритмы планирования, основанныена приоритетах
Приоритет – это число, характеризующее степень
привилегированности потока при использовании
ресурсов ОС.
Приоритеты
фиксированные
приоритет потоку
назначается ОС при его
создании и не
изменяется за время
существования потока
динамические
приоритет может быть
изменён либо по инициативе
самого потока, либо по
инициативе пользователя, либо
ОС изменяет приоритеты
потоков
26
27.
Приоритетное планированиес относительными
приоритетами – приоритет
учитывается только при выборе
потока на выполнение из
очереди готовых потоков
с абсолютными приоритетами
выполнение активного потока
прерывается, когда в очереди готовых к
выполнению потоков появляется поток,
приоритет которого выше, чем
приоритет активного потока.
27
28.
Смешанный алгоритмпланирования
Квантование +приоритеты
28
29.
Алгоритмы планирования в ОС пакетнойобработки информации
1. "Первый пришел - первым обслужен"
(FIFO)
+ Достоинства:
- простота;
- справедливость.
2. "Кратчайшая задача – первая»
Минимизирует среднее оборотное
время выполнения задачи.
Оборотное
время
–
время,
прошедшее от момента запуска всего
пакета на выполнение до получения
результата задачи.
29
30.
Суть алгоритма: первой на выполнениезапускается самая короткая задача из пакета.
Задачи:
Время выполнения:
A
8 мин.
B
4 мин.
C
4 мин.
D
4 мин.
30
31.
Достоинства:Недостатки:
уменьшение оборотного
времени
справедливость
требуется превентивная
информация о времени
выполнения задач
длинный процесс, занявший
процессор, не пустит более новые
краткие процессы, которые пришли
позже.
31
32.
Планирование в интерактивных системахЦиклическое планирование (квантование)
простота;
справедливость.
-
слишком
малый
квант
времени
приводит к
частому
переключению
процессов
и
снижению
производительности;
- слишком большой квант
может
привести
к
увеличению времени ответа
на интерактивный запрос.
32
33.
Планирование в системах реального времениКритерий эффективности – способность системы выдерживать
заранее заданные интервалы времени между запуском программы и
получением результата (реактивность системы).
Системы реального времени
жесткие
гибкие
несоблюдение временных
ограничений приводит к
катастрофическим последствиям
нарушения временного
графика нежелательны, но
допустимы
33
34.
Внешние событияпериодические – начиная с
момента первоначального запроса
все будущие моменты
возникновения задачи можно
определить заранее
спорадические - моменты
возникновения запросов
заранее неизвестны
Задачи
независимые
взаимосвязанные
34
35.
Классы приоритетов процессов и приоритетыпотоков Win32
35
36.
Схема назначения приоритетапотокам в Windows NT
Уровни приоритета потоков.
36
37.
Алгоритм планирования LinuxВ операционной системе Linux поддерживаются три класса потоков:
1. потоки реального времени, обслуживаемые по алгоритму FIFO;
2. потоки реального времени, обслуживаемые в порядке циклической очереди;
3. потоки разделения времени.
Linux различает 140 уровней приоритета.
Потоки реального времени имеют приоритеты от 0 до 99, причем 0 –
самый высокий приоритет.
Обычному потоку ставится в соответствие уровень приоритета от 100 до 139.
37
38.
Очередь исполнения и массивы приоритетов длякаждого ЦП в Linux-планировщике О(1)
38
39.
Межпроцессное взаимодействиесогласование действий процессов
передача информации от одного процесса
другому
контроль над деятельностью процессов
39
40.
Потребность в синхронизации потоковвозникает только в мультипрограммной
операционной системе и связана с
совместным использованием аппаратных
средств
(Набор технических и программных средств,
работающих совместно для выполнения
одной или нескольких сходных задач)
и
информационных
ресурсов
вычислительной системы
40
41.
Гонки (взаимные состязания)Состязания
(гонки)– ситуация, когда два или более потока
обрабатывают разделяемые данные и конечный результат зависит от
соотношения скоростей потоков.
А
Б
В
41
42.
Критическая секция – это часть программы, результат выполнения которойможет непредсказуемо меняться, если переменные, относящиеся к этой части
программы, изменяются другими потоками в то время, пока выполнение этой части
ещё не завершено.
Критическая
секция
всегда
определяется
по
отношению
к
определённым
критическим данным,
при несогласованном изменении которых могут
возникнуть нежелательные эффекты.
Чтобы исключить эффект гонок по отношению к
критическим данным, необходимо обеспечить, чтобы
в каждый момент времени в критической секции,
связанной с этими данными, находился только один
поток.
42
Программирование