SlideShare a Scribd company logo
1 of 48
Раздел 2.
Управление процессами в
операционных системах
Процессы и потоки
Планирование процессов
Прерывания и системные вызовы
Синхронизация процессов и потоков
1
Процессы и потоки
в операционных системах
2
3
Понятие процесса
Уточнение терминологии
 Термин «программа»
 Термин «задание»
 Термин «процесс»
– не может использоваться для
описания происходящего внутри ОС.
– не может использоваться для
описания происходящего внутри ОС.
Для статических объектов
Для динамических объектов
4
Понятие процесса
Процесс и программа
 Термин «процесс» характеризует совокупность
– набора исполняющихся команд
– ассоциированных с ним ресурсов
– текущего момента его выполнения
 Процесс ≠ программа, которая исполняется:
– для исполнения одной программы может организовываться
несколько процессов
– в рамках одного процесса может исполняться несколько
программ
– в рамках процесса может исполняться код, отсутствующий в
программе
находящуюся под управлением ОС
5
Состояния процесса
процесс
не исполняется
исполнение
вход
выход
выбран для исполненияприостановка
ожидание готовность
выбран для исполненияожидание события
прерывание
событие произошло
рождение
закончил
исполнение
допуск
к планированию
завершение работы
6
Набор операций
 создание процесса – завершение процесса
 запуск процесса – приостановка процесса
 блокирование процесса – разблокирование
процесса
 (изменение приоритета)
одноразовые
многоразовые
7
Process Control Block
и контекст процесса
 состояние процесса
 программный счетчик
 содержимое регистров
 данные для планирования использования процессора и
управления памятью
 учетная информация
 сведения об устройствах ввода-вывода, связанные с
процессом
Регистровый
контекст
Системный контекст
PCB
Код и данные в адресном пространстве
Пользовательский контекст
Контекст процесса
8
Пример генеалогического леса процессов
Процесс 1 Процесс 2
Процесс 12 Процесс 255
Процесс 3
Процесс 14 Процесс 15 Процесс 128
Процесс 4 Процесс 23
Процесс 192
9
Создание процесса
 Порождение нового PCB с состоянием процесса
рождение
 Присвоение идентификационного номера
 Выделение ресурсов
 Занесение в адресное пространство кода и установка
значения программного счетчика
 Окончание заполнения PCB
 Изменение состояния процесса на готовность
из ресурсов родителя
из ресурсов ОС
дубликат родителя из файла
10
Завершение процесса
 Изменение состояния процесса на закончил
исполнение
 Освобождение ресурсов
 Очистка соответствующих элементов в PCB
 Сохранение в PCB информации о причинах
завершения
11
Запуск процесса
 Выбор одного из процессов, находящихся в состоянии готовность
 Изменение состояния выбранного процесса на исполнение
 Обеспечение наличия в оперативной памяти информации, необходимой
для его выполнения
 Восстановление значений регистров
 Передача управления по адресу, на который указывает программный
счетчик
12
Приостановка процесса
 Автоматическое сохранение программного счетчика и
части регистров (работа hardware)
 Передача управления по специальному адресу (работа
hardware)
 Сохранение динамической части регистрового и
системного контекстов в PCB
 Изменение состояния процесса на готовность
 Обработка прерывания
13
Блокирование процесса
 Обработка системного вызова
 Сохранение контекста процесса в PCB
 Перевод процесса в состояние ожидание
14
Разблокирование процесса
 Уточнение того, какое именно событие
произошло
 Проверка наличия процесса, ожидающего этого
события
 Перевод ожидающего процесса в состояние
готовность
 Обработка произошедшего события
15
Процесс 1
Процесс 2
Ожидание
Исполнение
Прерывание
Выполнение кода
пользователя
Выполнение кода
ОС
Работа hardware
Сохранение
контекста
Обработка
прерывания
Готовность Исполнение
Готовность
Планирование
Работа hardware
Выполнение кода ОС
Выполнение кода
пользователя
Восстановление
контекста
Пример цепочки операций
Планирование процессов в
операционных системах
16
17
Уровни планирования процессов
 Долгосрочное планирование – планирование
