2. Процесс
1. Абстракция, описывающая выполняемую программу
Обеспечение параллелизма и псевдопараллелизма
2. Экземпляр выполняемой программы, включая значение счетчика
команд, регистров и переменных
4. События, инициализирующие
процессы
1. Инициализация системы
2. Работающий процесс осуществляет системный вызов создания нового
процесса
Иерархия процессов
3. Создание процесса по запросу пользователя
4. Инициализация пакетного задания
5. Завершение процесса
1. Обычный выход
2. Выход по обрабатываемой ошибке
3. Возникновение фатальной ошибки
4. Уничтожение другим процессом
6. Ключевые «внешние» отличия
Unix/Windows
Unix
Windows
1. Процесс создается fork, а далее
exec* заменяет образ памяти
1. Процесс создается одним
вызовом CreateProcess
2. Есть иерархия процессов
(Наличие «зомби», «процессовсирот»)
2. Каждый процесс независим
8. Реализация процессов
1. Таблица процессов
a) Управление процессом (счетчик команд, регистры …)
b) Управление памятью (указатели на сегмент данных, стека…)
c) Управление файлами (дескрипторы файлов, корневой каталог …)
2. Вектор прерываний
9. Механизм прерывания
1. Оборудование помещает в стек счетчик команд и т.д.
2. Оборудование загружает из вектора прерываний новый счетчик команд
3. Процедура на ассемблере сохраняет регистры
4. Процедура на ассемблере устанавливает указатель на новый стек
5. Запускается процедура на Си, обслуживающая прерывание
6. Планировщик принимает решение какой процесс запускать следующим
7. Процедура на языке Си возвращает управление ассемблерному коду
8. Процедура на ассемблере запускает новый процесс
11. Потоки (Потоки выполнения)
1. Разновидность процесса внутри процесса
2. При старте у каждого процесса есть единственный поток управления
12. Необходимость в потоках
1. Упрощение модели программирования, когда в одной программе может
выполняться несколько действий сразу
2. Создание потоков быстрее, чем создание процессов
3. Эффективность их использования в мультипроцессорных системах
13. Реализация сервера через
1. Потоки
2. Однопоточный процесс
3. Машина с конечным числом состояний
14. Объекты потоков и процессов
ЭЛЕМЕНТЫ, ПРИСУЩИЕ ПРОЦЕССАМ
ЭЛЕМЕНТЫ, ПРИСУЩИЕ ПОТОКАМ
1.
Адресное пространство
1.
Счетчик команд
2.
Глобальные переменные
2.
Регистры
3.
Открытые файлы
3.
Стек
4.
Дочерние процессы
4.
Состояние
5.
Необработанные аварийные сигналы
6.
Сигналы и обработчики событий
7.
Учетная информация
21. Взаимодействие процессов и
разрешение состязательных ситуаций
1. Взаимоисключение с активным ожиданием
2. Приостановка и активизация
3. Передача сообщений
4. Барьеры