Модель процесса. Создание процесса. Завершение процесса. Иерархия процесса. Состояние процесса. Реализация процесса
Модель процесса
Модель процесса
Модель процесса
Создание процесса
Создание процесса
Завершение процесса
Иерархия процессов
Иерархия процессов
Иерархия процессов
Реализация процесса
Реализация процесса
Реализация процесса
Реализация процесса
Благодарю за внимание
507.81K

9. Модель процесса. Создание процесса. Завершение процесса. Иерархия процесса. Состояние процесса. Реализация процесса

1. Модель процесса. Создание процесса. Завершение процесса. Иерархия процесса. Состояние процесса. Реализация процесса

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

Модель процесса представляет собой абстракцию, которая описывает,
как процессы работают в операционной системе, как они взаимодействуют с
ресурсами и как выполняются.
Рассмотрим основные компоненты модели процесса:
• Программа — это последовательность команд, которая выполняется
процессором. Когда программа запускается, она превращается в процесс.
• Процесс — это активная сущность, представляющая собой выполнение
программы, которая включает не только код, но и состояние выполнения,
выделенные ресурсы (память, время процессора и т. д.), а также информацию
о ее текущем состоянии.
• Процессорное время — это время, которое процессор выделяет для
выполнения процесса. В многозадачных операционных системах процессы
могут выполняться параллельно или поочередно.
Абстракция — способ управления сложностью кода через выделение значимых
характеристик объекта и исключение несущественных деталей.

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

• Идентификатор процесса (PID) — уникальный номер, который
операционная система присваивает каждому процессу.
• Состояние процесса — процесс может находиться в различных
состояниях: готов к выполнению, выполняется в данный момент,
заблокирован в ожидании ресурсов и т. д.
• Контекст процесса — включает в себя информацию, необходимую для
продолжения выполнения процесса, такую как регистры процессора, стек
вызовов, указатели на память и другие данные.

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

Основные состояния процесса:
• Выполнение (занимает процессор)
• Готовность (процесс временно приостановлен, чтобы позволить выполняться
другому процессу)
• Ожидание (процесс не может быть запущен по своим внутренним причинам,
например, ожидая операции ввода/вывода)

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

Создание процесса в операционной системе (ОС) — это операция, которая
позволяет запустить новую программу или задачу в своём собственном
исполняемом контексте. Это позволяет операционной системе эффективно
управлять выполнением множества задач и обеспечивать изоляцию между
ними.
Вот некоторые события, которые приводят к созданию процесса:
Запрос пользователя на создание процесса
Инициализация системы
Инициализация пакетного задания
Выполнение системного вызова для создания процесса запущенным
процессом
Процесс может быть создан другим процессом с помощью функции fork().
Создающий процесс называется родительским, а созданный процесс —
дочерним. У дочернего процесса может быть только один родительский
процесс, но у родительского процесса может быть много дочерних. И
родительский, и дочерний процессы имеют одинаковый образ памяти, открытые
файлы и строки среды. Однако у них разные адресные пространства.

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

Схема, демонстрирующая создание процесса с помощью fork(), выглядит
следующим образом:
Родительский процесс в информатике — это процесс, который создал
(«породил») один или несколько дочерних процессов («процессов-потомков»).
Дочерний процесс в вычислительной технике — это процесс, созданный другим
процессом (родительским процессом).
Процесс-зомби (англ. zombie process, англ. defunct process) — дочерний процесс
в Unix-системе, завершивший своё выполнение, но ещё присутствующий в
списке процессов. Зомби-процесс существует, пока родительский процесс не
прочитает его статус с помощью системного вызова wait().

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

