IPC расшифровывается как межпроцессное взаимодействие.
Эта техника позволяет процессам общаться друг с другом.
Поскольку каждый процесс имеет свое собственное адресное пространство и уникальное пользовательское пространство, как этот процесс взаимодействует друг с другом?
Ответ — Kernel, сердце операционной системы Linux, которая имеет доступ ко всей памяти. Поэтому мы можем запросить ядро выделить пространство, которое можно использовать для связи между процессами. Процесс также может взаимодействовать, имея файл, доступный обоим процессам. Процессы могут открывать и читать / записывать файл, что требует много операций ввода-вывода, которые занимают время.
Существуют различные IPC, которые позволяют процессу взаимодействовать с другими процессами, либо на том же компьютере, либо на другом компьютере в той же сети.
ipcs — это команда UNIX / Linux, которая используется для отображения информации о межпроцессном взаимодействии. ipcs предоставляет отчет по System V IPCS (очередь сообщений, семафор и общая память).
Команда ipcs с опцией -a выводит список всех возможностей IPC, которые имеют доступ для чтения для текущего процесса. Он предоставляет подробную информацию об очереди сообщений, семафоре и общей памяти.
# ipcs -a ------ Shared Memory Segments -------- key shmid owner perms bytes nattch status 0xc616cc44 1056800768 oracle 660 4096 0 0x0103f577 323158020 root 664 966 1 0x0000270f 325713925 root 666 1 2 ------ Semaphore Arrays -------- key semid owner perms nsems 0x0103eefd 0 root 664 1 0x0103eefe 32769 root 664 1 0x4b0d4514 1094844418 oracle 660 204 ------ Message Queues -------- key msqid owner perms used-bytes messages 0x000005a4 32768 root 644 0 0
Все средства IPC имеют уникальный ключ и идентификатор, который используется для идентификации средства IPC.
ipcs с опцией -q, перечисляет только очереди сообщений, для которых текущий процесс имеет доступ для чтения.
$ ipcs -q ------ Message Queues -------- key msqid owner perms used-bytes messages 0x000005a4 32768 root 644 0 0
Параметр ipcs -s используется для вывода списка доступных семафоров.
# ipcs -s ------ Semaphore Arrays -------- key semid owner perms nsems 0x0103eefd 0 root 664 1 0x0103eefe 32769 root 664 1 0x4b0d4514 1094844418 oracle 660 204
Опция ipcs -m с командой ipcs выводит список общих воспоминаний.
# ipcs -m ------ Shared Memory Segments -------- key shmid owner perms bytes nattch status 0xc616cc44 1056800768 oracle 660 4096 0 0x0103f577 323158020 root 664 966 1 0x0000270f 325713925 root 666 1 2
Параметр ipcs -i предоставляет подробную информацию об устройстве ipc.
# ipcs -q -i 32768 Message Queue msqid=32768 uid=0 gid=0 cuid=0 cgid=0 mode=0644 cbytes=0 qbytes=65536 qnum=0 lspid=0 lrpid=0 send_time=Not set rcv_time=Not set change_time=Thu Aug 5 13:30:22 2010
Опция -i с -q предоставляет информацию о конкретной очереди сообщений. Опция -i с параметром -s обеспечивает детали семафора. Опция -i с -m предоставляет подробности об общей памяти.
Опция ipcs -l дает системные ограничения для каждого объекта ipc.
# ipcs -m -l ------ Shared Memory Limits -------- max number of segments = 4096 max seg size (kbytes) = 67108864 max total shared memory (kbytes) = 17179869184 min seg size (bytes) = 1
Приведенная выше команда дает ограничения для общей памяти. -l можно комбинировать с -q и -s для просмотра ограничений для очереди сообщений и семафоров соответственно.
Один параметр -l дает ограничения для всех трех средств IPC.
# ipcs -l
Опция ipcs -c выводит список идентификаторов пользователей и групп, а также владельцев и идентификаторов групп. Эта опция может быть объединена с -m, -s и -q для просмотра сведений об создателе для конкретного объекта IPC.
# ipcs -m -c ------ Shared Memory Segment Creators/Owners -------- shmid perms cuid cgid uid gid 1056800768 660 oracle oinstall oracle oinstall 323158020 664 root root root root 325713925 666 root root root root
Параметр ipcs -p отображает идентификатор создателя и идентификатор процесса, который совсем недавно получил доступ к соответствующему средству ipc.
# ipcs -m -p ------ Shared Memory Creator/Last-op -------- shmid owner cpid lpid 1056800768 oracle 16764 5389 323158020 root 2354 2354 325713925 root 20666 20668
-p также можно комбинировать с -m, -s или -q.
Параметр ipcs -t отображает время последней операции в каждом устройстве ipc. Эта опция также может быть объединена с -m, -s или -q для печати для конкретного типа ipc-объекта. Для очереди сообщений опция -t отображает время последней отправки и получения, для общей памяти — последнюю подключенную (часть памяти) и отдельную метку времени, а для семафора — последнюю операцию и измененные данные времени.
# ipcs -s -t ------ Semaphore Operation/Change Times -------- semid owner last-op last-changed 0 root Thu Aug 5 12:46:52 2010 Tue Jul 13 10:39:41 2010 32769 root Thu Aug 5 11:59:10 2010 Tue Jul 13 10:39:41 2010 1094844418 oracle Thu Aug 5 13:52:59 2010 Thu Aug 5 13:52:59 2010
ipcs с командой -u отображает текущее использование всех средств IPC. Эта опция может быть объединена с определенной опцией, чтобы отобразить статус для определенного средства IPC.
# ipcs -u ------ Shared Memory Status -------- segments allocated 30 pages allocated 102 pages resident 77 pages swapped 0 Swap performance: 0 attempts 0 successes ------ Semaphore Status -------- used arrays = 49 allocated semaphores = 252 ------ Messages: Status -------- allocated queues = 1 used headers = 0 used space = 0 bytes
[sape count=2]
Продолжая использовать данный сайт вы принимаете политику конфиденциальности и cookies