SlideShare a Scribd company logo
1 of 31
Download to read offline
Операционные системы
Процессы и потоки
Процесс
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

What's hot

Операционные системы 2015, лекция № 5
Операционные системы 2015, лекция № 5Операционные системы 2015, лекция № 5
Операционные системы 2015, лекция № 5Aleksey Bragin
 
Системы контроля версий
Системы контроля версийСистемы контроля версий
Системы контроля версийUnguryan Vitaliy
 
Операционные системы 2015, лекция № 1
Операционные системы 2015, лекция № 1Операционные системы 2015, лекция № 1
Операционные системы 2015, лекция № 1Aleksey Bragin
 
Про курс «Технологии Индустрии 4.0»
Про курс «Технологии Индустрии 4.0» Про курс «Технологии Индустрии 4.0»
Про курс «Технологии Индустрии 4.0» Пупена Александр
 
Svitla .Net meetup in Kiev, Anzhiiak Oleksii
Svitla .Net meetup in Kiev, Anzhiiak OleksiiSvitla .Net meetup in Kiev, Anzhiiak Oleksii
Svitla .Net meetup in Kiev, Anzhiiak OleksiiSvitla Systems Inc.
 
презентация лекции №22
презентация лекции №22презентация лекции №22
презентация лекции №22student_kai
 
Журналирование Windows
Журналирование WindowsЖурналирование Windows
Журналирование Windowskzissu
 
FreeRTOS
FreeRTOSFreeRTOS
FreeRTOSquakke
 
monit — простой мониторинг
monit — простой мониторингmonit — простой мониторинг
monit — простой мониторингAndrew Pantyukhin
 
Usage concurrence in java
Usage concurrence in javaUsage concurrence in java
Usage concurrence in javaAsya Dudnik
 
Multiprocessor Programming Intro (lecture 2)
Multiprocessor Programming Intro (lecture 2)Multiprocessor Programming Intro (lecture 2)
Multiprocessor Programming Intro (lecture 2)Dmitry Tsitelov
 
Gnevshev мониторинг
Gnevshev   мониторингGnevshev   мониторинг
Gnevshev мониторингkuchinskaya
 
Java. Многопоточность.
Java. Многопоточность.Java. Многопоточность.
Java. Многопоточность.Unguryan Vitaliy
 
Операционные системы 2015, лекция № 3
Операционные системы 2015, лекция № 3Операционные системы 2015, лекция № 3
Операционные системы 2015, лекция № 3Aleksey Bragin
 
Операционные системы 2015, лекция № 2
Операционные системы 2015, лекция № 2Операционные системы 2015, лекция № 2
Операционные системы 2015, лекция № 2Aleksey Bragin
 
Programming Java - Lection 06 - Multithreading - Lavrentyev Fedor
Programming Java - Lection 06 - Multithreading - Lavrentyev FedorProgramming Java - Lection 06 - Multithreading - Lavrentyev Fedor
Programming Java - Lection 06 - Multithreading - Lavrentyev FedorFedor Lavrentyev
 

What's hot (20)

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

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

Операционные системы и среды
Операционные системы и средыОперационные системы и среды
Операционные системы и средыAlexandr Konfidentsialno
 
Программное обеспечение, его классификация. Понятие операционных систем
Программное обеспечение, его классификация. Понятие операционных системПрограммное обеспечение, его классификация. Понятие операционных систем
Программное обеспечение, его классификация. Понятие операционных системkurbanovafaina
 
Static Analysis of Transactions Management in Applications for Java EE Platform
Static Analysis of Transactions Management in Applications for Java EE PlatformStatic Analysis of Transactions Management in Applications for Java EE Platform
Static Analysis of Transactions Management in Applications for Java EE PlatformIosif Itkin
 
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 5
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 5Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 5
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 57bits
 
Lecture1: Introduction to Parallel Computing
Lecture1: Introduction to  Parallel ComputingLecture1: Introduction to  Parallel Computing
Lecture1: Introduction to Parallel ComputingAndrii Rodionov
 
Максим Лапшин — введение в Erlang
Максим Лапшин — введение в ErlangМаксим Лапшин — введение в Erlang
Максим Лапшин — введение в ErlangАлександр Ежов
 
Multiprocessor Programming Intro (lecture 1)
Multiprocessor Programming Intro (lecture 1)Multiprocessor Programming Intro (lecture 1)
Multiprocessor Programming Intro (lecture 1)Dmitry Tsitelov
 
023
023023
023JIuc
 
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)Badoo Development
 
Облако в Badoo год спустя
Облако в Badoo год спустяОблако в Badoo год спустя
Облако в Badoo год спустяYuriy Nasretdinov
 
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)Ontico
 
Основные принципы управления процессором и процессами
Основные принципы управления процессором и процессамиОсновные принципы управления процессором и процессами
Основные принципы управления процессором и процессамиkurbanovafaina
 
23
2323
23JIuc
 
ВВЕДЕНИЕ В NODE.JS
ВВЕДЕНИЕ В NODE.JS ВВЕДЕНИЕ В NODE.JS
ВВЕДЕНИЕ В NODE.JS Pavel Tsukanov
 
КГТУ Лекция 2: Обеспечение Качества Программного Обеспечения
КГТУ Лекция 2: Обеспечение Качества Программного ОбеспеченияКГТУ Лекция 2: Обеспечение Качества Программного Обеспечения
КГТУ Лекция 2: Обеспечение Качества Программного ОбеспеченияIosif Itkin
 

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

лекция 10
лекция 10лекция 10
лекция 10
 
Операционные системы и среды
Операционные системы и средыОперационные системы и среды
Операционные системы и среды
 
Программное обеспечение, его классификация. Понятие операционных систем
Программное обеспечение, его классификация. Понятие операционных системПрограммное обеспечение, его классификация. Понятие операционных систем
Программное обеспечение, его классификация. Понятие операционных систем
 
Static Analysis of Transactions Management in Applications for Java EE Platform
Static Analysis of Transactions Management in Applications for Java EE PlatformStatic Analysis of Transactions Management in Applications for Java EE Platform
Static Analysis of Transactions Management in Applications for Java EE Platform
 
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 5
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 5Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 5
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 5
 
Lecture1: Introduction to Parallel Computing
Lecture1: Introduction to  Parallel ComputingLecture1: Introduction to  Parallel Computing
Lecture1: Introduction to Parallel Computing
 
Theme 07
Theme 07Theme 07
Theme 07
 
Максим Лапшин — введение в Erlang
Максим Лапшин — введение в ErlangМаксим Лапшин — введение в Erlang
Максим Лапшин — введение в Erlang
 
Async
AsyncAsync
Async
 
Luxoft async.net
Luxoft async.netLuxoft async.net
Luxoft async.net
 
Multiprocessor Programming Intro (lecture 1)
Multiprocessor Programming Intro (lecture 1)Multiprocessor Programming Intro (lecture 1)
Multiprocessor Programming Intro (lecture 1)
 
023
023023
023
 
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
 
Облако в Badoo год спустя
Облако в Badoo год спустяОблако в Badoo год спустя
Облако в Badoo год спустя
 
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
 
Основные принципы управления процессором и процессами
Основные принципы управления процессором и процессамиОсновные принципы управления процессором и процессами
Основные принципы управления процессором и процессами
 
ос
осос
ос
 
23
2323
23
 
ВВЕДЕНИЕ В NODE.JS
ВВЕДЕНИЕ В NODE.JS ВВЕДЕНИЕ В NODE.JS
ВВЕДЕНИЕ В NODE.JS
 
КГТУ Лекция 2: Обеспечение Качества Программного Обеспечения
КГТУ Лекция 2: Обеспечение Качества Программного ОбеспеченияКГТУ Лекция 2: Обеспечение Качества Программного Обеспечения
КГТУ Лекция 2: Обеспечение Качества Программного Обеспечения
 

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