Основные сведения о потоках

Основные сведения о потоках

В предыдущей главе на рис. 6.1 было показано, каким образом обеспечивается существование потоков в среде процесса. Использование потоков на примере многопоточного сервера, способного обрабатывать запросы одновременно нескольких клиентов, иллюстрирует рис. 7.1; каждому клиенту отведен поток. Эта модель будет реализована в главе 11.

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

• У каждого потока имеется собственный стек, который она использует при вызове функций и обработке некоторых данных.

• При создании потока вызывающий процесс может передать ему аргумент (Arg на рис. 7.1), который обычно является указателем. На практике этот аргумент помещается в стек потока.

• Каждый поток может распределять индексы собственных локальных областей хранения (Thread Local Storage, TLS), а также считывать и устанавливать значения TLS. TLS, описанные далее, предоставляют в распоряжение потоков небольшие массивы данных, и каждый из потоков может обращаться к собственной TLS. Одним из преимуществ TLS является то, что они обеспечивают защиту данных, принадлежащих одному потоку, от воздействия со стороны других потоков.

Рис. 7.1. Потоки в среде сервера

Аргумент потока и TLS могут использоваться для указания произвольной структуры данных. Применительно к представленному на рис. 7.1 примеру сервера эта структура может содержать текущий запрос и отклик потока на этот запрос, а также предоставлять рабочую память для других целей.

В случае SMP-систем Windows обеспечивает параллельное выполнение различных потоков, в том числе и принадлежащих одному и тому же процессу, на разных процессорах. Правильное использование этой возможности позволяет повысить производительность, однако, как будет показано в двух следующих главах, в результате непродуманных действий без заранее определенной стратегии использования нескольких процессоров производительность SMP-систем может даже ухудшиться по сравнению с однопроцессорными системами.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Основные сведения о диаграммах

Из книги Компьютер на 100. Начинаем с Windows Vista автора Зозуля Юрий

Основные сведения о диаграммах Диаграммы служат для представления имеющихся в таблице данных в графическом виде, что позволяет повысить наглядность данных, показать соотношение различных параметров или динамику их изменения. Excel позволяет строить диаграммы различных


Основные сведения о базах данных и программах для их обработки

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Основные сведения о базах данных и программах для их обработки Сегодня компьютеры хранят и обрабатывают значительные объемы информации, начиная от бухгалтерии маленькой фирмы и заканчивая большими информационными системами. Например, на железной дороге тысячи


Основные сведения о запросах

Из книги Основы информатики: Учебник для вузов автора Малинина Лариса Александровна

Основные сведения о запросах Запросы являются одним из основных объектов любой базы данных и используются для отбора данных, расчетов и других операций. Чаще всего используются запросы на выборку, с помощью которых можно выбрать данные из одной или нескольких связанных


Основные сведения об устройствах и драйверах

Из книги Технологии программирования автора Камаев В А

Основные сведения об устройствах и драйверах Современный компьютер состоит из большого количества различных устройств, от правильной работы которых зависит его работа в целом. Чтобы операционная система могла использовать устройство, для него необходим драйвер –


Основные сведения о существовании объектов

Из книги MySQL 5.0. Библиотека программиста автора Гольцман Виктор Иосифович

Основные сведения о существовании объектов При построении C#-приложений вы вправе предполагать, что управляемая динамическая память будет обрабатываться без вашего прямого вмешательства. "Золотое правило" управления памятью .NET является очень простым.• Правило. Следует


12.10. Основные сведения об отчетах

Из книги Windows Vista. Для профессионалов автора Клименко Роман Александрович

12.10. Основные сведения об отчетах Отчеты представляют собой наилучшее средство для представления информации из базы данных в виде печатного документа. По сравнению с другими средствами вывода данных на печать отчеты обладают двумя принципиальными


3.1. ОСНОВНЫЕ СВЕДЕНИЯ

Из книги Защита от хакеров корпоративных сетей автора Автор неизвестен

3.1. ОСНОВНЫЕ СВЕДЕНИЯ Традиционно инженеры стремились, а некоторые из них, не снижая качества проектов, добивались значительного сокращения сроков проектирования. В начале Великой Отечественной войны начальник Центрального артиллерийского конструкторского бюро В.Г.


11.1. ОСНОВНЫЕ СВЕДЕНИЯ

Из книги Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform автора Кёртен Роб


1.2. Основные сведения о реляционных базах данных

Из книги Недокументированные и малоизвестные возможности Windows XP автора Клименко Роман Александрович

1.2. Основные сведения о реляционных базах данных Из этого раздела вы узнаете, как устроена реляционная база данных. Вначале мы рассмотрим таблицы, затем ключевые столбцы, связи между таблицами и, наконец, целостность данных в базе.ТаблицыРеляционная база данных


6.1. Основные сведения о службах

Из книги UNIX: разработка сетевых приложений автора Стивенс Уильям Ричард

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


Основные сведения о перехвате сеанса

Из книги UNIX — универсальная среда программирования автора Пайк Роб

Основные сведения о перехвате сеанса Лучше всего объяснить перехват сеанса на примере. Представьте, что злоумышленник случайно или в результате успешной для него атаки получил возможность наблюдать за трафиком между двумя машинами. Одна из машин – сервер, который он


Основные сведения о хакинге аппаратных средств

Из книги автора

Основные сведения о хакинге аппаратных средств В зависимости от целей исследователя ответ на вопрос «Что и как он будет исследовать?» может изменяться в очень широких пределах. Как правило, способы осуществления хакинга аппаратных средств определяются его целями:•


Основные понятия о процессах и потоках

Из книги автора

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


Основные сведения

Из книги автора

Основные сведения INF-файлы предназначены для описания начального процесса установки новой программы или оборудования. Каждый INF-файл должен начинаться с заголовка. Этот заголовок определяет версию INF-файла, а также версию операционной системы, для которой этот INF-файл


Глава 8 Основные сведения о сокетах UDP

Из книги автора

Глава 8 Основные сведения о сокетах UDP 8.1. Введение Приложения, использующие TCP и UDP, фундаментально отличаются друг от друга, потому что UDP является ненадежным протоколом дейтаграмм, не ориентированным на установление соединения, и этим принципиально непохож на


2.1 Основные сведения о файлах

Из книги автора

2.1 Основные сведения о файлах Файл представляет собой последовательность байтов. (Байт — небольшая порция информации, обычно размером в восемь бит. Для наших целей можно считать байт синонимом слова "символ".) Никаких ограничений по структуре системой на файл не