🗊Презентация Архитектура операционных систем. Процессы и потоки

Нажмите для полного просмотра!
Архитектура операционных систем. Процессы и потоки, слайд №1Архитектура операционных систем. Процессы и потоки, слайд №2Архитектура операционных систем. Процессы и потоки, слайд №3Архитектура операционных систем. Процессы и потоки, слайд №4Архитектура операционных систем. Процессы и потоки, слайд №5Архитектура операционных систем. Процессы и потоки, слайд №6Архитектура операционных систем. Процессы и потоки, слайд №7Архитектура операционных систем. Процессы и потоки, слайд №8Архитектура операционных систем. Процессы и потоки, слайд №9Архитектура операционных систем. Процессы и потоки, слайд №10Архитектура операционных систем. Процессы и потоки, слайд №11Архитектура операционных систем. Процессы и потоки, слайд №12Архитектура операционных систем. Процессы и потоки, слайд №13Архитектура операционных систем. Процессы и потоки, слайд №14Архитектура операционных систем. Процессы и потоки, слайд №15Архитектура операционных систем. Процессы и потоки, слайд №16Архитектура операционных систем. Процессы и потоки, слайд №17Архитектура операционных систем. Процессы и потоки, слайд №18Архитектура операционных систем. Процессы и потоки, слайд №19Архитектура операционных систем. Процессы и потоки, слайд №20Архитектура операционных систем. Процессы и потоки, слайд №21Архитектура операционных систем. Процессы и потоки, слайд №22Архитектура операционных систем. Процессы и потоки, слайд №23Архитектура операционных систем. Процессы и потоки, слайд №24Архитектура операционных систем. Процессы и потоки, слайд №25Архитектура операционных систем. Процессы и потоки, слайд №26Архитектура операционных систем. Процессы и потоки, слайд №27Архитектура операционных систем. Процессы и потоки, слайд №28Архитектура операционных систем. Процессы и потоки, слайд №29Архитектура операционных систем. Процессы и потоки, слайд №30Архитектура операционных систем. Процессы и потоки, слайд №31Архитектура операционных систем. Процессы и потоки, слайд №32Архитектура операционных систем. Процессы и потоки, слайд №33Архитектура операционных систем. Процессы и потоки, слайд №34Архитектура операционных систем. Процессы и потоки, слайд №35

Содержание

Вы можете ознакомиться и скачать презентацию на тему Архитектура операционных систем. Процессы и потоки. Доклад-сообщение содержит 35 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Архитектура операционных систем

3. Процессы и потоки
Описание слайда:
Архитектура операционных систем 3. Процессы и потоки

Слайд 2





Процесс
Определения:
Это программа в состоянии выполнения
Объект, выполняемый на процессоре
Процессы – фундаментальное понятие в ОС
Как исполняемый объект, процесс позволяет параллельное выполнение нескольких программ в системе (ЦП переключается между процессами)
Всё ПО, работающее на компьютере, включая саму ОС, организовано в виде множества процессов
Описание слайда:
Процесс Определения: Это программа в состоянии выполнения Объект, выполняемый на процессоре Процессы – фундаментальное понятие в ОС Как исполняемый объект, процесс позволяет параллельное выполнение нескольких программ в системе (ЦП переключается между процессами) Всё ПО, работающее на компьютере, включая саму ОС, организовано в виде множества процессов

Слайд 3





Процесс 2
Процесс состоит из трех основных компонент
Исполняемого программного кода
Ассоциированных с ним данных, необходимых для выполнения этой программы
Контекста (информация, необходимая ОС для управления процессом)
№ процесса
Регистры ЦП
Содержимое стэка
Контекст – основа для переключения процессов
ОС ведёт список всех процессов, находящихся в системе
Описание слайда:
Процесс 2 Процесс состоит из трех основных компонент Исполняемого программного кода Ассоциированных с ним данных, необходимых для выполнения этой программы Контекста (информация, необходимая ОС для управления процессом) № процесса Регистры ЦП Содержимое стэка Контекст – основа для переключения процессов ОС ведёт список всех процессов, находящихся в системе

Слайд 4





