Операционные системы
Процессы и потоки
Процесс
1. Абстракция, описывающая выполняемую программу
Обеспечение параллелизма и псевдопараллелизма

2. Экземпляр выполняемой программы, включая значение счетчика
команд, регистров и переменных
Память процесса
События, инициализирующие
процессы
1. Инициализация системы
2. Работающий процесс осуществляет системный вызов создания нового
процесса
Иерархия процессов

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

3. Возникновение фатальной ошибки
4. Уничтожение другим процессом
Ключевые «внешние» отличия
Unix/Windows
Unix

Windows

1. Процесс создается fork, а далее
exec* заменяет образ памяти

1. Процесс создается одним
вызовом CreateProcess

2. Есть иерархия процессов
(Наличие «зомби», «процессовсирот»)

2. Каждый процесс независим
Состояние процессов
Реализация процессов
1. Таблица процессов
a) Управление процессом (счетчик команд, регистры …)
b) Управление памятью (указатели на сегмент данных, стека…)
c) Управление файлами (дескрипторы файлов, корневой каталог …)

2. Вектор прерываний
Механизм прерывания
1. Оборудование помещает в стек счетчик команд и т.д.
2. Оборудование загружает из вектора прерываний новый счетчик команд

3. Процедура на ассемблере сохраняет регистры
4. Процедура на ассемблере устанавливает указатель на новый стек
5. Запускается процедура на Си, обслуживающая прерывание

6. Планировщик принимает решение какой процесс запускать следующим
7. Процедура на языке Си возвращает управление ассемблерному коду
8. Процедура на ассемблере запускает новый процесс
Моделирование режима
многозадачности
ЦП = 1 - pn
p – ожидание
ввода-вывода
n – количество
процессов
Потоки (Потоки выполнения)
1. Разновидность процесса внутри процесса
2. При старте у каждого процесса есть единственный поток управления
Необходимость в потоках
1. Упрощение модели программирования, когда в одной программе может
выполняться несколько действий сразу

2. Создание потоков быстрее, чем создание процессов
3. Эффективность их использования в мультипроцессорных системах
Реализация сервера через *****
1. Потоки
2. Однопоточный процесс

3. Машина с конечным числом состояний
Объекты потоков и процессов
ЭЛЕМЕНТЫ, ПРИСУЩИЕ ПРОЦЕССАМ

ЭЛЕМЕНТЫ, ПРИСУЩИЕ ПОТОКАМ

1.

Адресное пространство

1.

Счетчик команд

2.

Глобальные переменные

2.

Регистры

3.

Открытые файлы

3.

Стек

4.

Дочерние процессы

4.

Состояние

5.

Необработанные аварийные сигналы

6.

Сигналы и обработчики событий

7.

Учетная информация
Стратегии реализации потоков
1. В пользовательском пространстве
2. В ядре

3. Гибридный способ
Реализация потоков в
пользовательском пространстве
Реализация потоков в ядре
Гибридный способ реализации
потоков
Всплывающие потоки
Процессы и потоки
Взаимодействие процессов и
разрешение состязательных ситуаций
1. Взаимоисключение с активным ожиданием
2. Приостановка и активизация

3. Передача сообщений
4. Барьеры
Критические области
Взаимоисключение с активным
ожиданием
1. Запрещение прерываний
2. Блокирующие переменные

3. Строгое чередование
4. Алгоритм Петерсона
5. Команда TSL
Алгоритм Петерсона
Команда TCL
Приостановка и активизация
1. Семафор
2. Мьютекс

3. Монитор
Семафор
1. Целое неотрицательное число
2. Down

3. Up
Мьютекс
1. Разновидность семафора
2. Имеется только два состояния 0 и 1
Монитор
1. Понятие языка
2. Некий более высокий уровень абстракции
Передача сообщений
1. Send(dest, &message)
2. Receive (source, &message)
Барьеры

More Related Content

