19.6. Семафоры ОС System V
PHP имеет расширение, предназначенное для работы с семафорами ОС System V. Если ваша операционная система поддерживает такую возможность, вы тоже можете добавить это расширение в установку PHP. На время написания этой книги работу с механизмами семафоров поддерживали только операционные системы Solaris, Linux и AIX.
Семафоры являются способом управления ресурсами, которые могли бы использоваться одним объектом, аналогично тому, как сигнальные флаги используются на кораблях для обмена информацией. Идею использования целочисленного счетчика для управления ресурсами операционных систем впервые предложил в начале 1960-х годов Эдсгер Дейсктра (Edsger Dijkstra).
Полное объяснение механизма работы семафоров выходит за рамки настоящей книги. Семафоры входят в стандартный курс по вычислительным системам в любом колледже, кроме того, описание механизма семафоров приводится во многих описаниях операционных систем. На Web-узле whatis.com <http://www.whatis.com/> в описании механизма семафоров сделана ссылка на книгу Ричарда Стивенса Unix Network Programming, опубликованную издательством Prentice Hall. Второе издание этой книги было опубликовано в двух томах в 1997 году.
boolean sem_acquire(integer identifier)
Функция sem_acquire (листинг 19.20) делает попытку запроса семафора, идентифицированного функцией sem_get. Эта функция блокирует работу до тех пор, пока семафор не будет получен. Существует реальная опасность вечного ожидания семафора. Одним из способов избежать этого является ограничение времени ожидания с последующей попыткой получить его еще раз. В этом случае значение семафора никогда не уменьшается.
Если блокировка семафора не будет снята с помощью функции sem_release, PHP снимет ее сам, выдав при этом предупреждение.
integer sem_get(integer key, integer maximum, integer permission)
Функция sem_get предназначена для получения идентификатора семафора. Если семафора не существует, он будет создан. Необязательные аргументы maximum и permission используются только во время создания семафора. Аргумент maximum управляет количеством приемов семафора. По умолчанию его значение равно 1. Аргумент permission управляет привилегиями чтения и записи в семафор подобно тому, как это делается с файлами. По умолчанию его значение равно 0666 , что равносильно доступу с правами чтения и записи для всех пользователей. Аргумент key используется для идентификации процесса семафора среди других процессов в системе. Целое число, возвращаемое функцией sem_get, может быть уникальным при каждом вызове, даже тогда, когда задано то же значение аргумента key.
boolean sem_release(integer identifier)
Функция sem_release предназначена для отмены действия функции sem_acquire function.
boolean sem_remove(integer identifier)
Функция sem_remove предназначена для удаления семафора из памяти.
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
PHP. Разное:Apache,IMAP,MnoGoSearch,OpenSSL. Часть Пятнадцатая.
02-05-2015
<< Предыдущая статья | Следующая статья >> |
PHP. Разное:Apache,IMAP,MnoGoSearch,OpenSSL. Часть Четырнадцатая. | PHP. Разное:Apache,IMAP,MnoGoSearch,OpenSSL. Часть Шестнадцатая. |