заданий.
 Среднесрочное планирование – swapping.
 Краткосрочное планирование – планирование
использования процессора.
18
Цели планирования
 Справедливость
 Эффективность
 Сокращение полного времени выполнения
(turnaround time)
 Сокращение времени ожидания (waiting time)
 Сокращение времени отклика (response time)
19
Желаемые свойства
алгоритмов планирования
 Предсказуемость
 Минимизация накладных расходов.
 Равномерность загрузки вычислительной системы.
 Масштабируемость.
20
Параметры планирования
 Статические параметры вычислительной системы –
например, предельные значения ее ресурсов.
 Статические параметры процесса – кем запущен,
степень важности, запрошенное процессорное время,
какие требуются ресурсы и т.д.
 Динамические параметры вычислительной системы –
например, количество свободных ресурсов в данный
момент.
 Динамические параметры процесса – текущий
приоритет, размер занимаемой оперативной памяти,
использованное процессорное время и т.д.
статические
динамические
21
Вытесняющее и невытесняющее планирование
1. Перевод процесса из состояния исполнение в состояние
закончил исполнение
2. Перевод процесса из состояния исполнение в состояние
ожидание
Принятие только вынужденных решений –
невытесняющее планирование
3. Перевод процесса из состояния исполнение в состояние
готовность
4. Перевод процесса из состояния ожидание в состояние
готовность
Принятие вынужденных и невынужденных решений –
вытесняющее планирование
Вынужденное принятие решения
Невынужденное принятие решения
Алгоритмы планирования
1. FCFS (First Come - First Served) –
невытесняющий;
2. RR (Round Robin) – вытесняющий;
3. SJF (Shortest Job First) – невытесняющий
и вытесняющий;
4. Гарантированное планирование;
5. Приоритетное планирование;
6. Многоуровневые очереди;
7. Многоуровневые очереди с обратной связью.
23
Алгоритмы планирования
В системе разделения времени N пользователей:
Ti – время нахождения i-го пользователя в системе
τi – суммарное процессорное время процессов i-го пользователя
τi ‹‹ Ti /N
τi ›› Ti /N
(τi N) / Ti – коэффициент справедливости.
На исполнение выбираются готовые процессы
пользователя с наименьшим коэффициентом
справедливости
Гарантированное планирование
– пользователь обделен
– пользователю благоволят
24
Алгоритмы планирования
Приоритетное планирование
Каждому процессу процессор выделяется в соответствии с приписанным к нему
числовым значением - приоритетом
Параметры для назначения приоритета бывают:
-внешние
-внутренние
Политика изменения приоритета:
-статический приоритет
-динамический приоритет
25
Алгоритмы планирования
время 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
P0
P1
P2
P3
Приоритетное планирование
невытесняющий
И
Г
P0 P1 P2
готовность
P3
исполнение
P3P1P0P2
Г
И
И И
Г Г
И И
Г Г
И
Г
И И И ИИ
Г Г Г Г Г И И И И И И
Процессы P0 P1 P2 P3
Продолжительность CPU burst 6 2 5 5
Момент появления в очереди 0 2 6 0
Приоритет 4 3 2 1
Г Г Г
Г
26
Алгоритмы планирования
P3
P2
P1
P0
181716151413121110987654321время
Приоритетное планирование
вытесняющий
И
Г
P0 P1 P2
готовность
P3
исполнение
P3P1P0P2
Г
И
И И
Г Г
И И
Г Г
И
Г
И И ИИ И
Г Г Г Г Г И И И И И И
Процессы P0 P1 P2 P3
Продолжительность CPU burst 6 2 5 5
Момент появления в очереди 0 2 6 0
Приоритет 4 3 2 1
Г Г Г Г Г Г Г Г
27
Алгоритмы планирования
Многоуровневые очереди
(Multilevel Queue)
Системные процессы приоритет 0
Процессы ректората приоритет 1
Процессы преподавателей приоритет 2
Фоновые процессы приоритет 3
Процессы студентов приоритет 4
FCFS
RR
RR
RR
RR
28
Алгоритмы планирования
Многоуровневые очереди с обратной связью
(Multilevel Feedback Queue)
Очередь 0 – Приоритет 0
Очередь 1 – Приоритет 1
Очередь 2 – Приоритет 2
Очередь 3 – Приоритет 3
RR с квантом времени 8
RR с квантом времени 16
RR с квантом времени 32
FCFS
Клавиатурный
ввод
Дисковый I/O
29
Алгоритмы планирования
Многоуровневые очереди с обратной связью
(Multilevel Feedback Queue)
Для полного описания необходимо задать
- количество очередей в состоянии готовность
- алгоритм планирования между очередями
- алгоритмы планирования внутри очередей
- куда помещается родившийся процесс
- правила перевода процессов из одной очереди в
другую
30
Основные причины для объединения
усилий процессов
 Повышение скорости решения задач
 Совместное использование данных
 Модульная конструкция какой-либо системы
 Для удобства работы пользователя