Образ процесса
Это выделенное место в памяти
Каждый процесс выполняется в собственном виртуальном адресном пространстве, которое состоит из:
Сегмента стэка: используется для вызовов функций и системных вызовов
Сегмента данных: переменные, статические и динамические выделяемые из кучи
Сегмент кода: код программы, обычно доступ в режиме только для чтения
Запуск одной и той же программы несколько раз – порождает новые процессы, у каждого из которых своё виртуальное адресное пространство и окружение
Описание слайда:
Образ процесса Это выделенное место в памяти Каждый процесс выполняется в собственном виртуальном адресном пространстве, которое состоит из: Сегмента стэка: используется для вызовов функций и системных вызовов Сегмента данных: переменные, статические и динамические выделяемые из кучи Сегмент кода: код программы, обычно доступ в режиме только для чтения Запуск одной и той же программы несколько раз – порождает новые процессы, у каждого из которых своё виртуальное адресное пространство и окружение

Слайд 5





Структуры управления процессом
Таблица процессов. Одна запись на каждый процесс
Блок управления процессом: Process Control Block (PCB)
Описывает свой процесс и его текущее состояние
Образ процесса (Process Image)
Память, выделенная для процесса
Описание слайда:
Структуры управления процессом Таблица процессов. Одна запись на каждый процесс Блок управления процессом: Process Control Block (PCB) Описывает свой процесс и его текущее состояние Образ процесса (Process Image) Память, выделенная для процесса

Слайд 6





Process Control Block
Содержит всю информацию, необходимую для приостановки и последующего возобновления процесса
Идентификатор процеса
№ процесса, информация о пользователе, …
Состояние процессора
Регистры, указатели стэка, и т.д.
Состояние процесса
Информация для планировщика: приоритет, …
Привилегии: доступ к памяти, допустимые инструкции
Информация о виртуальной памяти, присвоенной процессу
Статистика и ограничения (ограничения по времени выполнения, статистика о затраченном процессорном времени)
Ввод/вывод: владение ресурсами, открытые файлы, выделенные устройства
Описание слайда:
Process Control Block Содержит всю информацию, необходимую для приостановки и последующего возобновления процесса Идентификатор процеса № процесса, информация о пользователе, … Состояние процессора Регистры, указатели стэка, и т.д. Состояние процесса Информация для планировщика: приоритет, … Привилегии: доступ к памяти, допустимые инструкции Информация о виртуальной памяти, присвоенной процессу Статистика и ограничения (ограничения по времени выполнения, статистика о затраченном процессорном времени) Ввод/вывод: владение ресурсами, открытые файлы, выделенные устройства

Слайд 7





Диспетчеризация
«Диспетчер» отправляет процессы на выполнение: выделяет время ЦП, переключает ЦП с одного процесса на другой
В любой момент времени, процесс может находится в каком-либо состоянии
Ожидания ввода/вывода
Выполнения
Готовности к выполнению
Выгруженном
…
Описание слайда:
Диспетчеризация «Диспетчер» отправляет процессы на выполнение: выделяет время ЦП, переключает ЦП с одного процесса на другой В любой момент времени, процесс может находится в каком-либо состоянии Ожидания ввода/вывода Выполнения Готовности к выполнению Выгруженном …

Слайд 8





Модель состояний процесса 1
Можно выделить три основных состояния
Выполнения (исполняется на ЦП)
Готовности (временно остановлен)
Блокировки (ожидает внешнего события)
Описание слайда:
Модель состояний процесса 1 Можно выделить три основных состояния Выполнения (исполняется на ЦП) Готовности (временно остановлен) Блокировки (ожидает внешнего события)

Слайд 9





Модель состояний процесса 2
Модель из пяти состояний
Новый: процесс создан, но ещё не помещён операционной системой в пул выполняемых процессов. Создан PCB, но процесс ещё не в памяти
Готовность: процесс полностью готов для выполнения
Выполнение: процесс исполняется
Блокировка: процесс ожидает внешнего события (В/В, и т.п.)
Завершен: процесс удаляется из пула выполняемых процессов (он закончил работу)
Описание слайда:
Модель состояний процесса 2 Модель из пяти состояний Новый: процесс создан, но ещё не помещён операционной системой в пул выполняемых процессов. Создан PCB, но процесс ещё не в памяти Готовность: процесс полностью готов для выполнения Выполнение: процесс исполняется Блокировка: процесс ожидает внешнего события (В/В, и т.п.) Завершен: процесс удаляется из пула выполняемых процессов (он закончил работу)

Слайд 10





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

Слайд 11





