Вы находитесь на странице: 1из 33

Процессы

1
ОС должна
 Следить, чтобы каждому активному
процессу выделялось процессорное время
 Координировать деятельность процессов и
поддерживать межпроцессное
взаимодействие
 Разрешать конфликтные ситуации
 Выделять процессам системные ресурсы
 Поддерживать создание процессов
пользователем

2
Процессы и ресурсы

P1 P2
Pn Виртуальная
память

Ресурсы
Процессор Устройство Устройство Основная компьютера
ввода-вывода ввода-вывода память

3
Управляющие таблицы ОС
Образ
Таблицы памяти
процесса
Память
Устройства Таблицы I/O
Файлы
Процессы Таблицы файлов Процесс 1

Первичная таблица
процессов
Процесс 1 Образ
Процесс 2 процесса
Процесс 3
.
. Процесс n
.

Процесс n
4
Образ процесса
Идентификация
процесса
Информация Управляющий
о состоянии процессора блок процесса
Управляющая
информация процесса
Пользовательский
стек

Пользовательское
адресное пространство
(программы, данные)

Стек ядра

Совместно используемое
адресное пространство

5
Управляющий блок процесса
 Идентификация процесса
 Информация о состоянии процессора
– регистры доступные пользователю
– регистры управления и состояния
– указатели на вершины стеков
 Управляющая информация процесса
– информация о состоянии и планировании
– структурирование данных
– межпроцессное взаимодействие
– привилегии процесса
– управление памятью
– ресурсы и их использование
6
Модель процесса с 2-я состояниями
Диспетчеризация

Вход Не Выход
выполняется Выполняется

Пауза

7
Очередь не выполняющихся
процессов

Очередь Выход
Вход Диспетчеризация
Процессор

Пауза

8
Модель с 5-ю состояниями

Ввод Диспетчеризация
в систему Готовый
Новый Выполняющийся
к выполнению
Тайм-аут

Ожидание Освобождение
Событие
события

Блокированный Завершающийся

9
Схема с одной очередью
блокированных процессов
Очередь
готовых процессов Выход
Вход Диспетчеризация
Процессор

Тайм-аут

Очередь
блокированных процессов
Ожидание события

10
Схема с несколькими очередями
блокированных процессов
Очередь
готовых процессов Выход
Вход Диспетчеризация
Процессор

Тайм-аут

Очередь процессов,
ожидающих события 1
Ожидание события 1

.
.
.
Очередь процессов,
ожидающих события n
Ожидание события n

11
Приостановленные процессы
 Процессор работает настолько быстрее
выполнения операций ввода-ввывода, что
вскоре все процессы оказываются в
состоянии ожидания
 Свопинг – перенос части процессов из
основной памяти на диск
 ОС может приостановить один из процессов,
сбросив его на диск
 Два новых состояния
– Блокированный/Приостановленный
– Готовый/Приостановленный
12
Режимы работы процессора
 Пользовательский режим (user mode)
– Меньше привилегий
– Обычно в этом режиме выполняются
пользовательские программы
 Системный режим (system mode), режим
управления (control mode), режим ядра
(kernel mode)
– Более привилегированный режим
– В этом режиме обычно работает ядро ОС

13
Создание процессов
1. Присвоить новому процессу уникальный
идентификатор
2. Выделить пространство для процесса
3. Инициализировать управляющий блок
процесса
4. Установить необходимые связи
5. Создать или расширить другие структуры
данных

14
Переключение процессов
 Прерывание
– Прерывание таймера
– Прерывание ввода-вывода
– Ошибка отсутствия блока в памяти
 Ловушка (trap)
 Вызов супервизора

15
Изменение состояния процесса
1. Сохранение контекста процессора
2. Обновление управляющего блока
выполняющегося в данное время процесса
3. Помещение управляющего блока данного
процесса в соответствующую очередь
4. Выбор следующего процесса для выполнения
5. Обновление управляющего блока выбранного
процесса
6. Обновление структур данных по управлению
памятью
7. Восстановление контекста процессора в
состояние, в котором он находился, когда
выбранный процесс был переключен последний
раз из состояния выполнения 16
Процессы и потоки
 Процесс
– Владение ресурсами (resource ownership)
– Планирование/выполнение
(scheduling/execution)
 Эти 2 характеристики можно разделить:
– Единицу владения ресурсами называют
процессом (process) или заданием (task)
– Единицу диспетчеризации называют потоком
(thread) или облегченным процессом
(lightweight process)
17
Многопоточность

18
Однопоточная и многопоточная
модели процесса

19
Преимущества использования
потоков
 Создание нового потока в уже существующем
процессе занимает намного меньше времени
чем создание нового процесса
 Поток можно завершить намного быстрее чем
процесс
 Переключение потоков в рамках одного и того
же процесса происходит намного быстрее
 Поскольку, потоки одного процесса
используют одну и ту же область памяти и
файлы, они могут обмениваться информацией
без участия ядра 20
Использование потоков в
однопользовательской
многозадачной системе
 Работа в приоритетном и фоновом режимах
 Асинхронная обработка
 Скорость выполнения
 Модульная структура программы

21
Состояния потоков
 Порождение (spawn)
 Блокирование (Block)
 Разблокирование (Unblock)
 Завершение (Finish)

22
Потоки на уровне пользователя

23
Потоки на уровне ядра

24
Комбинированный подход

25
Другие схемы
Потоки: Описание Примеры
процессы систем
1:1 Каждый поток реализован в виде Трад. Unix
отдельного процесса со своим
собственным адресным пространством
и со своими ресурсами
M:1 Для процесса задается адресное OS/2,
пространство и динамическое владение Windows NT,
ресурсами. В рамках этого процесса Solaris, Linux,
могут быть созданы несколько потоков OS/390, Mach
1:M Поток может переходить из среды Ra (Clouds),
одного процесса в среду другого. Это Emerald
облегчает перенос потоков из одной
системы в другую
M:N Сочетает в себе подходы, основанные TRIX
на соотношениях M:1 и 1:M 26
Процессы Windows

27
Объект процесса Windows

28
Объект потока Windows

29
Состояния потоков Windows

30
Процессы в Linux
 Таблица task – линейный вектор указателей на
каждую определенную в данный момент
структуру данных task_struct:
– Состояние
– Информация по планированию
– Идентификаторы
– Обмен информацией между процессами
– Связи
– Время и таймеры
– Файловая система
– Виртуальная память
– Контекст, зависящий от процессора
31
Состояния процессов в Linux
 Выполняющийся
 Прерываемый
 Непрерываемый
 Остановленный
 Зомби

32
Модель процессов и потоков Linux

33

Вам также может понравиться