Кооперативные или взаимодействующие процессы
- это процессы, которые влияют на поведение друг
друга путем обмена информацией
31
Способы обмена информацией
между процессами
 Сигнальные
 Канальные
 Разделяемая память
Прерывания и
системные вызовы
в операционных системах
32
Система прерываний ОС
Система прерываний – средство,
позволяющее ОС реагировать на внешние
события, происходящие асинхронно
вычислительному процессу:
– сигналы готовности устройства ввода-
вывода;
– аварийные сигналы аппаратуры
вычислительной системы;
– информация о завершении потока и др.
Прерывание (hardware interrupt) – это
событие, генерируемое внешним (по
отношению к процессору) устройством.
Классы прерываний
В зависимости от источника прерывания
делятся на три класса:
– Внешние (аппаратные) прерывания,
связанные с сигналами от внешних
устройств;
– Внутренние прерывания
(исключительные ситуации),
возникающие в результате ошибок
вычислений;
– Программные прерывания (системные
вызовы), представляющие удобный
механизм вызова процедур операционной
системы.
34
Принцип действия клавиатуры
35
Внешние (аппаратные)
прерывания,
или прерывания
 являются асинхронными событиями
 имеют номера
 возникают вследствие подачи
аппаратурой электрических сигналов,
которые передаются на специальный
вход процессора по каналам IRQ
 обрабатываются драйверами
соответствующих внешних устройств 36
Номера каналов IRQ
37
Внутренние прерывания
(исключительные ситуации
или исключения, exceptions)
 являются синхронными событиями
 возникают в результате попытки
выполнения программой команды, которая
не может быть выполнена до конца
 делятся на исправимые и неисправимые
 обрабатываются модулями ядра ОС
38
Пример обработчика
исключительной ситуации
 try
 … // защищаемые от ошибок операторы
 except
 … // операторы обработки исключительной
ситуации
 end;
39
Программные прерывания
(системные вызовы, system calls)
 являются синхронными событиями
 возникают вследствие использования
команды программного прерывания INT
 обрабатываются процедурами ОС,
обслуживающими системные вызовы
40
Пример системного вызова
#include <sys/types.h>
#include <sys/socket.h>
int connect (int sockfd,
struct sockaddr *serv_addr, int addrlen);
41
Механизм прерываний
 Для реализации механизм прерываний должен
поддерживаться аппаратными средствами компьютера
и программными средствами ОС.
 Для упорядочивания процессов обработки прерываний
все источники прерываний делятся по нескольким
приоритетным уровням, а роль арбитра выполняет
диспетчер прерываний ОС.
Способы выполнения прерываний
Существует два основных способа выполнения
прерывания:
– Векторный – в процессор передается номер вызываемой
процедуры обработки прерываний;
– Опрашиваемый – процессор последовательно опрашивает
потенциальные источники запроса прерываний.
Последовательность действий
по обработке прерываний:
1. Автоматический вызов процедуры
обработки прерывания
2. Прерывание исполнения текущего
процесса и сохранение его состояния в
регистрах процессора
3. Выполнение процессором команд
обработчика прерываний
4. Восстановление состояния прерванного
процесса и продолжение его выполнения
Синхронизация
процессов и потоков
в операционных системах
45
Синхронизация
процессов и потоков
 Потоки выполняются независимо друг от друга.
 Любое взаимодействие процессов или потоков