Управление процессами
Используется одна очередь «готовых» и одна очередь «заблокированных»
Недостатки:
При наступлении события, все ожидающие этого события процессы нужно переместить из «заблокированных» в очередь «готовых»
ОС нужно просмотреть все заблокированные процессы в очереди, чтобы выбрать правильный
Решение: Использовать несколько очередей «заблокированных» процессов
Описание слайда:
Управление процессами Используется одна очередь «готовых» и одна очередь «заблокированных» Недостатки: При наступлении события, все ожидающие этого события процессы нужно переместить из «заблокированных» в очередь «готовых» ОС нужно просмотреть все заблокированные процессы в очереди, чтобы выбрать правильный Решение: Использовать несколько очередей «заблокированных» процессов

Слайд 12





Создание процесса
Загрузка системы
При инициализации системы создаются несколько процессов
В Unix, это процессы «демоны» sched (pid 0), init (pid 1), и другие более высокоуровневые (веб-сервер, емейл-сервер и т.п.). Ядро – не процесс!
В NT, ядро - это системный процесс System (pid 4), далее загружаются система управления подсистемами smss.exe и т.д.
Текущий процесс порождает дочерний процесс
Напр. веб-сервер может порождать дочерний процесс для каждого нового запроса. Ужас! :)
В UNIX процесс init ожидает авторизации пользователя для того, чтобы запустить оболочку (новый процесс)
Пользователь создаёт новый процесс
Пользователь вызывает команду из текстовой оболочки, или запускает новую программу через графическую оболочку. Это создаёт новый процесс, родитель которого – оболочка.
Описание слайда:
Создание процесса Загрузка системы При инициализации системы создаются несколько процессов В Unix, это процессы «демоны» sched (pid 0), init (pid 1), и другие более высокоуровневые (веб-сервер, емейл-сервер и т.п.). Ядро – не процесс! В NT, ядро - это системный процесс System (pid 4), далее загружаются система управления подсистемами smss.exe и т.д. Текущий процесс порождает дочерний процесс Напр. веб-сервер может порождать дочерний процесс для каждого нового запроса. Ужас! :) В UNIX процесс init ожидает авторизации пользователя для того, чтобы запустить оболочку (новый процесс) Пользователь создаёт новый процесс Пользователь вызывает команду из текстовой оболочки, или запускает новую программу через графическую оболочку. Это создаёт новый процесс, родитель которого – оболочка.

Слайд 13





Создание процесса 2
Присвоить уникальный идентификатор новому процессу
Выделить место для процесса
Программа, данные, стэк
Инициализировать PCB
Добавить процесс в очередь «готовых» к выполнению
Описание слайда:
Создание процесса 2 Присвоить уникальный идентификатор новому процессу Выделить место для процесса Программа, данные, стэк Инициализировать PCB Добавить процесс в очередь «готовых» к выполнению

Слайд 14





Иерархия процессов (UNIX)
Строгая иерархия между процессами: дочерний и родительский процессы всегда взаимосвязаны
Группы процессов
Напр. интерпретатор командной строки (shell) является родительским для всех процессов, которые пользователь запускает из командной строки
Если пользователь посылает сигнал (напр. SIGKILL) группе процессов, то сигнал доставляется каждому процессу из группы
Описание слайда:
Иерархия процессов (UNIX) Строгая иерархия между процессами: дочерний и родительский процессы всегда взаимосвязаны Группы процессов Напр. интерпретатор командной строки (shell) является родительским для всех процессов, которые пользователь запускает из командной строки Если пользователь посылает сигнал (напр. SIGKILL) группе процессов, то сигнал доставляется каждому процессу из группы

Слайд 15





Иерархия процессов (Windows)
Её нет. Все равны.
Хэндл процесса: когда новый процесс создаётся родительским, то родитель получает хэндл дочернего процесса. Т.о. может им управлять.
Этот хэндл можно передавать другим процессом (в отличие от Unix, где родительский процесс не может менять множество дочерних процессов)
Описание слайда:
Иерархия процессов (Windows) Её нет. Все равны. Хэндл процесса: когда новый процесс создаётся родительским, то родитель получает хэндл дочернего процесса. Т.о. может им управлять. Этот хэндл можно передавать другим процессом (в отличие от Unix, где родительский процесс не может менять множество дочерних процессов)

Слайд 16





