рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Межпроцессное взаимодействие

Межпроцессное взаимодействие - раздел Образование, ОПЕРАЦИОННЫЕ СИСТЕМЫ, СРЕДЫ И ОБОЛОЧКИ   Для Общения Друг С Другом Потоки Могут Использовать Широкий С...

 

Для общения друг с другом потоки могут использовать широкий спектр возмож­ностей, включая каналы, именованные каналы, почтовые ящики, вызов удаленной процедуры и совместно используемые файлы. Каналы могут работать в одном из двух режимов, выбираемом при создании канала: байтовом и режиме сообщений. Байтовые каналы работают так же, как и в системе UNIX. Каналы сообщений в чем-то похожи на байтовые каналы, но сохраняют границы между сообщениями, так что четыре записи по 128 байт будут читаться с другой стороны канала как четыре сообщения по 128 байт, а не как одно 512-байтовое сообщение, как это может слу­читься с байтовыми каналами. Также имеются именованные каналы, для которых существуют те же два режима. Именованные каналы, в отличие от обычных кана­лов, могут использоваться по сети.

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

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

Вызов удаленной процедуры представляет собой тот способ, которым процесс А просит процесс В вызвать процедуру в адресном пространстве процесса В от име­ни процесса А и вернуть результат процессу А. Существуют различные ограниче­ния на параметры. Например, нет смысла передавать указатель другому процессу.

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

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

Семафор создается при помощи API-функции CreateSemaphore, которая может задать для него начальное значение, а также установить максимальное значение. Семафоры представляют собой объекты в ядре и, таким образом, обладают деск­рипторами или дескрипторами защиты. Копия дескриптора может быть получена с помощью функции DuplicateHandle и передана другому процессу, в результате чего несколько процессов могут синхронизироваться, используя один семафор.

Мьютексы также представляют собой объекты ядра, используемые для синх­ронизации, но они проще семафоров, так как не содержат счетчиков. По существу, они являются блокировками, для работы с которыми используются функции API WaitForSingleObject и ReleaseMutex. Как и дескрипторы семафоров, дескрипторы мьютексов можно скопировать и передать другому процессу, так что потоки раз­личных процессов смогут иметь доступ к одному и тому же мьютексу.

Третий механизм синхронизации основан на критических секциях (или критических областях). Критические секции подобны мьютексам, но отличаются тем, что они связаны с адресным про­странством создавшего их потока. Поскольку критические секции не являются объектами ядра, у них нет дескрипторов или дескрипторов защиты и они не могут передаваться от одного процесса другому. Блокирование и разблокирование выполняется функциями EnterCrlt leal Section и LeaveCritical Sect Ion соответствен­но. Поскольку эти функции API в основном выполняются в пространстве пользо­вателя и обращаются к системным вызовам в ядро, только когда требуется блоки­рование потока, они работают быстрее, чем мьютексы.

В последнем механизме синхронизации используются объекты ядра, называе­мые событиями, которые бывают двух видов: сбрасываемые вручную и сбрасыва­емые автоматически. Каждое событие может находиться в одном из двух состоя­ний: установленном и сброшенном. Поток может ждать какого-либо события с помощью функции WaitForSingleObject. Если другой поток вызывает событие при помощи функции SetEvent, результат зависит от типа события. Если событие яв­ляется сбрасываемым вручную, то все ждущие его потоки отпускаются, а событие остается в установленном состоянии, пока его кто-либо не сбросит при помощи функции ResetEvent. В случае сбрасываемого автоматически события отпускается только один ожидающий его поток, а событие тут же сбрасывается. Кроме функ­ции SetEvent существует также функция PulseEvent, отличающаяся от первой функ­ции тем, что если этого события никто не ждет, событие все равно само сбрасыва­ется и, таким образом, пропадает впустую. При использовании функции SetEvent событие, которого никто не ждет, напротив, остается в установленном состоянии, так что как только какой-либо поток обратится к функции WaitForSingleObject, он будет тут же отпущен, после чего событие сбросится.

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

Интерфейс Win32 API содержит около 100 вызовов, работающих с процесса­ми, потоками и волокнами. Значительное количество этих вызовов в той или иной мере имеет отношение к межпроцессному взаимодействию.

– Конец работы –

Эта тема принадлежит разделу:

ОПЕРАЦИОННЫЕ СИСТЕМЫ, СРЕДЫ И ОБОЛОЧКИ

Омский государственный институт сервиса... Кафедра высшей математики и информатики...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Межпроцессное взаимодействие

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Понятия вычислительного процесса и ресурса
  Понятие «вычислительный процесс» (или просто – процесс) является одним из основных при рассмотрении операционных систем. Под

Планирование процессов
  Важнейшей частью операционной системы, непосредственно влияющей на функционирование вычислительной машины, является подсистема управления процессами. Для опе

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

Понятия потока («нити») и многопоточности
  Когда говорят о процессах, то тем самым хотят отметить, что операци­онная система поддерживает их обособленность: у каждого процесса имеется свое виртуальное адресное пространство,

Управление памятью
  Память является важнейшим ресурсом, требующим тщательного управления со стороны операционной системы. Распределению подлежит вся оперативная память, не занятая операционной с

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

Управление файлами и файловая система
  Под файлом обычно понимают набор данных, организованных в виде совокупности записей одинаковой структуры. Для управления этими дан­ными создаются соответству

Управление процессами и ресурсами в автономных многопроцессорных вычислительных машинах
  3.1. Реализация операционных систем многопроцессорных вычислительных машин   В предыдущих разделах рассматривались вопросы реализации ОС, функционирующих на а

Планирование и синхронизация в многопроцессорных вычислительных машинах
  На однопроцессорной ВМ планирование одномерно. Единственный вопрос, на который должен быть каждый раз получен ответ, – какой процесс должен быть запущен следующим? На мультипроцессо