связано с их синхронизацией.
 Синхронизация – согласование скоростей
потоков путем приостановки потока до
наступления некоторого события и
последующей активизации приостановленного
потока после наступления этого события.
Механизмы синхронизации
процессов и потоков
Для обеспечения синхронизации процессов и потоков,
выполняющих общие задачи и совместно использующих общие
ресурсы, в операционных системах используются специальные
механизмы:
 Критические секции;
 Сигналы;
 Семафоры;
 События;
 Таймеры.
Проблемы при отсутствии синхронизации
При отсутствии таких механизмов
возможны нежелательные последствия,
такие как гонки и тупики.
– Гонка – ситуация, при которой два или более
потоков обрабатывают разделяемые данные
и конечный результат зависит от
соотношения скоростей потоков.
– Тупик (взаимная блокировка, клинч,
дедлок) – ситуация, при которой два и более
потоков взаимно блокируют действия друг
друга.

More Related Content

What's hot

Customized Scrum
Customized ScrumCustomized Scrum
Customized ScrumAbdul Karim
 
Jenis kabel network
Jenis kabel networkJenis kabel network
Jenis kabel networkilzannafri
 
Етапи розв'язування задач за допомогою комп'ютера
Етапи розв'язування задач за допомогою комп'ютераЕтапи розв'язування задач за допомогою комп'ютера
Етапи розв'язування задач за допомогою комп'ютераSoltys Ola
 

What's hot (6)

Kahoot Tutorial
Kahoot TutorialKahoot Tutorial
Kahoot Tutorial
 
Customized Scrum
Customized ScrumCustomized Scrum
Customized Scrum
 
Jenis kabel network
Jenis kabel networkJenis kabel network
Jenis kabel network
 
Nota CPU
Nota CPUNota CPU
Nota CPU
 
Secadora Teka TKS2 650
Secadora Teka TKS2 650Secadora Teka TKS2 650
Secadora Teka TKS2 650
 
Етапи розв'язування задач за допомогою комп'ютера
Етапи розв'язування задач за допомогою комп'ютераЕтапи розв'язування задач за допомогою комп'ютера
Етапи розв'язування задач за допомогою комп'ютера
 

Similar to презентация 2

Операционные системы 2015, лекция № 4
Операционные системы 2015, лекция № 4Операционные системы 2015, лекция № 4
Операционные системы 2015, лекция № 4Aleksey Bragin
 
6 кареев киров
6 кареев киров6 кареев киров
6 кареев кировqasib
 
обеспечивающие программы
обеспечивающие программыобеспечивающие программы
обеспечивающие программыDulat Zhansugurov
 
Процессы и потоки. Планирование и взаимоблокировки
Процессы и потоки. Планирование и взаимоблокировкиПроцессы и потоки. Планирование и взаимоблокировки
Процессы и потоки. Планирование и взаимоблокировкиEvgeniy Mironov
 
Микропроцессорная техника
Микропроцессорная техникаМикропроцессорная техника
Микропроцессорная техникаYerlanAbilmazhenov
 
Tools to ensure quality of information system
Tools to ensure quality of information system Tools to ensure quality of information system
Tools to ensure quality of information system soft-point
 
Основные принципы управления процессором и процессами
Основные принципы управления процессором и процессамиОсновные принципы управления процессором и процессами
Основные принципы управления процессором и процессамиkurbanovafaina
 
Доклад "Мониторинг серверных приложений"
Доклад "Мониторинг серверных приложений"Доклад "Мониторинг серверных приложений"
Доклад "Мониторинг серверных приложений"Grigoriy Orlov
 