Создание процесса (UNIX)
Процессы создаются через fork() / exec()
fork() создаёт точный клон вызывающего процесса, т.н. «дочерний» процесс
exec() заменяет образ процесса этого клона новой программой, которая должна быть выполнена
Поэтому всегда есть иерархия
После создания у родительского и дочернего процессов собственные, разные адресные пространства. Некоторые ресурсы могут быть общими (напр. открытые файлы)
Поэтому системный вызов fork() «возвращается дважды»
Один раз в родительский процесс, и один раз во вновь созданный
Описание слайда:
Создание процесса (UNIX) Процессы создаются через fork() / exec() fork() создаёт точный клон вызывающего процесса, т.н. «дочерний» процесс exec() заменяет образ процесса этого клона новой программой, которая должна быть выполнена Поэтому всегда есть иерархия После создания у родительского и дочернего процессов собственные, разные адресные пространства. Некоторые ресурсы могут быть общими (напр. открытые файлы) Поэтому системный вызов fork() «возвращается дважды» Один раз в родительский процесс, и один раз во вновь созданный

Слайд 17





Создание процесса (UNIX) 2
Описание слайда:
Создание процесса (UNIX) 2

Слайд 18





Создание процесса (UNIX) 3
Как же создать новую программу, а не ещё одну копию старой?
«Легко». Вначале fork(), потом exec().
exec() не создаёт нового процесса, а заменяет данные текущего процеса новыми данными
У такой модели есть недостатки:
fork() очень медленный (нужно создать полную копию всего)
Решения в виде vfork(), copy-on-write, и т.п.
Описание слайда:
Создание процесса (UNIX) 3 Как же создать новую программу, а не ещё одну копию старой? «Легко». Вначале fork(), потом exec(). exec() не создаёт нового процесса, а заменяет данные текущего процеса новыми данными У такой модели есть недостатки: fork() очень медленный (нужно создать полную копию всего) Решения в виде vfork(), copy-on-write, и т.п.

Слайд 19





Что в Linux?
clone() заменяет fork() (и vfork() тоже). У clone() есть дополнительные опции.
Но всё-равно нужно чётко понимать, как работает fork()
В Linux exec() не является системным вызовом.
execve() – единственный системный вызов, аналогичный по функционалу exec()
Всё-равно нужно чётко понимать, как работает exec()
Описание слайда:
Что в Linux? clone() заменяет fork() (и vfork() тоже). У clone() есть дополнительные опции. Но всё-равно нужно чётко понимать, как работает fork() В Linux exec() не является системным вызовом. execve() – единственный системный вызов, аналогичный по функционалу exec() Всё-равно нужно чётко понимать, как работает exec()

Слайд 20





Создание процесса (NT)
Процессы создаются через системный вызов NtCreateProcess().
Описание слайда:
Создание процесса (NT) Процессы создаются через системный вызов NtCreateProcess().

Слайд 21





Переключение между процессами
При необходимости переключиться на другой процесс, ОС выполняет «переключение контекста»
Состояние старого процесса сохраняется в его PCB
Состояние нового процесса восстанавливается из его PCB
Время затраченное на переключение контекста – накладные расходы ОС
Зависит от аппаратной реализации
Описание слайда:
Переключение между процессами При необходимости переключиться на другой процесс, ОС выполняет «переключение контекста» Состояние старого процесса сохраняется в его PCB Состояние нового процесса восстанавливается из его PCB Время затраченное на переключение контекста – накладные расходы ОС Зависит от аппаратной реализации

Слайд 22





Переключение контекста
События, вызывающие переключение контекста:
Прерывания
Исключения
Системные вызовы
Описание слайда:
Переключение контекста События, вызывающие переключение контекста: Прерывания Исключения Системные вызовы

Слайд 23





Потоки (нити)
Процесс состоит как минимум из:
Адресного пространства
Набор инструкций (код) программы
Данные для программы
Состояния потока выполнения
Счётчик команд (регистр IP)
Указатель стэка SP
Другие регистры
Множества ресурсов ОС
Открытые файлы, сетевые соединения, …
И всё это в одном понятии процесса. Не есть хорошо.
Разделим соответственно на 3 области
Описание слайда:
Потоки (нити) Процесс состоит как минимум из: Адресного пространства Набор инструкций (код) программы Данные для программы Состояния потока выполнения Счётчик команд (регистр IP) Указатель стэка SP Другие регистры Множества ресурсов ОС Открытые файлы, сетевые соединения, … И всё это в одном понятии процесса. Не есть хорошо. Разделим соответственно на 3 области

Слайд 24





