Процессы. Процессы и потоки. Процессы и потоки
Скачать 0.73 Mb.
|
Использование потоков (пример) (2)Способ организации web-сервера: Один поток, называемый диспетчером, считывает приходящие по сети запросы; После этого он находит свободный (то есть блокированный) рабочий поток и передает ему запрос, скажем, записывая указатель сообщения в специальное слово, связанное с каждым потоком; Затем диспетчер активизирует ждущий поток, переводя его из состояния блокировки в состояние готовности. Использование потоков. WEB-сервер. Модель сервера.сервер создается в виде набора последовательных потоков. Программа диспетчера состоит из бесконечного цикла, в который входит получение запроса и передача его рабочему потоку. Программа каждого рабочего потока состоит из бесконечного цикла, включающего получение запроса от диспетчера и проверку кэша на наличие запрашиваемой страницы. При наличии страницы в кэше она отсылается клиенту, и рабочий процесс блокируется в ожидании нового запроса. При отсутствии страницы в кэше она считывается с диска, отсылается клиенту, и рабочий процесс блокируется в ожидании нового запроса. Использование потоков. Пример (3) Сервер обработки данных.Способы конструирования сервера:
Классическая модель потоковМодель потокаМодель процесса, базируется на двух независимых концепциях: группирование ресурсов; выполнение программы. Модель потока. Группировка ресурсов.Процесс можно рассматривать как способ объединения родственных ресурсов в одну группу. У процесса есть адресное пространство, содержащее текст программы и данные, а также другие ресурсы. Ресурсами являются: открытые файлы; дочерние процессы; необработанные аварийные сообщения; обработчики сигналов, и м. д. Гораздо проще управлять ресурсами, объединив их в форме процесса. Модель потока. Выполнение программы.Процесс можно рассматривать как поток исполняемых команд или просто поток. Компоненты потока: счетчик команд, отслеживающий порядок выполнения действий; регистры, в которых хранятся текущие переменные; стек, содержащий протокол выполнения процесса. Отличия потока и процесса Процессы используются для группирования ресурсов, а потоки являются объектами, поочередно исполняющимися на центральном процессоре. Модель потока (2)Модель потока (3)Различные потоки в одном процессе не так независимы, как различные процессы. У всех потоков одно и то же адресное пространство, что означает совместное использование глобальных переменных. Любой поток имеет доступ к любому адресу ячейки памяти в адресном пространстве процесса, один поток может считывать, записывать или даже стирать информацию из стека другого потока. Защиты не существует, поскольку: - это невозможно и - это ненужно. В отличие от различных процессов, которые инициированы различными пользователями, один процесс всегда запущен одним пользователем, и потоки созданы, чтобы работать совместно. Модель потока (4)
|