Завершение процесса происходит, когда процесс завершается. В большинстве
операционных систем для завершения процесса используется системный вызов
exit().
Вот некоторые из причин завершения процесса:
• Процесс может быть завершён после естественного завершения его
выполнения.
• Дочерний процесс может быть завершён, если его родительский процесс
запросит его завершение.
• Процесс может быть завершён, если он пытается использовать ресурс,
доступ к которому ему запрещён.
• Если в процессе происходит сбой ввода-вывода, он может быть завершён.
• В большинстве случаев при завершении родительского процесса
завершаются и его дочерние процессы. Это происходит потому, что дочерний
процесс не может существовать без родительского.
• Если процессу требуется больше памяти, чем доступно в системе в данный
момент, он завершается из-за нехватки памяти.

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

Иерархия процессов в операционной системе — это структура, которая
показывает взаимосвязь между различными процессами, образующими дерево.
Каждый процесс может порождать дочерние процессы, и эти дочерние
процессы, в свою очередь, могут порождать ещё другие дочерние процессы,
создавая иерархическую структуру.
Основные понятия иерархии процессов:
• Родительский процесс — процесс,
который порождает другой процесс,
управляет жизненным циклом своих
дочерних процессов.
• Дочерний процесс — процесс,
созданный другим процессом,
унаследует многие атрибуты
родительского процесса, но также
может быть независимым и
выполнять собственные задачи.
• Процесс-основа — процесс,
который запускает операционную систему,
обычно это ядро операционной системы.

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

В некоторых операционных системах родительский и дочерний процессы в ходе
исполнения остаются связанными между собой определённым образом.
Например:
• Дочерний процесс наследует дескрипторы файлов, через которые, если
нужно, налаживается связь между дочерним и родительским процессом.
• Когда процесс завершает выполнение, родительский процесс может
получить информацию о завершении дочернего процесса.
Структура иерархии процессов помогает операционной системе:
• Управлять зависимостями между процессами и правильно обрабатывать
завершение одного процесса, чтобы это не повлияло на другие.
• Реализовывать коммуникации между процессами — например, сигнал,
посылаемый пользователем с клавиатуры, доставляется всем членам группы
процессов, взаимодействующим с клавиатурой в данный момент.

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

В операционных системах семейства UNIX и Linux каждый процесс имеет
уникальный идентификатор (PID), а также идентификатор родительского
процесса (PPID). Это позволяет:
• Инициализировать систему при запуске — например, специальный процесс
init разветвляется, создавая по одному процессу для каждого терминала, и
все процессы в системе принадлежат к единому дереву, в корне которого
находится процесс init.
• Реализовывать реализацию потоков — когда дочерний процесс порождается
родителем, с помощью флагов указывается, какие ресурсы следует разделять
между ними.
В операционной системе Windows понятие иерархии процессов не
используется, все процессы считаются равноправными. Однако родительский
процесс может получать специальный маркер (дескриптор), позволяющий
контролировать дочерний процесс, но маркер можно передать другому
процессу, нарушая иерархию.

11. Реализация процесса

Реализация процесса в операционной системе — это способ организации и
управления жизненным циклом процесса, начиная от создания и до завершения.
Операционная система использует различные механизмы для реализации
процесса, включая выделение ресурсов, управление памятью, планирование
выполнения и обработку завершения.
Реализация процесса включает несколько этапов: создание, управление
состоянием, планирование и взаимодействие.

12. Реализация процесса

1. Создание
Процесс создаётся с помощью системных вызовов (например, fork() в UNIX или
CreateProcess в Windows). На этом этапе операционная система выделяет память
для процесса, создаёт необходимые структуры данных и инициализирует
контекст выполнения.
2. Состояние
Процесс может находиться в различных состояниях в зависимости от того, что
он выполняет или чего ожидает. Некоторые из них:
• Выполняется (Running) — процесс в данный момент выполняется
процессором.
• Ожидает (Waiting/Blocked) — процесс не может продолжить выполнение,
так как ожидает какого-то события или ресурса (например, завершения
ввода/вывода).
• Завершен (Terminated) — процесс завершил своё выполнение и освободил
ресурсы.

13. Реализация процесса

