Презентация по дисциплине "Операционные системы" для студентов третьего курса специальности "Компьютерные сети"
Презентация на тему "Треды (Потоки)". В презентации описывает процессы и треды с точки зрения операционной системы. На примерах и схемах объясняется общий принцип многопоточности процессов. Даются определения ядра и микроядра ОС.Презентация по дисциплине "Операционные системы" для студентов третьего курса специальности "Компьютерные сети" по теме "Треды (Потоки)"
Процесс с точки зрения
ОС
• Владение процесса
• Планирование/Исполнение
• Theard(поток, тред) – элемент
выполнения процесса
• Task(задача) – элемент владения
Тред
зрения ОС
(поток выполнения)
наименьшая единица обработки с точки
Многопоточность
• Способность платформы или
приложения запускать несколько
параллельных потоков (тредов) в
рамках процесса
Потоки в процессе
• Состояние (state)
• Если не запущен – контекст
• Стек выполнения
• Локальные данные
• Доступ к ресурсам процесса
Отличия от процессов
• Поток зависим от его процесса и
является его частью
• Потоки используют одно адресное
пространство, а процессы разные
• Переключение между потоками
происходит быстрее чем
переключение между процессами
threa
d
ol
contr
block
user
stack
threa
d
ol
contr
block
user
stack
kerne
stack
l
kerne
stack
l
threa
d
ol
contr
block
user
stack
kerne
stack
l
proce
contr
ss
ol
block
user
addre
ss
space
proce
contr
ss
ol
block
user
addre
ss
space
user
stack
kerne
stack
l
processcontrolblockprocesscontrolblockthreadcontrolblockthreadcontrolblockthreadcontrolblock
Зачем?
• Создать новый трейд быстрее чем
создавать процесс
• Уничтожить – быстрее …
• Переключиться между тредами –
• Треды могут общаться друг с
быстрее…
другом
• Решение ОС по поводу процесса
влияет на все потоки этого
процесса
– Приостановка процесса приводит к
приостановке всех потоков
– Завершение процесса приводи к
завершению всех процессов
• Потоки имеют состояния и могут
синхронизироваться с другими
потоками (аналогично процессам)
Процесс с одним
потоком
запрос
запрос
сервер
сервер
Процесс с двумя потоком
запрос
запрос
сервер
запрос
сервер
На каком уровне
«думать» о потоках ?
• На уровне ядра
• На уровне пользователя
На уровне ядра
user space
kernel
space
процесс
• ОС знает о потоках и может
• Параллелизация -
распределение задач на несколько
процессоров (на несколько
модулей)
Категории компьютерных
систем
• SISD – одна инструкция с одним
блоком данных
• SIMD –одна инструкция для
каждого блока данных
• MISD – несколько инструкций один
блок данных
• MIMD - каждый процессор
обрабатывает свой блок данных
• Распределенная память – сеть,
каждый компьютер изолирован,
передача памяти одного
компьютера другому очень
трудоемкая (долго по времени)
• Общая память – все процессоры
имеют доступ к общей паями.
Тратиться время на
синхронизацию работы нескольких
процессоров
Симметричная
мультипроцессорность
(Symmetric multiprocessing)
• Ядро может запускать процессы на любом
процессоре
• Части ядра могут работать параллельно на
нескольких процессорах
Микроядро
• Минимальная реализация функций
ядра ОС
– Насколько минимальна?
– Что нужно включать в ядро?
Входят ли драйверы в
микроядро?
Схемы конфигураций ядра
ОС
ru.wikipedia.org/wiki/Гибридное_ядро