PDF
Процессы и потоки. Планирование и взаимоблокировки
PDF
Lightweight Static Analysis for Data Race Detection in Operating System Kernels
PDF
PDF
Linux Kernel Processes
PDF
ПВТ - осень 2014 - Лекция 3 - Стандарт POSIX Threads
PDF
iOS-07_2 Multithreading
PPTX
Операционные системы 2015, лекция № 6
PPTX
Операционные системы 2015, лекция № 4
Процессы и потоки. Планирование и взаимоблокировки
Lightweight Static Analysis for Data Race Detection in Operating System Kernels
Linux Kernel Processes
ПВТ - осень 2014 - Лекция 3 - Стандарт POSIX Threads
iOS-07_2 Multithreading
Операционные системы 2015, лекция № 6
Операционные системы 2015, лекция № 4

What's hot (20)

PPTX
презентация 2
PPTX
Операционные системы 2015, лекция № 5
PPT
Multi threads
PPSX
PPT
Системы контроля версий
PPTX
Операционные системы 2015, лекция № 1
PPTX
Про курс «Технологии Индустрии 4.0»
PPTX
Svitla .Net meetup in Kiev, Anzhiiak Oleksii
PPT
презентация лекции №22
PDF
Журналирование Windows
PPTX
FreeRTOS
PDF
monit — простой мониторинг
PPTX
Working with .NET Threads
PPT
Usage concurrence in java
PPTX
Multiprocessor Programming Intro (lecture 2)
PDF
Gnevshev мониторинг
PPT
Java. Многопоточность.
PPTX
Операционные системы 2015, лекция № 3
PPTX
Операционные системы 2015, лекция № 2
PPTX
Programming Java - Lection 06 - Multithreading - Lavrentyev Fedor
презентация 2
Операционные системы 2015, лекция № 5
Multi threads
Системы контроля версий
Операционные системы 2015, лекция № 1
Про курс «Технологии Индустрии 4.0»
Svitla .Net meetup in Kiev, Anzhiiak Oleksii
презентация лекции №22
Журналирование Windows
FreeRTOS
monit — простой мониторинг
Working with .NET Threads
Usage concurrence in java
Multiprocessor Programming Intro (lecture 2)
Gnevshev мониторинг
Java. Многопоточность.
Операционные системы 2015, лекция № 3
Операционные системы 2015, лекция № 2
Programming Java - Lection 06 - Multithreading - Lavrentyev Fedor
Ad

Similar to Процессы и потоки (20)

DOCX
Нурафшанский филлиал Ташкентского Университета Информационных Технологий имен...
PPTX
Multiprocessor Programming Intro (lecture 1)
PDF
ПВТ - весна 2015 - Лекция 2. POSIX Threads. Основные понятия многопоточного п...
PDF
Многопроцессорным компьютерам - параллельные программы!
PDF
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
PPTX
Основные принципы управления процессором и процессами
PDF
Многопоточность
PPTX
Асинхронность и сопрограммы
PDF
Лекция 6. Стандарт OpenMP
PDF
Distributed Systems Presentation for Business informatics students (Staroletov)
PPT
Антон Шумихин - Архитектура ОС
PDF
Операционные системы
PDF
Многопоточные Алгоритмы (для BitByte 2014)
PDF
Владислав Грязнов "Многозадачность в PHP"
PPTX
Григорий Демченко, Асинхронность и неблокирующая синхронизация
PPTX
Asynchrony and coroutines
PPTX
20090720 hpc exercise1
PDF
ПВТ - весна 2015 - Лекция 4. Шаблоны многопоточного программирования
PPT
Знакомство с понятием «Операционная система Windows»
Нурафшанский филлиал Ташкентского Университета Информационных Технологий имен...
Multiprocessor Programming Intro (lecture 1)
ПВТ - весна 2015 - Лекция 2. POSIX Threads. Основные понятия многопоточного п...
Многопроцессорным компьютерам - параллельные программы!
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
Основные принципы управления процессором и процессами
Многопоточность
Асинхронность и сопрограммы
Лекция 6. Стандарт OpenMP
Distributed Systems Presentation for Business informatics students (Staroletov)
Антон Шумихин - Архитектура ОС
Операционные системы
Многопоточные Алгоритмы (для BitByte 2014)
Владислав Грязнов "Многозадачность в PHP"
Григорий Демченко, Асинхронность и неблокирующая синхронизация
Asynchrony and coroutines
20090720 hpc exercise1
ПВТ - весна 2015 - Лекция 4. Шаблоны многопоточного программирования
Знакомство с понятием «Операционная система Windows»
Ad

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