3. Планирование
Планировщик операционной системы управляет очередностью выполнения
процессов. Он решает, когда каждый процесс будет получать процессорное
время, чтобы обеспечить многозадачность и максимальную эффективность
использования ресурсов.
Некоторые алгоритмы планирования:
• FIFO (First In, First Out) — процессы
выполняются в том порядке, в котором
они поступили в очередь готовых процессов.
• Алгоритм кратчайшего времени до
завершения (SJF — Shortest Job First) —
планировщик выбирает процесс с
минимальным временем выполнения.
• Планирование с приоритетами —
каждому процессу присваивается приоритет,
и процесс с наивысшим приоритетом
выполняется первым.
• LIFO (Last In, First Out) – процессы выполняются в порядке «последним
пришёл – первым вышел»

14. Реализация процесса

4. Взаимодействие
В операционных системах многозадачности процессы могут взаимодействовать
друг с другом для обмена информацией, синхронизации своих действий или
использования общих ресурсов.
Некоторые методы взаимодействия:
• Общая память (Shared Memory) — несколько процессов могут работать с
одной и той же областью памяти. Процесс, который владеет этой памятью,
может разрешить другим процессам доступ к этим данным.
• Очереди сообщений (Message Queues) — процессы обмениваются
сообщениями через очередь.
• Каналы (Pipes) — механизм передачи данных между процессами, который
можно использовать для передачи данных в режиме «потока».

15.

Задания
Ответьте на вопросы:
1) Что из себя представляет модель процесса?
2) Перечислите и опишите основные компоненты модели процесса;
3) Назовите основные состояния процесса и их взаимодействия;
4) Что такое создание процесса?
5) Какие события приводят к созданию процесса?
6) Что такое родительский процесс?
7) Что такое дочерний процесс?
8) Что такое процесс-зомби?
9) Что такое процесс-основа?
10)Что такое иерархия процессов?
11)Опишите отношение дочернего процесса к родительскому? Есть ли
ограничения на создание дочерних процессов?
12)Что такое реализация процесса?
13)Перечислите и опишите этапы реализации процессов;
14)Перечислите алгоритмы планирования;
15)Что такое FIFO и LIFO?

16.

Задания
Практические задания:
1) Создайте схемы следующих процессов программ (можно через Visio или
Paint):
• Процесс оформления заказа онлайн-магазина – процесс охватывает весь
путь клиента от выбора товара до подтверждения оплаты и доставки;
• Модуль обработки вводимых данных и выполнения арифметических
действий – процесс от запроса ввода числовых данных до предоставления
результата;
• Процесс инициализации приложения – создание схемы последовательных
шагов загрузки и настройки приложений: запуск, загрузка конфигурации,
подключение к внешним сервисам, аутентификация пользователя.
• Алгоритм авторизации пользователя – графическое отображение процедур
входа в систему: ввод пароля, двухфакторная аутентификация, сброс
забытых паролей, ограничения попыток входа.

17.

Задания
Практические задания:
2) Создание дочернего процесса с помощью PowerShell
Задача: Написать PowerShell-скрипт, который создаст дочерний процесс,
выводящий строку "Hello from child process!".
Шаг 1: Открываем PowerShell ISE (Integrated Scripting Environment).
Шаг 2: Создаем новый файл с расширением .ps1 и вставляем следующий код:
Шаг 3: Запускаем наш скрипт в терминале PowerShell, выполнив следующую
команду:

18.

Задания
Практические задания:
3) Работа с дочерним процессом через batch-файл (.bat)
Задача: Создать bat-файл, который откроет калькулятор (calc.exe) как дочерний
процесс и дождётся его закрытия.
Шаг 1: Создайте текстовый файл и переименуйте его в run_calc.bat.
Шаг 2: Вставьте внутрь файла следующее содержание:
Шаг 3: Просто дважды щелкните на run_calc.bat, чтобы запустить его.

19. Благодарю за внимание

English     Русский Rules