Взаимодействие «клиент-сервер». Использование потоков на стороне сервера: однопоточный сервер, многопоточный сервер, многопоточный сервер на базе пула потоков. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Взаимодействие «клиент-сервер». Использование потоков на стороне сервера: однопоточный сервер, многопоточный сервер, многопоточный сервер на базе пула потоков.



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

Основной принцип технологии "клиент-сервер" заключается в разделении функций приложения на три группы:

- ввод и отображение данных (взаимодействие с пользователем);

- прикладные функции, характерные для данной предметной области;

- функции управления ресурсами (файловой системой, базой даных и т.д.)

 

Поэтому, в любом приложении выделяются следующие компоненты:

- компонент представления данных

- прикладной компонент

- компонент управления ресурсом

 

Связь между компонентами осуществляется по определенным правилам, которые называют "протокол взаимодействия".

Модели Windows NT

Структура Windows NT основана на комбинации нескольких моделей. Модель клиент—сервер (client/server) служит в Windows NT для того, чтобы предоставить пользователям различные среды ОС (исходно Windows, MS-DOS, OS/2 и POSIX), а объектная модель (object model) — для унификации управления системными ресурсами и выделения их пользователям. Третья модель, симметричная мультипроцессорная обработка (symmetric multiprocessing, SMP), позволяет Windows NT максимально использовать возможности многопроцессорных машин.

В структуре Windows NT есть элементы как послойной, так и клиент-серверной модели. Часть Windows NT, работающая в режиме ядра, называется исполнительной системой NT (NT executive). В нее входит набор компонентов, реализующих управление виртуальной памятью, управление объектами (ресурсами), ввод-вывод и файловые системы (включая сетевые драйверы), взаимодействие между процессами и фрагменты системы защиты от несанкционированного доступа. Эти компоненты взаимодействуют между собой главным образом как модули, а не как слои. Каждый компонент вызывает другие посредством набора тщательно оговоренных внутренних процедур.

Однако послойная модель применяется в системе ввода-вывода исполнительной системы NT, описываемой далее, и в самых низкоуровневых частях исполнительной системы: ядре NT (NT kernel) и слое абстрагирования от оборудования (hardware abstraction layer, HAL). Все другие компоненты исполнительной системы NT расположены поверх этих двух. Ядро NT выполняет функции ОС низкого уровня, похожие на те, с которыми мы встречаемся в клиент-серверных ОС с микроядром — например, планирование потоков, обработку прерываний и исключений, а также многопроцессорную синхронизацию. Оно также предоставляет набор процедур и базовых объектов, используемых остальными частями исполнительной системы для реализации конструкций более высокого уровня. Ниже ядра располагается динамически подключаемая библиотека (dynamic-link library, DLL) HAL — слой кода, изолирующий ядро и другие части исполнительной системы NT от платформенно-зависимых особенностей аппаратуры. HAL работает непосредственно с оборудованием.

Как показывает рис. 3-1, модель клиент-сервер используется в Windows NT главным образом для предоставления API и средств, которые обычно рассматривают как среду ОС. Хотя защищенная подсистема (сервер) Win32 обеспечивает пользовательский интерфейс и необходима для работы системы, другие серверы также могут подключаться к исполнительной системе, причем они могут загружаться и выполняться одновременно в любой желаемой комбинации. Серверы взаимодействуют с процессами приложений при помощи средства передачи сообщений, предоставляемого исполнительной системой NT.

 

 

27.Реализация потоков в системе. Потоки на уровне пользователя.

 

 

 

Исходя из здравого смысла, какой-либо процесс не должен иметь неограниченного права управления другими процессами. Одним из способов достижения этого в Windows NT служит система виртуальной памяти (virtual memory).

При всяком обращении процесса по виртуальному адресу система виртуальной памяти транслирует этот адрес в физический. Она также предотвращает непосредственный доступ процесса к виртуальной памяти, занятой другими процессами или ОС. Для исполнения кода ОС или доступа к памяти ОС поток должен исполняться в привилегированном режиме процессора — так называемом режиме ядра (kernel mode). Однако большинство процессов — это процессы пользовательского режима, т. е. такие, потоки которых исполняются в основном в непривилегированном режиме процессора — пользовательском режиме (user mode).

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

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

 

28.Реализация потоков в системе. Потоки на уровне ядра.

 

 

29.Реализация потоков в системе. Комбинированный подход

 

30. MIMD системы. Параллельные архитектуры. SMP и AMP. Ограничения масштабируемости тесносвязанных систем.

 

 

MIMD компьютер имеет N процессоров, независимо исполняющих N потоков команд и обрабатывающих N потоков данных. Каждый процессор функционирует под управлением собственного потока команд, то есть MIMD компьютер может параллельно выполнять совершенно разные программы.

MIMD архитектуры далее классифицируются в зависимости от физической организации памяти, то есть имеет ли процессор свою собственную локальную память и обращается к другим блокам памяти, используя коммутирующую сеть, или коммутирующая сеть подсоединяет все процессоры к общедоступной памяти. Исходя из организации памяти, различают следующие типы параллельных архитектур:

- Компьютеры с распределенной памятью (Distributed memory)
Процессор может обращаться к локальной памяти, может посылать и получать сообщения, передаваемые по сети, соединяющей процессоры. Сообщения используются для осуществления связи между процессорами или, что эквивалентно, для чтения и записи удаленных блоков памяти. В идеализированной сети стоимость посылки сообщения между двумя узлами сети не зависит как от расположения обоих узлов, так и от трафика сети, но зависит от длины сообщения.

- Компьютеры с общей (разделяемой) памятью (True shared memory)
Все процессоры совместно обращаются к общей памяти, обычно, через шину или иерархию шин. В идеализированной PRAM (Parallel Random Access Machine - параллельная машина с произвольным доступом) модели, часто используемой в теоретических исследованиях параллельных алгоритмов, любой процессор может обращаться к любой ячейке памяти за одно и то же время. На практике масштабируемость этой архитектуры обычно приводит к некоторой форме иерархии памяти. Частота обращений к общей памяти может быть уменьшена за счет сохранения копий часто используемых данных в кэш-памяти, связанной с каждым процессором. Доступ к этому кэш-памяти намного быстрее, чем непосредственно доступ к общей памяти.

- Компьютеры с виртуальной общей (разделяемой) памятью (Virtual shared memory)
Общая память как таковая отсутствует. Каждый процессор имеет собственную локальную память и может обращаться к локальной памяти других процессоров, используя "глобальный адрес". Если "глобальный адрес" указывает не на локальную память, то доступ к памяти реализуется с помощью сообщений, пересылаемых по коммуникационной сети.

 

 

 

31.Многопроцессорные системы.

 

 



Поделиться:


Последнее изменение этой страницы: 2017-02-06; просмотров: 344; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.186.173 (0.007 с.)