Потоки, зачем они нужны
Потоки – для параллелизма и одновременности.
Параллелизм – это физически одновременное выполнение для достижения наибольшей производительности.
Одновременность – логическое и/или физическое одновременное выполнение. Далее «параллелизм».
Один из вариантов достижения параллелизма – использование множества процессов
Программы в разных процессах изолированы друг от друга
Потоки – другой способ достичь параллелизма
Потоки работают внутри одного процесса, все потоки процесса имеют одно адресное пространство, и те же ресурсы ОС
У потоков есть свой стэк и своё состояние ЦП
Описание слайда:
Потоки, зачем они нужны Потоки – для параллелизма и одновременности. Параллелизм – это физически одновременное выполнение для достижения наибольшей производительности. Одновременность – логическое и/или физическое одновременное выполнение. Далее «параллелизм». Один из вариантов достижения параллелизма – использование множества процессов Программы в разных процессах изолированы друг от друга Потоки – другой способ достичь параллелизма Потоки работают внутри одного процесса, все потоки процесса имеют одно адресное пространство, и те же ресурсы ОС У потоков есть свой стэк и своё состояние ЦП

Слайд 25





Параллелизм
Возьмём пример про веб-сервер со слайда 12, который должен обслуживать несколько запросов параллельно
Ожидая данных по запросу клиента из базы данных, сервер мог бы загрузить данные с диска для другого клиента, и обработать запрос третьего клиента
Или, веб-браузер
В момент обращения к веб-страничке, он мог бы параллельно загружать данные из различных источников
Некая вычислительная программа, использующая физический параллелизм
Нужно обработать большой массив данных
Описание слайда:
Параллелизм Возьмём пример про веб-сервер со слайда 12, который должен обслуживать несколько запросов параллельно Ожидая данных по запросу клиента из базы данных, сервер мог бы загрузить данные с диска для другого клиента, и обработать запрос третьего клиента Или, веб-браузер В момент обращения к веб-страничке, он мог бы параллельно загружать данные из различных источников Некая вычислительная программа, использующая физический параллелизм Нужно обработать большой массив данных

Слайд 26





Параллелизм 2
В каждом из этих примеров параллелизма есть общее:
Один код
Доступ к одним данным
Один уровень доступа
Одно множество ресурсов
Но есть разное:
Стэк и указатель на стэк SP
Счётчик инструкций (регистр IP), указывающий на следующую инструкцию
Множество регистров ЦП
Описание слайда:
Параллелизм 2 В каждом из этих примеров параллелизма есть общее: Один код Доступ к одним данным Один уровень доступа Одно множество ресурсов Но есть разное: Стэк и указатель на стэк SP Счётчик инструкций (регистр IP), указывающий на следующую инструкцию Множество регистров ЦП

Слайд 27





Параллелизм 3
Как этого достичь?
Используя знания о процессах, можно
fork-нуть несколько процессов
Заставить каждый из них отображать своё виртуальное адресное пространство на одну и ту же физическую память
Неэффективно!
Затраты на PCB, таблицы страниц, создание операционной системой структур данных, копирование адресного пространства, и т.д.
Описание слайда:
Параллелизм 3 Как этого достичь? Используя знания о процессах, можно fork-нуть несколько процессов Заставить каждый из них отображать своё виртуальное адресное пространство на одну и ту же физическую память Неэффективно! Затраты на PCB, таблицы страниц, создание операционной системой структур данных, копирование адресного пространства, и т.д.

Слайд 28





Решение – потоки!
Основная мысль
отделить понятие процесса (адресного пространства, ресурсов ОС) от
Минимальной нити, потока управления (т.е. состояния выполнения – стэка, регистров ЦП)
Иногда такое состояние выполнения называют «лёгким процессом» или потоком
Описание слайда:
Решение – потоки! Основная мысль отделить понятие процесса (адресного пространства, ресурсов ОС) от Минимальной нити, потока управления (т.е. состояния выполнения – стэка, регистров ЦП) Иногда такое состояние выполнения называют «лёгким процессом» или потоком

Слайд 29





Потоки и процессы
Большинство современных ОС поддерживает два объекта:
Процесс, который определяет адресное пространство и общие атрибуты процесса
Поток, который определяет последовательный поток выполнения в рамках процесса
Поток привязывается к одному процессу (адресному пространству)
Но может быть много потоков в одном адресном пространстве
Лёгкий доступ к общим данным
Создание потоков занимает очень мало времени
Потоки стали единицей планирования
Процессы – всего-лишь контейнер, в котором выполняются потоки
Описание слайда:
Потоки и процессы Большинство современных ОС поддерживает два объекта: Процесс, который определяет адресное пространство и общие атрибуты процесса Поток, который определяет последовательный поток выполнения в рамках процесса Поток привязывается к одному процессу (адресному пространству) Но может быть много потоков в одном адресном пространстве Лёгкий доступ к общим данным Создание потоков занимает очень мало времени Потоки стали единицей планирования Процессы – всего-лишь контейнер, в котором выполняются потоки