Процессы и потоки
Процессы и потокиПроцессы и потоки
Процессы и потокиEvgeniy Mironov
 
разработка технического задания
разработка технического заданияразработка технического задания
разработка технического заданияolalapim10
 
разработка технического задания 1
разработка технического задания 1разработка технического задания 1
разработка технического задания 1olalapim10
 
ОС в реальном времени
ОС в реальном времениОС в реальном времени
ОС в реальном времениNick535
 
Лекция №3 Организация ЭВМ и систем
Лекция №3 Организация ЭВМ и системЛекция №3 Организация ЭВМ и систем
Лекция №3 Организация ЭВМ и системpianist2317
 

Similar to презентация 2 (20)

лекция 2
лекция 2лекция 2
лекция 2
 
Операционные системы 2015, лекция № 4
Операционные системы 2015, лекция № 4Операционные системы 2015, лекция № 4
Операционные системы 2015, лекция № 4
 
Theme 07
Theme 07Theme 07
Theme 07
 
Презентация 5
Презентация 5Презентация 5
Презентация 5
 
6 кареев киров
6 кареев киров6 кареев киров
6 кареев киров
 
обеспечивающие программы
обеспечивающие программыобеспечивающие программы
обеспечивающие программы
 
Процессы и потоки. Планирование и взаимоблокировки
Процессы и потоки. Планирование и взаимоблокировкиПроцессы и потоки. Планирование и взаимоблокировки
Процессы и потоки. Планирование и взаимоблокировки
 
презентация 1
презентация 1презентация 1
презентация 1
 
Микропроцессорная техника
Микропроцессорная техникаМикропроцессорная техника
Микропроцессорная техника
 
PEEFEXPERT
PEEFEXPERTPEEFEXPERT
PEEFEXPERT
 
Tools to ensure quality of information system
Tools to ensure quality of information system Tools to ensure quality of information system
Tools to ensure quality of information system
 
Основные принципы управления процессором и процессами
Основные принципы управления процессором и процессамиОсновные принципы управления процессором и процессами
Основные принципы управления процессором и процессами
 
Доклад "Мониторинг серверных приложений"
Доклад "Мониторинг серверных приложений"Доклад "Мониторинг серверных приложений"
Доклад "Мониторинг серверных приложений"
 
Процессы и потоки
Процессы и потокиПроцессы и потоки
Процессы и потоки
 
разработка технического задания
разработка технического заданияразработка технического задания
разработка технического задания
 
разработка технического задания 1
разработка технического задания 1разработка технического задания 1
разработка технического задания 1
 
3. Общая характеристика АСУ
3. Общая характеристика АСУ3. Общая характеристика АСУ
3. Общая характеристика АСУ
 
ОС в реальном времени
ОС в реальном времениОС в реальном времени
ОС в реальном времени
 
Лекция № 3 Организация ЭВМ и систем
Лекция № 3 Организация ЭВМ и системЛекция № 3 Организация ЭВМ и систем
Лекция № 3 Организация ЭВМ и систем
 
Лекция №3 Организация ЭВМ и систем
Лекция №3 Организация ЭВМ и системЛекция №3 Организация ЭВМ и систем
Лекция №3 Организация ЭВМ и систем
 

