Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Топ:
Генеалогическое древо Султанов Османской империи: Османские правители, вначале, будучи еще бейлербеями Анатолии, женились на дочерях византийских императоров...
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного хозяйства...
Когда производится ограждение поезда, остановившегося на перегоне: Во всех случаях немедленно должно быть ограждено место препятствия для движения поездов на смежном пути двухпутного...
Интересное:
Принципы управления денежными потоками: одним из методов контроля за состоянием денежной наличности является...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Дисциплины:
2017-06-25 | 1129 |
5.00
из
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
Семафоры
В 1965 году Дейкстра (E.W. Dijkstra) предложил использовать целую переменную для подсчета
сигналов запуска, сохраненных на будущее. Им был предложен новый тип переменных, так
называемые семафоры, значение которых может быть или некоторым положительным числом, соответствующим количеству отложенных активизирующих сигналов.
Семафор может управлять количеством процессов, которые имеют к нему доступ. Он
устанавливается на предельное количество процессов, которым доступ разрешен. Когда это число
достигнуто, последующие процессы будут приостановлены, пока один или более процессов не отсоединятся от семафора и не освободят доступ.
Мьютексы
Иногда используется упрощенная версия семафора, называемая мьютексом (mutex, сокращение
от mutual exclusion – взаимное исключение). Мьютекс не способен считать, он может лишь
управлять взаимным исключением доступа к совместно используемым ресурсам или кодам.
Реализация мьютекса проста и эффективна, что делает использование мьютексов особенно
полезным в случае потоков, действующих только в пространстве пользователя.
Мьютекс – переменная, которая может находиться в одном из двух состояний: блокированном
или неблокированном. Поэтому для описания мьютекса требуется всего один бит, хотя чаще
используется целая переменная, у которой 0 означает неблокированное состояние, а все
остальные значения соответствуют блокированному состоянию. Значение мьютекса
устанавливается двумя процедурами. Если поток (или процесс) собирается войти в критическую
область, он вызывает процедуру mutex_lock.
Критические секции (critical section) подобны мьютексам, однако между ними существуют два
|
важных отличия:
мьютексы могут быть совместно использованы в различных процессах;
если критическая секция принадлежит другому процессу, ожидающий процесс
блокируется вплоть до освобождения критической секции; в отличие от этого, мьютекс
разрешает продолжение по истечении тайм-аута.
Критические секции и мьютексы очень схожи. На первый взгляд, выигрыш от использования
критической секции вместо мьютекса не очевиден. Критические секции, однако, более
эффективны, чем мьютексы, так как используют меньше системных ресурсов. Мьютексы могут
быть установлены на определенный интервал времени, по истечении которого выполнение
продолжается; критическая секция всегда ждет столько, сколько потребуется.
Способы организации межпроцессного взаимодействия (IPC), их достоинства и недостатки
Межпроцессное взаимодействие (англ. inter-process communication, IPC) — обмен данными между потоками одного или разных процессов. Реализуется посредством механизмов, предоставляемых ядром ОС или процессом, использующим механизмы ОС и реализующим новые возможности IPC. Может осуществляться как на одном компьютере, так и между несколькими компьютерами сети.
Каналы (pipes): виды, особенности реализации в ОС семейства Windows и в ОС семейства Linux
В программировании именованный канал или именованный конвейер (англ. named pipe) — один из методов межпроцессного взаимодействия, расширение понятия конвейера в Unix и подобных ОС. Именованный канал позволяет различным процессам обмениваться данными, даже если программы, выполняющиеся в этих процессах, изначально не были написаны для взаимодействия с другими программами. Это понятие также существует и в Microsoft Windows, хотя там его семантика существенно отличается. Традиционный канал — «безымянен», потому что существует анонимно и только во время выполнения процесса. Именованный канал — существует в системе и после завершения процесса. Он должен быть «отсоединён» или удалён, когда уже не используется. Процессы обычно подсоединяются к каналу для осуществления взаимодействия между ними.
|
Именованные каналы
В Windows дизайн именованных каналов смещён к взаимодействию «клиент-сервер», и они работают во многом как сокеты: помимо обычных операций чтения и записи, именованные каналы в Windows поддерживают явный «пассивный» режим для серверных приложений (для сравнения: сокет домена UNIX). Windows 95 поддерживает клиенты именованных каналов, а системы ветви Windows NT могут служить также и серверами.
К именованному каналу можно обращаться в значительной степени как к файлу. Можно использовать функции Windows API CreateFile, CloseHandle, ReadFile, WriteFile, чтобы открывать и закрывать канал, выполнять чтение и запись. Функции стандартной библиотеки Си, такие, как fopen, fread, fwrite и fclose, тоже можно использовать, в отличие от сокетов Windows (англ.), которые не реализуют использование стандартных файловых операций в сети. Интерфейс командной строки (как в Unix) отсутствует.
Именованные каналы — не существуют постоянно и не могут, в отличие от Unix, быть созданы как специальные файлы в произвольной доступной для записи файловой системе, но имеют временные имена (освобождаемые после закрытия последней ссылки на них), которые выделяются в корне файловой системы именованных каналов (англ. named pipe filesystem, NPFS) и монтируются по специальному пути «\\.\pipe\» (то есть у канала под названием «foo» полное имя будет «\\.\pipe\foo»). Анонимные каналы, использующиеся в конвейерах, — это на самом деле именованные каналы со случайным именем.
|
|
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!