Слайд 30





Потоки и процессы 2
Многопоточность полезна для:
Обработки одновременных событий
Построения параллельных программ
Поддержка многопоточности – разделение понятия процесса от минимального потока управления
Для параллельного выполнения не нужно создавать новые процессы
Быстрее, меньше требования к памяти
Описание слайда:
Потоки и процессы 2 Многопоточность полезна для: Обработки одновременных событий Построения параллельных программ Поддержка многопоточности – разделение понятия процесса от минимального потока управления Для параллельного выполнения не нужно создавать новые процессы Быстрее, меньше требования к памяти

Слайд 31





Потоки и процессы 3
Раньше: «процесс» = адресное пространство + ресурсы ОС + подразумевался единственный поток
Теперь: «процесс» = адресное пространство + ресурсы ОС + все потоки процесса
Описание слайда:
Потоки и процессы 3 Раньше: «процесс» = адресное пространство + ресурсы ОС + подразумевался единственный поток Теперь: «процесс» = адресное пространство + ресурсы ОС + все потоки процесса

Слайд 32





Потоки режима ядра и пользователя
На уровне ядра
Есть функция ядра для создания нового потока
Выделяет стэк выполнения внутри адресного пространства процесса
Создаёт и инициализирует Thread Control Block (указатель стэка и другие регистры ЦП)
Каждый поток идентифицируется своим номером (TID, по аналогии с PID)
На уровне пользователя
Есть возможность управлять потоками из библиотеки режима пользователя
Описание слайда:
Потоки режима ядра и пользователя На уровне ядра Есть функция ядра для создания нового потока Выделяет стэк выполнения внутри адресного пространства процесса Создаёт и инициализирует Thread Control Block (указатель стэка и другие регистры ЦП) Каждый поток идентифицируется своим номером (TID, по аналогии с PID) На уровне пользователя Есть возможность управлять потоками из библиотеки режима пользователя

Слайд 33





Потоки режима пользователя
Библиотека pthreads
Каждый поток представляется регистром PC, остальными регистрами ЦП, стэком и небольшим блоком TCB
Создание потока, переключение между потоками и синхронизация потоков выполняется вообще без участия ядра!
Потоки уровня пользователя могут быть в 10-100 раз быстрее, чем потоки режима ядра
Описание слайда:
Потоки режима пользователя Библиотека pthreads Каждый поток представляется регистром PC, остальными регистрами ЦП, стэком и небольшим блоком TCB Создание потока, переключение между потоками и синхронизация потоков выполняется вообще без участия ядра! Потоки уровня пользователя могут быть в 10-100 раз быстрее, чем потоки режима ядра

Слайд 34





Сравнение производительности
По данным Gribble, Lazowska, Levy, Zahorjan из Университета им. Вашингтона:
Создание потока режима ядра pthread_create()/pthread_join() в 2.5 раза быстрее создания нового процесса fork/exit.
Создание потока режима пользователя в 20 раз быстрее создания потока режима ядра
В тестах использовалось ядро Linux
Описание слайда:
Сравнение производительности По данным Gribble, Lazowska, Levy, Zahorjan из Университета им. Вашингтона: Создание потока режима ядра pthread_create()/pthread_join() в 2.5 раза быстрее создания нового процесса fork/exit. Создание потока режима пользователя в 20 раз быстрее создания потока режима ядра В тестах использовалось ядро Linux

Слайд 35





Обобщение
Множество потоков в одном адресном пространстве – это хорошо.
Потоки режима ядра намного эффективнее процессов, но есть потери на системные вызовы
Потоки режима пользователя имеют преимущества и недостатки
Высокая скорость и «дешевизна» создания
Могут быть проблемы с вводом/выводом и блокировками, из-за того, что ядро «не знает» об этих потоках
Возможно решить проблемы на уровне планировщика
Описание слайда:
Обобщение Множество потоков в одном адресном пространстве – это хорошо. Потоки режима ядра намного эффективнее процессов, но есть потери на системные вызовы Потоки режима пользователя имеют преимущества и недостатки Высокая скорость и «дешевизна» создания Могут быть проблемы с вводом/выводом и блокировками, из-за того, что ядро «не знает» об этих потоках Возможно решить проблемы на уровне планировщика



Похожие презентации
Mypresentation.ru
Загрузить презентацию