Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://www.sao.ru/hq/vch/Publications/Russ/html/linux-posix/node2.html
Дата изменения: Unknown Дата индексирования: Sat Sep 11 22:06:50 2010 Кодировка: koi8-r |
POSIX.1b теперь определяет разделяемую память, сообщения, и семафоры. Функциональные возможности и их проект подобны или лучше чем механизмы IPC System V, которые мы уже имеем в Linux. Основные расширения, сравниваемые с System V IPC:
Предположим, что имеются 20 сервер-процессов, работающих на единственном огромном B-дереве карты памяти файла базы данных. Вставка узла с минимальным блокированием параллельных доступов другим 19 процессам в большом B-дереве может требовать вокруг 100 семафорных операций, и это означает 100 одновременных запросов к ядру :-(. С POSIX.1b's семафорами базируйщимися на памяти пользователя, вы помещаете все ваши семафоры в часть разделяемой памяти и библиотечным доступом, с высоко эффективным test-and-set машинным кодом. Системные вызовы будут необходимы только в редком случае для операций блокирования.
Голубая мечта программиста базы данных - скорострельность и легкий путь, чтобы ее осуществить!
Новые функции для IPC: mmap(), munmap(), shm_open(), shm_close(), shm_unlink(), ftruncate(), sem_init(), sem_destroy(), sem_open(), sem_close(), sem_unlink(), sem_wait(), sem_trywait(), sem_post(), sem_getvalue(), mq_open(), mq_close(), mq_mq_unlink(), mq_send(), mq_receive(), mq_notify(), mq_setattr(), mq_getattr(), mprotect().
Состояние выполнения: POSIX IPC еще пока не осуществлен. (Xотя часть основных механизмов уже доступна в существующем SysV IPC.) Начиная с Linux 1.3 , mmap() полностью осуществлена.
Eric Dumas (dumas@freenix.fr) написал мне, что он сделал некоторую работу по POSIX IPC, однако доступных патчей нет, увы.