Многопоточность. (Тема 4)

Содержание

Слайд 2

Потоки Word: Текстовый редактор Фоновая печать Проверка орфографии … Процесс A

Потоки

Word:
Текстовый редактор
Фоновая печать
Проверка орфографии

Процесс A
Процесс B
Процесс C
Процесс D

Процесс A
Поток A1
Поток A2
Поток

A3

Доступ к общей памяти?

Слайд 3

Определение многопоточности Многопоточность — квазимногозадачность на уровне одного исполняемого процесса Многопоточность

Определение многопоточности

Многопоточность — квазимногозадачность на уровне одного исполняемого процесса
Многопоточность — свойство

операционной системы, заключающееся в том, что задача может выполняться в более чем 1 потоке, за счёт чего достигается более эффективное использование ресурсов вычислительной машины.
С каждым потоком связывается:
Счетчик выполнения команд
Регистры для текущих переменных
Стек
Состояние
Потоки делят между собой элементы своего процесса:
Адресное пространство
Глобальные переменные
Открытые файлы
Таймеры
Семафоры
Статистическую информацию
Слайд 4

Достоинства Упрощение программы в некоторых случаях, за счет использования общего адресного

Достоинства

Упрощение программы в некоторых случаях, за счет использования общего адресного пространства.
Быстрота

создания потока, по сравнению с процессом, примерно в 100 раз.
Повышение производительности самой программы, т.к. есть возможность одновременно выполнять вычисления на процессоре и операцию ввода/вывода.
Слайд 5

Потоки в пространстве пользователя Каждый процесс имеет таблицу потоков, аналогичную таблице

Потоки в пространстве пользователя

Каждый процесс имеет таблицу потоков, аналогичную таблице процессов

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

Потоки в пространстве ядра Наряду с таблицей процессов в пространстве ядра

Потоки в пространстве ядра

Наряду с таблицей процессов в пространстве ядра имеется

таблица потоков.
Ядро управляет потоками!
Недостатки и преимущества противоположны предыдущему пункту.
Преимущества:
Наличие прерывания по таймеру – можно выделять равное время потокам
Блокируется только один поток, остальные работают
Проще в реализации
Недостатки:
Такую многопоточность нельзя реализовать на ядре не поддерживающим многопоточность
Медленное переключение, создание и завершение потоков
Все процессы и потоки работают по одному алгоритму планирования
Слайд 7

Смешанная реализация потоков Потоки работают в режиме пользователя, но при системных

Смешанная реализация потоков

Потоки работают в режиме пользователя, но при системных вызовах

переключаются в режим ядра.
Переключение в режим ядра и обратно является ресурсоемкой операцией и отрицательно сказывается на производительности системы.
Мультиплексирование потоков
Поток ядра может содержать несколько несколько потоков пользователя