И ресурсами в многомашинных вычислительных системах
  Одним из эффективнейших направлений развития вычислитель-ной техники стало построение так называемых многомашинных вычислительных систем (далее – ММВС

Понятия сетевой и распределенной операционных систем
  Операционные системы ММВС распределенного типа (то есть распределенных вычислительных систем – вычислительных сетей) обычно называют «сетевыми ОС». В

Операционных сис­тем
  Наиболее удачным (по современным меркам) способом, с помо­щью которого распределенная система может достичь определенного уровня однородности, несмотря на различие аппаратного обесп

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

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

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

Операционные системы разных этапов разработки вычислительных машин
Зарождение прообразов операционных систем в современном их толковании относят к периоду разработки в середине 1950-х годов вычислительных машин на полупроводниковой элементной базе (так называемого

Операционных систем UNIX
  История операционной системы UNIX началась в 1969 году с совместного проекта Массачусетского технологического института, исследовательской лаборатории Bell Labs и корпорации General

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

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

Интерфейсы системы UNIX
Операционную систему UNIX можно рассматривать в виде некоторой пирамиды. У основания пирамиды располагается аппаратное обеспечение, состоящее из цен­трального процессора, памяти, дисков, терминалов

Оболочка и утилиты системы UNIX
У многих версий системы UNIX имеется графический интерфейс пользователя, схожий с популярными интерфейсами, примененными на компьютере Macintosh и впоследствии в системе Windows. Однако истинные пр

Структура ядра системы UNIX
  Нижний уровень ядра состоит из драйверов устройств и процедуры диспетче­ризации процессов. Все драйверы системы UNIX делятся на два класса: драйверы символьных устройств и драйверы

Реализация процессов в UNIX
  У каждого процесса в системе UNIX есть пользовательская часть, в которой работает программа пользователя. Однако когда один из потоков обращается к системному вызову, происходит эму

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

Реализация управления памятью в UNIX
  До версии 3BSD большинство систем UNIX основывались на свопинге (подкач­ке), работавшем следующим образом. Когда загружалось больше процессов, чем могло поместиться в памяти,

Реализация ввода-вывода в системе UNIX
  Ввод-вывод в операционной системе UNIX реализуется набором драйверов уст­ройств, по одному для каждого типа устройств. Функция драйвера заключается в изолировании остальной части си

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

Реализация файловой системы Berkeley Fast
Приведенное выше описание объясняет принципы работы классической файло­вой системы UNIX. Теперь познакомимся с усовершенствованиями этой системы, реализованными в версии Berkeley. Во-первых, были р

Реализация файловой системы Linux
Изначально в операционной системе Linux использовалась файловая система опе­рационной системы MINIX. Однако в системе MINIX длина имен файлов ограни­чивалась 14 символами (для совместимости с UNIX

Реализация файловой системы NFS
Файловая система NFS (Network File System – сетевая файловая система) корпо­рации Sun Microsystems, использующуюся на всех современных системах UNIX (а также на некоторых не-UNIX системах) для объе

Реализация безопасности в UNIX
Когда пользователь входит в систему, программа регистрации login (которая явля­ется SETUID root) запрашивает у пользователя его имя и пароль. Затем она хэширует пароль и ищет его в файле пар

Структура системы
Операционная система Windows 2000 состоит из двух основных частей: самой опе­рационной системы, работающей в режиме ядра, и подсистем окружения, работа­ющих в режиме пользователя. Ядро является тра

Реализация объектов
  Объекты представляют собой, вероятно, самое важное понятие операционной си­стемы Windows 2000. Они предоставляют однородный и непротиворечивый ин­терфейс ко всем системным ресурсам

Подсистемы окружения
Итак, операционная система Windows 2000 состоит из компонентов, работающих в режиме ядра, и компонентов, работающих в режиме пользователя. Выше были рассмотрены компоненты, работающие в режиме ядра

Реализация процессов и потоков
  Процессы и потоки имеют большее значение и являются более сложными, чем за­дания и волокна. Процесс со­здается другим процессом при помощи вызова интерфейса Win32 CreateProcess. Это

Загрузка Windows 2000
  Прежде чем операционная система Windows 2000 сможет начать работу, она долж­на загрузиться. Процесс загрузки создает начальные процессы. С точки зрения аппаратного обеспечения, проц

Реализация управления памятью
В операционной системе Windows 2000 поддерживается подгружаемое по тре­бованию одинарное линейное 4-гигабайтное адресное пространство для каждого процесса. Сегментация в любой форме не поддерживает

Реализация ввода-вывода в Windows 2000
  Основная функция менеджера ввода-вывода за­ключается в создании каркаса, в котором могут работать различные устройства вво­да-вывода. Структуру каркаса образуют набор независимых от

Файловые системы типа FAT
Операционная система Windows 2000 кроме новой файловой системы NTFS, разработанной специально для Windows NT, поддерживает несколько устаревших файловых систем типа FAT операционной системы MS-DOS.

Файловая система типа NTFS
  Система NTFS (New Technology File System – файловая система новой технологии) представляет собой новую сложную файловую систему, разработанную специально для Windows NT и перене­сен

Реализация защиты в Windows 2000
  Защита в автономной системе Windows 2000 реализуется при помощи нескольких компонентов. Регистрацией в системе управляет программа winlogon, а аутентификацией занимаются I

Библиографический список
1. Андреев А. Г. и др. Microsoft Windows 2000 Server и Professio-nal / Под общ. ред. А.Н. Чекмарева и Д.Б. Вишнякова. – СПб.: БХВ – Петербург, 2001. – 1056 с.: ил. 2. Андр

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги