301.70K
AI

Лекция_1_2_процессы_и_потоки_с_комментариями

1.

Тема 1.2
Общие сведения
о процессах и потоках
Лекция 2 часа: модель процесса, состояние, создание процесса,
назначение потоков
Презентация с заметками лектора
поток 1
процесс
поток 2
ресурсы

2.

План лекции
1
Процесс, поток, программа
разграничиваем базовые понятия
2
Потоки
преимущества и ограничения
4
Состояния процесса
выполнение, готовность, ожидание
5
Результат занятия
Ресурсы процесса
память, файлы, устройства, данные
3
02
Создание процесса
источники и этапы создания
Тема 1.2. Общие сведения о процессах и потоках
• объяснять различие между программой,
процессом и потоком
• описывать состояния процесса и причины
переходов
• перечислять основные этапы создания
процесса

3.

Базовые понятия: программа, процесс, поток,
приложение
03
Программа
Процесс
Поток
Приложени
е
статический набор
команд
в файле на диске
выполнение + ресурсы
+ данные + состояние
единица работы,
которой
выделяется время
процессора
набор
загружаемых
процессов
Главная мысль
Программа сама по себе не выполняется. Когда ОС запускает программу, появляется
процесс, а внутри процесса выполняются один или несколько потоков.
Тема 1.2. Общие сведения о процессах и потоках

4.

Модель процесса: процесс как контейнер для потоков
адресное
пространство
поток 1
контекст + стек
данные
поток 2
Процесс
контекст + стек
открытые
файлы
поток N
контекст + стек
Потоки используют общие участки кода и данных внутри своего процесса, но каждый поток
имеет собственный контекст и стек.
Тема 1.2. Общие сведения о процессах и потоках
04

5.

Из чего состоит процесс
05
1
2
3
Выполняемая
программа
Данные
Контекст
выполнения
команды и подпрограммы
переменные, рабочее
пространство, буферы
счётчик команд, регистры,
состояние
Почему ОС разделяет
процессы?
• у каждого процесса своё адресное пространство
• ресурсы назначаются конкретному процессу
• изоляция защищает процессы от взаимного влияния
Тема 1.2. Общие сведения о процессах и потоках

6.

Потоки: сильные стороны и риски
Преимущества
06
Недостатки
• несколько потоков внутри одного
исполнительного модуля экономят ресурсы
• добавление потока обычно требует
изменения исходного кода
• общая память ускоряет обмен сообщениями
• потоки имеют доступ к общим данным друг
друга
• контекст потока меньше, чем контекст
процесса
• ошибка одного потока может повлиять на
весь процесс
• упрощается отладка внутри одного модуля
Пример: в текстовом редакторе одновременно идут набор текста и
проверка орфографии.
Тема 1.2. Общие сведения о процессах и потоках

7.

Состояния активного процесса
нет процессора
Готовность
к выполнению
Пассивное
состояние
07
выделен процессор
Выполнение
Блокировка
(ожидание)
ждёт ресурс/ВВ
В однопроцессорной системе в каждый момент времени выполняется только
один процесс.
Тема 1.2. Общие сведения о процессах и потоках

8.

Что переводит процесс из состояния в состояние
События
Перемещение
дескриптора
прерывание
завершение ВВ
освобождение
ресурса
истечение кванта
Супервизор
процессов
очередь готовых
очереди ожидания
пассивный список
ОС не «угадывает» состояние процесса — она реагирует на события и меняет положение
дескриптора процесса в очередях.
Тема 1.2. Общие сведения о процессах и потоках
08

9.

Дескриптор процесса: зачем он нужен ОС
PCB / дескриптор
процесса
Списки и очереди
идентификатор процесса
состояние процесса
счётчик команд
готовые к выполнению
ожидающие ввод-вывод
регистры
параметры памяти
открытые ресурсы
ожидающие ресурс
пассивные / завершённые
Когда состояние меняется, ОС перемещает дескриптор из одной очереди в
другую.
Тема 1.2. Общие сведения о процессах и потоках
09

10.

Многозадачность: видимость параллельной работы
P1
На одном ядре
одновременно
реально
выполняется
только один
процесс; ОС
быстро
переключает
процессор между
процессами.
P2
P3
P4
время
Тема 1.2. Общие сведения о процессах и потоках
10

11.

Почему не стоит полагаться на “точное время”
выполнения
11
Процесс A
аудио
холостой цикл
как “таймер”
Переключение
на другой процесс
Сбой
синхронизаци
и
Скорость выполнения процесса может меняться, потому что процессор
переключается между задачами.
Для требований реального времени нужны специальные механизмы ОС, а не “пустые
циклы” в программе.
Тема 1.2. Общие сведения о процессах и потоках

12.

Создание процесса
12
Источники создания
Этапы создания
• загрузка операционной
системы
1
присвоить уникальный
идентификатор
• родительский процесс создаёт
дочерний
2
выделить память для программы,
данных и стека
3
инициализировать блок управления
процессом
4
добавить процесс в очередь
готовых
• пользователь запускает
программу из оболочки
Тема 1.2. Общие сведения о процессах и потоках
Пример
Пользователь
запускает
программу →
оболочка ОС
становится
родительским
процессом →
создаётся новый
процесс.

13.

Проверка понимания
1. Чем программа отличается от процесса?
2. Почему процесс называют контейнером для потоков?
3. Какие преимущества дают потоки?
4. Почему процесс переходит в состояние ожидания?
5. Какие шаги выполняет ОС при создании процесса?
Итог: процесс связывает выполняемую программу, ресурсы и состояние; поток
является единицей работы, которой ОС выделяет процессорное время.
Тема 1.2. Общие сведения о процессах и потоках
13

14.

Краткий конспект для завершения
Запомнить
• процесс — выполняемый экземпляр программы с
ресурсами и состоянием
• поток — единица работы внутри процесса
• потоки быстрее обмениваются данными, но требуют
аккуратной работы с общей памятью
14
Задание после лекции
Составить сравнительную
таблицу: процесс и поток. В
таблице указать ресурсы,
контекст, память, переключение,
обмен данными и риск ошибок.
• состояния процесса меняются под действием событий
• ОС управляет процессами через дескрипторы и
очереди
Источник содержания: учебный материал «Тема 1.2.
Общие сведения о процессах и потоках».
Тема 1.2. Общие сведения о процессах и потоках
English     Русский Правила