Межпроцессное взаимодействие - Файловая система Windows 2000
Для общения друг с другом потоки могут использовать широкий спектр возможностей, включая каналы, именованные каналы, почтовые ящики, вызов удаленной процедуры и совместно используемые файлы. Каналы могут работать в одном из двух режимов, выбираемом при создании канала: байтовом и режиме сообщений. Байтовые каналы работают так же, как и в системе UNIX. Каналы сообщений в чем-то похожи на байтовые каналы, но сохраняют границы между сообщениями, так что четыре записи по 128 байт будут читаться с другой стороны канала как четыре сообщения по 128 байт, а не как одно 512-байтовое сообщение, как это может случиться с байтовыми каналами. Также имеются именованные каналы, для которых существуют те же два режима. Именованные каналы, в отличие от обычных каналов, могут использоваться по сети.
Почтовые ящики Представляют собой особенность системы Windows 2000, которой нет в UNIX. В некоторых аспектах они подобны каналам, но не во всем. Во-первых, почтовые ящики являются однонаправленными, тогда как каналы могут работать в обоих направлениях. Они также могут использоваться по сети, но не предоставляют гарантированной доставки. Наконец, онипозволяютотправляющемупроцессуиспользоватьшироковещаниедлярассылки сообщения не одному, а сразу многим получателям.
Сокеты Подобны каналам с тем отличием, что они при нормальном использовании соединяют процессы на разных машинах. Например, один процесс пишет в сокет, а другой процесс на удаленной машине читает из него. Сокеты также могут использоваться для соединения процессов на одной машине, но поскольку их использование влечет за собой большие накладные расходы, чем использование каналов, то, как правило, они применяются в контексте сети.
Вызов удаленной процедуры представляет собой тот способ, которым процесс А просит процесс В вызвать процедуру в адресном пространстве процесса В от имени процесса А и вернуть результат процессу А. Существуют различные ограничения на параметры. Например, нетсмыслапередаватьуказательдругомупроцессу.
Наконец, процессы могут совместно использовать память для одновременного отображения одного и того же файла. Все, что один процесс будет писать в этот файл, будет появляться в адресном пространстве других процессов. С помощью такого механизма можно легко реализовать общий буфер, применяемый в задаче производителя и потребителя.
Помимо многочисленных механизмов межпроцессного взаимодействия, операционная система Windows 2000 также предоставляет множество механизмов синхронизации, включая семафоры, мьютексы, критические регионы и события. Все эти механизмы работают с потоками, а не процессами, так что когда поток блокируется на семафоре, другие потоки этого процесса(если такие есть) не затрагиваются и могут продолжать работу.
Семафор создается при помощи API-функции CreateSemaphore, которая может задать для него начальное значение, а также установить максимальное значение. Семафоры представляют собой объекты в ядре и, таким образом, обладают дескрипторами или дескрипторами защиты. Копия дескриптора может быть получена с помощью функции DuplicateHandle и передана другому процессу, в результате чего несколько процессов могут синхронизироваться, используя один семафор. Существуют вызовы для выполнения на семафоре операций up и down, они имеют несколько странные имена: ReleaseSemaphore (up) и WaitForSingleObject (down). Функции WaitForSingleObject также можно задать интервал времени, поистечениикоторогождущийизменениясостояниясемафорапотокбудетотпущен, дажееслисемафоростанетсяравным0 (хотя использование таймеров приводит к конфликтам).
Мьютексы также представляют собой объекты ядра, используемые для синхронизации, но они проще семафоров, так как не содержат счетчиков. По существу, они являются блокировками, для работы с которыми используются функции API WaitForSingleObject и ReleaseMutex. Как и дескрипторы семафоров, дескрипторы мьютексов можно скопировать и передать другому процессу, так что потоки различных процессов смогут иметь доступ к одному и тому же мьютексу.
Третий механизм синхронизации основан на критических секциях (которые назывались иногда критическими областями). Критические секции подобны мьютексам, но отличаются тем, что они связаны с адресным пространствомс оздавшего их потока. Поскольку критические секции не являются объектами ядра, у них нет дескрипторов или дескрипторов защиты и они не могут передаваться от одного процесса другому. Блокирование и разблокирование выполняется функциями EnterCriticalSection и LeaveCriticalSection соответственно. Поскольку эти функции API в основном выполняются в пространстве пользователя и обращаются к системным вызовам в ядро, только когда требуется блокирование потока, они работают быстрее, чем мьютексы.
В последнем механизме синхронизации используются объекты ядра, называемые Событиями, которые бывают двух видов: сбрасываемые вручную и сбрасываемые автоматически. Каждое событие может находиться водном из двух состояний: установленном и сброшенном. Поток может ждать какого-либо события с помощью функции WaitForSingleObject. Если другой поток вызывает событие при помощи функции SetEvent, результат зависит от типа события. Если событие является сбрасываемым вручную, то все ждущие его потоки отпускаются, а событие остается в установленном состоянии, пока его кто - либо не сбросит при помощи функции ResetEvent. В случае сбрасываемого автоматически события отпускается только один ожидающий его поток, а событие тут же сбрасывается. Кроме функции SetEvent существует также функция PulseEvent, отличающаяся от первой функции тем, что если этого события никто не ждет, событие все равно само сбрасывается и, таким образом, пропадает в пустую. При использовании функции SetEvent событие, которого никто не ждет, напротив, остается в установленном состоянии, так что как только какой-либо поток обратится к функции WaitForSingleObject, он будет тут же отпущен, после чего событие сбросится.
События, мьютексы и семафоры могут иметь имена и храниться в файловой системе, подобно именованным каналам. Несколько процессов могут синхронизироваться друг с другом, открывая одно и тоже событие, мьютекс или семафор, что проще, чем создание такого объекта одним процессом и передача другим процессам дубликата дескриптора, хотя такой способ, конечно, также возможен.
Интерфейс. Win32 API содержит около 100 вызовов, работающих с процессами, потоками и волокнами. Значительное количество этих вызовов в той или иной мере имеет отношение к межпроцессному взаимодействию. Некоторые из обсуждавшихся выше функций, а также некоторые другие важные функции.
Большинство вызовов из табл. 11.10 либо обсуждались выше, либо должны говорить сами за себя. Снова обращаю ваше внимание, что не все они являются системными вызовами. Как уже упоминалось, операционная система Windows 2000 ничего не знает о волокнах. Они полностью реализованы в пространстве пользователя. Поэтому функция CreateFiber выполняет свою работу целиком в пространстве пользователя, не обращаясь к системным вызовам (разве что только с просьбой выделить ей память). Многие другие вызовы Win32 также обладают подобным свойством, включая уже упомянутые функции EnterCriticalSection и LeaveCriticalSection.
Похожие статьи
-
Создание прецедента - Операционная система windows 2000
Стандартизация позволяет "создать прецедент", благодаря которому администрирование сети становится более упорядоченным. Введение стандарта позволяет...
-
Следующее "поколение" сетевых операционных систем Windows представляется в версии Windows Server 2000, первый выпуск которой, был осуществлен в 2000...
-
Файловая система - Операционная система Windows
Определение файловой системы Файловая система (англ. file system) - регламент, определяющий способ организации, хранения и именования данных на носителях...
-
Загрузка Windows 2000 - Файловая система Windows 2000
Прежде чем операционная система Windows 2000 сможет начать работу, она должна загрузиться. Процесс загрузки создает начальные процессы. Мы кратко обсудим...
-
Управление Windows 2000 - Операционная система windows 2000
В отличие от предыдущих версий NT, операционная система Windows 2000 обладает огромным количеством новых возможностей. Многие из ее подсистем и служб,...
-
Три разновидности Windows NT Server - Операционная система windows 2000
Со стороны серверов Windows NT Server ситуация обстоит несколько сложнее, нежели со стороны рабочих станций. Во второй половине 1997г. Microsoft начала...
-
Операционная система Windows - Программное обеспечение информационных компьютерных систем
Само название Windows, на русском языке означает "Окна" и имеет в нашем языке синонимы Виндовс, Вундоуз и другие производные полученные после перевода....
-
YAFFS ( Yet Another Flash File System ) - YAFFS - это первая файловая система, разработанная специально для использования на NAND накопителях. Автором...
-
Файловая система - это часть операционной системы, назначение которой состоит в том, чтобы обеспечить пользователю удобный интерфейс при работе с...
-
Преимущества и недостатки Windows - Операционная система Windows
Преимущества. Удобство и поддержка устройств. Основное отличие программ для DOS и для Windows состоит в том, что DOS-программа может работать с...
-
Взаимодействие задач с PVM - Администрирование параллельных процессов
В системе PVM каждая задача, запущенная на некотором процессоре, идентифицируется целым числом, которое называется идентификатором задачи (TID) и по...
-
Дисковые разделы, MBR, загрузочные сектора и таблица разделов - Операционная система Linux
Весь жесткий диск может быть разбит на несколько разделов, причем каждый раздел представлен так, как если бы это был отдельный диск. Разделение...
-
Краткий обзор Windows 2000 - Операционная система windows 2000
Достаточно посетить Web-узел Microsoft или просмотреть спецификацию Windows 2000, чтобы понять, что эта операционная система является действительно...
-
Чтобы успешно работать с Windows XP, необходимо овладеть основными приемами работы с системой. После освоения основных понятий и принципов работы систем,...
-
Преимущества и недостатки системы Windows - Операционная система Windows
В заключение нужно упомянуть о преимуществах и недостатках системы Windows. К преимуществам Windows относят: - Удобство и поддержка устройств . Основное...
-
Задачи файловой системы - Операционная система Windows
Основные функции любой файловой системы нацелены на решение Следующих задач:именование файлов;программный интерфейс работы с файлами для...
-
Структура SQL - Банки и базы данных. Системы управления базами данных
Широкое развитие информационных систем и связанная с этим унифицированность информационного пространства привело к необходимости создания стандартного...
-
Сетевыми протоколами называют протоколы первого и второго уровней, определяющих архитектуру локальной сети, в том числе ее топологию, передающую среду,...
-
Восстановление системы - Стандартные служебные программы Windows 9х, их назначение
Еще одной утилитой для восстановления утраченной информации является служба восстановления системы. Ее принципиально отличие от архивации состоит в том,...
-
Файловая система /usr - Операционная система Linux
Обычно файловая система /usr достаточно большая по объему, так как все пpогpаммы установлены именно здесь. Вся инфоpмация в каталоге /usr помещается туда...
-
Основные составные части - Операционная система Windows
Система операционный windows Наверное, ни одно из существующих на настоящий момент определений понятия "операционная система" не может претендовать на...
-
Широкое распространение в операционной системе Windows имеет множество стандартных программ обеспечивающих работу устройств компьютера и служащих для...
-
Программа "Экранная лупа" облегчает работу с экраном пользователям с нарушениями зрения. Она выводит отдельное окно, в котором отображается увеличенная...
-
Операции с файловой структурой - Операционная система Windows
К основным операциям с файловой структурой относятся: - навигация по файловой структуре; - запуск программ и открытие документов; - создание папок; -...
-
Общие сведения об экранной клавиатуре - Операционная система Windows
Экранная клавиатура - это приложение, отображающее виртуальную клавиатуру на экране и позволяющее людям с ограниченной подвижностью печатать на экране с...
-
При помощи этого мастера вы сможете настроить параметры совместимости, которые могут решить проблемы с программами, корректно работавшими в предыдущих...
-
1 сохранять в виде файлов различного формата (см. ниже); 2 выводить на печать (с помощью команды меню ФАЙЛ= Печать ); 3 вставлять в документы, созданные...
-
Калькулятор - Операционная система Windows
Калькулятор Windows используется для выполнения сравнительно простых вычислений и работает почти так же, как обычный карманный микрокалькулятор....
-
Стандартные программы и приложения - Операционная система Windows
Стандартные программы входят в состав самой операционной системы Windows (текстовый редактор WordPad, графический редактор Paint, виртуальный калькулятор...
-
Для оценки качества системы JIRA будем использовать набор критериев, предлагаемых ГОСТ Р ИСО/МЭК 9126-93 [23]. Для оценки будем использовать следующую...
-
Позволяет настроить до десяти отдельных входов для расчета значения переменной (PV), которые можно масштабировать и смещать. Блок AUXSUMMER извлекает...
-
Блок накопителя импульсного входа (Pulse Input Totalizer Block) предоставляет функция накопления расхода, дополняющую блок канала импульсного входа...
-
Классификация имитационных моделей - Имитационные модели информационных систем
Имитационные модели принято классифицировать по четырем наиболее распространенным признакам: Типу используемой ЭВМ; Способу взаимодействия с...
-
Табличный процессор Excel фирмы Microsoft предназначен для ввода, хранения, обработки и выдачи больших объемов, данных в виде, удобном для анализа и...
-
Области применения экспертных систем - Экспертные системы
Области применения систем, основанных на знаниях, могут быть сгруппированы в несколько основных классов: медицинская диагностика, контроль и управление,...
-
Классификация компьютерных сетей - Теоретические основы информационных процессов и систем
Для классификации компьютерных сетей используются разные признаки, выбор которых заключается в том, чтобы выделить из существующего многообразия такие,...
-
Завершив выбор схемы работы системы и общего принципа работы ее частей и выбрав тип базы данных, следует перейти к выбору языка программирования....
-
Концептуализации - Экспертные системы, методика построения
На данном этапе проводится содержательный анализ проблемной области, выявляются используемые понятия и их взаимосвязи, определяются методы решения задач....
-
Наиболее распространенная форма - ЭВМ. Раньше чаще использовались вычислительные центры (ВЦ). Вычислительный центр - организуется и специализируется на...
-
Основные термины теории баз данных - БД (База данных) - совокупность специальным образом организованных данных, хранимых в памяти вычислительной системы...
Межпроцессное взаимодействие - Файловая система Windows 2000