Безопасность операционных систем
Процесс
Типы многозадачности
Модель процесса
Модель процесса
Создание процесса
Завершение процесса
Иерархии процессов
Пример иерархии процессов в Unix
Пример иерархии процессов в Unix
Состояния процессов
Состояния процессов
Планировщик
Моделирование процесса многозадачности
Потоки
Классическая модель потоков
1.09M
Категория: ПрограммированиеПрограммирование

Процессы и потоки

1. Безопасность операционных систем

Тема лекции:
Процессы и потоки
Ветлугин
Константин Александрович

2. Процесс

2
Процесс
Процесс (Process) – абстракция, описывающая выполняющуюся программу.
Операционная система называется многозадачной, если в ней
реализована возможность параллельной (псевдопараллельной) обработки
нескольких процессов. Реальная многозадачность возможна только в
распределенной вычислительной системе.

3. Типы многозадачности

3
Типы многозадачности
Существует 2 типа многозадачности:
• Процессорная многозадачность. В таком случае наименьшим
элементом управляемого кода, которым может управлять планировщик
ОС, является программа (процесс).
• Поточная многозадачность. Наименьший элемент управляемого кода поток (одна программа может выполнять 2 и более задачи
одновременно).

4. Модель процесса

4
Модель процесса
Процесс – это экземпляр выполняемой программы, включая текущие
значения счетчика команд*, регистров и переменных. Концептуально у
каждого процесса есть свой виртуальный процессор, но, на самом деле,
реальный ЦП постоянно переключается между программами. Это
постоянное
переключение
между
процессами
называется
мультипрограммированием или многозадачным режимом работы.
* - регистр процессора, содержащий адрес текущей выполняемой команды. В зависимости от
архитектуры содержит либо адрес инструкции, которая будет выполняться, либо той, которая выполняется в
данный.

5. Модель процесса

5
Модель процесса
а - четыре программы, работающие в многозадачном режиме;
б - концептуальная модель четырех независимых друг от друга процессов;
в – в отдельно взятый момент времени активна только одна программа.

6. Создание процесса

6
Создание процесса
Существует 4 основных события, приводящих к созданию процессов:
1. Инициализация системы.
2. Выполнение
работающим
процессом
предназначенного для создания процесса.
системного
3. Запрос пользователя на создание нового процесса.
4. Инициализация пакетного задания.
вызова,

7. Завершение процесса

7
Завершение процесса
Наиболее частые причины завершения процесса:
Обычный выход (добровольно).
Выход при возникновении ошибки (добровольно).
Возникновение фатальной ошибки (принудительно).
Уничтожение другим процессом (принудительно).

8. Иерархии процессов

8
Иерархии процессов
В некоторых системах, когда процесс порождает другой процесс,
родительский
и
дочерний
процессы
продолжают
оставаться
определенным образом связанными. Дочерний процесс может и сам
создавать какие-нибудь процессы, формируя иерархию процессов.
В Unix процесс, все его дочерние процессы и более отдаленные потомки
образуют группу процессов.

9. Пример иерархии процессов в Unix

9
Пример иерархии процессов в Unix
В загрузочном образе UNIX присутствует специальный процесс,
называемый init. В начале своей работы init считывает файл, содержащий
сведения о количестве терминалов*. Затем он разветвляется, порождая по
одном процессу на каждый терминал. Эти процессы ждут, пока
кто-нибудь не зарегистрируется в системе.
* - ОС предоставляет пользователю специальный интерфейс – терминал (командную строку), через
которую пользователи получают персональную рабочую среду. Несмотря на то, что в современных
UNIX-системах широко используются графические пользовательские интерфейсы, командная строка
остаётся основным рабочим инструментом администратора системы.

10. Пример иерархии процессов в Unix

10
Пример иерархии процессов в Unix
Если регистрация проходит успешно, то процесс регистрации порождает
оболочку для приема команд. Эти команды могут породить другие
процессы и т.д. Таким образом, все процессы в UNIX образуют дерево с
корнем в init.
* - команды интерпретируются и выполняются специальной программой – командной оболочкой (или
«shell», по-английски). Через командную оболочку производится управление пользовательскими
процессами.

11. Состояния процессов

11
Состояния процессов
Процесс может находиться в трех состояниях:
• выполняемый (в данный момент использующий ЦП);
• готовый (работоспособный, но временно приостановленный, чтобы дать
возможность выполниться другому процессу);
• заблокированный (не способный выполняться, пока не возникнет
какое-нибудь событие).

12. Состояния процессов

12
Состояния процессов
На рисунке представлен граф состояний процесса

13. Планировщик

13
Планировщик
Самый низший уровень структурированной в виде процессов
операционной системы. Он обрабатывает прерывания и планирует
выполнение процессов. Над этим уровнем находятся последовательные
процессы.

14. Моделирование процесса многозадачности

Время задействования центрального процессора = 1 −
English     Русский Правила