Конспект лекций по предмету "Информатика"


В лекции рассматриваются понятие потока thread и многопоточное выполнение multi-threading

8. Лекция: Потоки (threads) и многопоточное выполнение программ (multi-threading)
В лекции рассматриваются понятие потока (thread) и многопоточное выполнение (multi-threading); модели многопоточности; пользовательские потоки и потоки ядра; потоки в "Эльбрусе", Solaris, Linux, POSIX, Windows 2000, Java.


Содержание

Введение Однопоточные и многопоточные процессы История многопоточности Пользовательские потоки и потоки ядра Проблемы многопоточности Потоки POSIX (Pthreads) Потоки и процессы в Solaris Потоки в Windows 2000 Потоки в Linux Потоки в Java Ключевые термины Краткие итоги Набор для практики Вопросы Упражнения Темы для курсовых работ, рефератов, эссе

Введение

Многопоточность (multi-threading) – одна из наиболее интересных и актуальных тем в данном курсе и, по-видимому, в области ИТ вообще, и, кроме того, одна из излюбленных тем автора. Актуальность данной темы особенно велика, в связи с широким распространением многоядерных процессоров. В лекции рассмотрены следующие вопросы:
Исторический обзор многопоточности Модели многопоточного исполнения Проблемы, связанные с потоками Потоки в POSIX (Pthreads) Потоки в Solaris 2 Потоки в Windows 2000/XP Потоки в Linux Потоки в Java и .NET.

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


Рис. 10.1. Однопоточный и многопоточный процессы.
Как видно из схемы, однопоточный процесс использует, как обычно, код, данные в основной памяти и файлы, с которыми он…

История многопоточности

Концепция многопоточности начала складываться, по-видимому, с 1980-х гг. в системе UNIX и ее диалектах. Наиболее развита многопоточность была в… Далее, в середине 1990-х гг. была выпущена ОС Windows NT, в которую была также… Однако в разных операционных системах API для многопоточности существенно отличались. Поэтому многопоточные программы,…

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

Низкоуровневые потоки, в которые отображаются пользовательские потоки, называются потоками ядра (kernel threads).Они поддержаны и используются на… Существуют различные модели многопоточности– способы отображения… - Модель много / один (many-to-one)– отображение нескольких пользовательских потоков в один и тот же поток ядра.…

Проблемы многопоточности

Семантика системных вызовов fork() и exec().Как уже отмечалось, в классической ОС UNIX системный вызов forkсоздает новый "тяжеловесный"… Прекращение потоков. Важной проблемой является проблема прекращения потоков:… Обработка сигналов. Сигналыв UNIX – низкоуровневый механизм обработки ошибочных ситуаций. Примеры сигналов: SIGSEGV…

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


Рис. 10.5. Потоки в Solaris.
На рис. 10.6 изображена схема организации процесса в ОС Solaris.


Потоки в Windows 2000

Как уже отмечалось, в системе Windows реализована модель многопоточности "один / один". Каждый поток содержит:
идентификатор потока (thread id); набор регистров отдельные стеки для пользовательских и системных процедур; область памяти для локальных данных потока (thread-local storage – TLS).

Потоки в Linux

В системе Linux потоки называются tasks (задачами),а не threads. Поток создается системным вызовом clone (). Данный системный вызов позволяет дочерней задаче использовать общее адресное пространство с родительской задачей (процессом).

Потоки в Java

Потоки в Java управляются JVM. Возможно создание групп потоков и иерархии таких групп.
Возможные состояния потоков в Java изображены на рис. 10.7. Подобно потокам в…


Ключевые термины

POSIX Pthreads – потоки, специфицированные стандартом POSIX и используемые в POSIX-приложениях.
Solaris threads – пользовательские потоки в ОС Solaris.
Thread – класс, представляющий поток, в языке Java.


Модель много / много- модель многопоточности,при которой различные пользовательские потокимогут быть отображены в различные потоки ядра.

Модель один / один– модель многопоточности, при которой каждый пользовательский потокотображается в один определенный поток ядра.
Мьютекс (mutex)– аналог семафоров, обеспечивающий взаимное исключение,… Облегченный процесс (lightweight process)– процесс, работающий в общем пространстве виртуальной памяти с…

Краткие итоги

Впервые понятие процесса, близкое современной концепции потока, было реализовано в системе "Эльбрус" в конце 1970-х гг. Многопоточность… Архитектура потоков – многоуровневая: потоки пользовательского уровня… Многопоточность ставит ряд интересных проблем: семантика системных вызовов fork и exec; прекращение потоков; обработка…

Набор для практики



Вопросы



Упражнения



Темы для курсовых работ, рефератов, эссе


Не сдавайте скачаную работу преподавателю!
Данный конспект лекций Вы можете использовать для создания шпаргалок и подготовки к экзаменам.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем конспект самостоятельно:
! Как написать конспект Как правильно подойти к написанию чтобы быстро и информативно все зафиксировать.