презентация 2

  • 1. Раздел 2. Управление процессами в операционных системах Процессы и потоки Планирование процессов Прерывания и системные вызовы Синхронизация процессов и потоков 1
  • 2. Процессы и потоки в операционных системах 2
  • 3. 3 Понятие процесса Уточнение терминологии  Термин «программа»  Термин «задание»  Термин «процесс» – не может использоваться для описания происходящего внутри ОС. – не может использоваться для описания происходящего внутри ОС. Для статических объектов Для динамических объектов
  • 4. 4 Понятие процесса Процесс и программа  Термин «процесс» характеризует совокупность – набора исполняющихся команд – ассоциированных с ним ресурсов – текущего момента его выполнения  Процесс ≠ программа, которая исполняется: – для исполнения одной программы может организовываться несколько процессов – в рамках одного процесса может исполняться несколько программ – в рамках процесса может исполняться код, отсутствующий в программе находящуюся под управлением ОС
  • 5. 5 Состояния процесса процесс не исполняется исполнение вход выход выбран для исполненияприостановка ожидание готовность выбран для исполненияожидание события прерывание событие произошло рождение закончил исполнение допуск к планированию завершение работы
  • 6. 6 Набор операций  создание процесса – завершение процесса  запуск процесса – приостановка процесса  блокирование процесса – разблокирование процесса  (изменение приоритета) одноразовые многоразовые
  • 7. 7 Process Control Block и контекст процесса  состояние процесса  программный счетчик  содержимое регистров  данные для планирования использования процессора и управления памятью  учетная информация  сведения об устройствах ввода-вывода, связанные с процессом Регистровый контекст Системный контекст PCB Код и данные в адресном пространстве Пользовательский контекст Контекст процесса
  • 8. 8 Пример генеалогического леса процессов Процесс 1 Процесс 2 Процесс 12 Процесс 255 Процесс 3 Процесс 14 Процесс 15 Процесс 128 Процесс 4 Процесс 23 Процесс 192
  • 9. 9 Создание процесса  Порождение нового PCB с состоянием процесса рождение  Присвоение идентификационного номера  Выделение ресурсов  Занесение в адресное пространство кода и установка значения программного счетчика  Окончание заполнения PCB  Изменение состояния процесса на готовность из ресурсов родителя из ресурсов ОС дубликат родителя из файла
  • 10. 10 Завершение процесса  Изменение состояния процесса на закончил исполнение  Освобождение ресурсов  Очистка соответствующих элементов в PCB  Сохранение в PCB информации о причинах завершения
  • 11. 11 Запуск процесса  Выбор одного из процессов, находящихся в состоянии готовность  Изменение состояния выбранного процесса на исполнение  Обеспечение наличия в оперативной памяти информации, необходимой для его выполнения  Восстановление значений регистров  Передача управления по адресу, на который указывает программный счетчик
  • 12. 12 Приостановка процесса  Автоматическое сохранение программного счетчика и части регистров (работа hardware)  Передача управления по специальному адресу (работа hardware)  Сохранение динамической части регистрового и системного контекстов в PCB  Изменение состояния процесса на готовность  Обработка прерывания
  • 13. 13 Блокирование процесса  Обработка системного вызова  Сохранение контекста процесса в PCB  Перевод процесса в состояние ожидание
  • 14. 14 Разблокирование процесса  Уточнение того, какое именно событие произошло  Проверка наличия процесса, ожидающего этого события  Перевод ожидающего процесса в состояние готовность  Обработка произошедшего события
  • 15. 15 Процесс 1 Процесс 2 Ожидание Исполнение Прерывание Выполнение кода пользователя Выполнение кода ОС Работа hardware Сохранение контекста Обработка прерывания Готовность Исполнение Готовность Планирование Работа hardware Выполнение кода ОС Выполнение кода пользователя Восстановление контекста Пример цепочки операций
  • 17. 17 Уровни планирования процессов  Долгосрочное планирование – планирование заданий.  Среднесрочное планирование – swapping.  Краткосрочное планирование – планирование использования процессора.
  • 18. 18 Цели планирования  Справедливость  Эффективность  Сокращение полного времени выполнения (turnaround time)  Сокращение времени ожидания (waiting time)  Сокращение времени отклика (response time)
  • 19. 19 Желаемые свойства алгоритмов планирования  Предсказуемость  Минимизация накладных расходов.  Равномерность загрузки вычислительной системы.  Масштабируемость.
  • 20. 20 Параметры планирования  Статические параметры вычислительной системы – например, предельные значения ее ресурсов.  Статические параметры процесса – кем запущен, степень важности, запрошенное процессорное время, какие требуются ресурсы и т.д.  Динамические параметры вычислительной системы – например, количество свободных ресурсов в данный момент.  Динамические параметры процесса – текущий приоритет, размер занимаемой оперативной памяти, использованное процессорное время и т.д. статические динамические
  • 21. 21 Вытесняющее и невытесняющее планирование 1. Перевод процесса из состояния исполнение в состояние закончил исполнение 2. Перевод процесса из состояния исполнение в состояние ожидание Принятие только вынужденных решений – невытесняющее планирование 3. Перевод процесса из состояния исполнение в состояние готовность 4. Перевод процесса из состояния ожидание в состояние готовность Принятие вынужденных и невынужденных решений – вытесняющее планирование Вынужденное принятие решения Невынужденное принятие решения
  • 22. Алгоритмы планирования 1. FCFS (First Come - First Served) – невытесняющий; 2. RR (Round Robin) – вытесняющий; 3. SJF (Shortest Job First) – невытесняющий и вытесняющий; 4. Гарантированное планирование; 5. Приоритетное планирование; 6. Многоуровневые очереди; 7. Многоуровневые очереди с обратной связью.
  • 23. 23 Алгоритмы планирования В системе разделения времени N пользователей: Ti – время нахождения i-го пользователя в системе τi – суммарное процессорное время процессов i-го пользователя τi ‹‹ Ti /N τi ›› Ti /N (τi N) / Ti – коэффициент справедливости. На исполнение выбираются готовые процессы пользователя с наименьшим коэффициентом справедливости Гарантированное планирование – пользователь обделен – пользователю благоволят
  • 24. 24 Алгоритмы планирования Приоритетное планирование Каждому процессу процессор выделяется в соответствии с приписанным к нему числовым значением - приоритетом Параметры для назначения приоритета бывают: -внешние -внутренние Политика изменения приоритета: -статический приоритет -динамический приоритет
  • 25. 25 Алгоритмы планирования время 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 P0 P1 P2 P3 Приоритетное планирование невытесняющий И Г P0 P1 P2 готовность P3 исполнение P3P1P0P2 Г И И И Г Г И И Г Г И Г И И И ИИ Г Г Г Г Г И И И И И И Процессы P0 P1 P2 P3 Продолжительность CPU burst 6 2 5 5 Момент появления в очереди 0 2 6 0 Приоритет 4 3 2 1 Г Г Г Г
  • 26. 26 Алгоритмы планирования P3 P2 P1 P0 181716151413121110987654321время Приоритетное планирование вытесняющий И Г P0 P1 P2 готовность P3 исполнение P3P1P0P2 Г И И И Г Г И И Г Г И Г И И ИИ И Г Г Г Г Г И И И И И И Процессы P0 P1 P2 P3 Продолжительность CPU burst 6 2 5 5 Момент появления в очереди 0 2 6 0 Приоритет 4 3 2 1 Г Г Г Г Г Г Г Г
  • 27. 27 Алгоритмы планирования Многоуровневые очереди (Multilevel Queue) Системные процессы приоритет 0 Процессы ректората приоритет 1 Процессы преподавателей приоритет 2 Фоновые процессы приоритет 3 Процессы студентов приоритет 4 FCFS RR RR RR RR
  • 28. 28 Алгоритмы планирования Многоуровневые очереди с обратной связью (Multilevel Feedback Queue) Очередь 0 – Приоритет 0 Очередь 1 – Приоритет 1 Очередь 2 – Приоритет 2 Очередь 3 – Приоритет 3 RR с квантом времени 8 RR с квантом времени 16 RR с квантом времени 32 FCFS Клавиатурный ввод Дисковый I/O
  • 29. 29 Алгоритмы планирования Многоуровневые очереди с обратной связью (Multilevel Feedback Queue) Для полного описания необходимо задать - количество очередей в состоянии готовность - алгоритм планирования между очередями - алгоритмы планирования внутри очередей - куда помещается родившийся процесс - правила перевода процессов из одной очереди в другую
  • 30. 30 Основные причины для объединения усилий процессов  Повышение скорости решения задач  Совместное использование данных  Модульная конструкция какой-либо системы  Для удобства работы пользователя Кооперативные или взаимодействующие процессы - это процессы, которые влияют на поведение друг друга путем обмена информацией
  • 31. 31 Способы обмена информацией между процессами  Сигнальные  Канальные  Разделяемая память
  • 32. Прерывания и системные вызовы в операционных системах 32
  • 33. Система прерываний ОС Система прерываний – средство, позволяющее ОС реагировать на внешние события, происходящие асинхронно вычислительному процессу: – сигналы готовности устройства ввода- вывода; – аварийные сигналы аппаратуры вычислительной системы; – информация о завершении потока и др. Прерывание (hardware interrupt) – это событие, генерируемое внешним (по отношению к процессору) устройством.
  • 34. Классы прерываний В зависимости от источника прерывания делятся на три класса: – Внешние (аппаратные) прерывания, связанные с сигналами от внешних устройств; – Внутренние прерывания (исключительные ситуации), возникающие в результате ошибок вычислений; – Программные прерывания (системные вызовы), представляющие удобный механизм вызова процедур операционной системы. 34
  • 36. Внешние (аппаратные) прерывания, или прерывания  являются асинхронными событиями  имеют номера  возникают вследствие подачи аппаратурой электрических сигналов, которые передаются на специальный вход процессора по каналам IRQ  обрабатываются драйверами соответствующих внешних устройств 36
  • 38. Внутренние прерывания (исключительные ситуации или исключения, exceptions)  являются синхронными событиями  возникают в результате попытки выполнения программой команды, которая не может быть выполнена до конца  делятся на исправимые и неисправимые  обрабатываются модулями ядра ОС 38
  • 39. Пример обработчика исключительной ситуации  try  … // защищаемые от ошибок операторы  except  … // операторы обработки исключительной ситуации  end; 39
  • 40. Программные прерывания (системные вызовы, system calls)  являются синхронными событиями  возникают вследствие использования команды программного прерывания INT  обрабатываются процедурами ОС, обслуживающими системные вызовы 40
  • 41. Пример системного вызова #include <sys/types.h> #include <sys/socket.h> int connect (int sockfd, struct sockaddr *serv_addr, int addrlen); 41
  • 42. Механизм прерываний  Для реализации механизм прерываний должен поддерживаться аппаратными средствами компьютера и программными средствами ОС.  Для упорядочивания процессов обработки прерываний все источники прерываний делятся по нескольким приоритетным уровням, а роль арбитра выполняет диспетчер прерываний ОС.
  • 43. Способы выполнения прерываний Существует два основных способа выполнения прерывания: – Векторный – в процессор передается номер вызываемой процедуры обработки прерываний; – Опрашиваемый – процессор последовательно опрашивает потенциальные источники запроса прерываний.
  • 44. Последовательность действий по обработке прерываний: 1. Автоматический вызов процедуры обработки прерывания 2. Прерывание исполнения текущего процесса и сохранение его состояния в регистрах процессора 3. Выполнение процессором команд обработчика прерываний 4. Восстановление состояния прерванного процесса и продолжение его выполнения
  • 45. Синхронизация процессов и потоков в операционных системах 45
  • 46. Синхронизация процессов и потоков  Потоки выполняются независимо друг от друга.  Любое взаимодействие процессов или потоков связано с их синхронизацией.  Синхронизация – согласование скоростей потоков путем приостановки потока до наступления некоторого события и последующей активизации приостановленного потока после наступления этого события.
  • 47. Механизмы синхронизации процессов и потоков Для обеспечения синхронизации процессов и потоков, выполняющих общие задачи и совместно использующих общие ресурсы, в операционных системах используются специальные механизмы:  Критические секции;  Сигналы;  Семафоры;  События;  Таймеры.
  • 48. Проблемы при отсутствии синхронизации При отсутствии таких механизмов возможны нежелательные последствия, такие как гонки и тупики. – Гонка – ситуация, при которой два или более потоков обрабатывают разделяемые данные и конечный результат зависит от соотношения скоростей потоков. – Тупик (взаимная блокировка, клинч, дедлок) – ситуация, при которой два и более потоков взаимно блокируют действия друг друга.