Trabajar con memoria compartida entre procesos php

27 02 2008 GNU/Linux
    Para los que no deseen emplear fifos para la comunicación entre procesos php, la otra solución es compartir un segmento de memoria. Esta tarea se puede realizar con los comandos shmop.

Estas funciones no precisan la instalación de extensiones especificas pero si la compilación de tu php con el parámetro --enable-shmop

Esta opción nos permite tener disponibles los siguientes comandos

- shmop_close — Cierra un segmento de memoria compartida
-shmop_delete — Borra un segmento de memoria compartida
- shmop_open — Crea o abre un segmento de memoria compartida
- shmop_read — Lee un segmento de memoria compartida
- shmop_size — Obtiene el tamaño de un segmento de memoria compartida
- shmop_write — Escribe datos en un segmento de memoria compartida

Se emplean de manera analoga a como lo hariamos con un fichero o con un socket

Primero abrimos el segmento compartido con chmop_open, luego leemos o escribimos (las dos opciones son posibles a diferencia de los fifos en GNU/Linux donde o abrimos el fifo para lectura o para escritura) con shmop_read o shmop_write. Y finalmente cerramos el segmento de memoria compartido con chmop_close.

Este seria un ejemplo sencillo


<?php

//0xff3 - identificador segmento, se debe utilizar en todos los segmentos a compartir
// "c" - Opciones: c para crear, a para acceder, w acceder lectura/escritura y n crear nuevo segmento
// 0644 - Permisos GNU/Linux
// 100 - Tamaño en bytes
if(!$sh = shmop_open(0xff3, "c", 0644, 100))
{
die('Error creando segmento de memoria compartido');
}

// El 0 es el offset sobre el segmento de memoria, para leer desde el principio 0
shmop_write($sh, "mi segmento de memoria compartida",0);

$my_string = shmop_read($sh, 0, strlen("mi segmento de memoria compartida"));

echo $my_string;
shmop_close($sh);

?>


Bookmark Trabajar con memoria compartida entre procesos php  at del.icio.us Digg Trabajar con memoria compartida entre procesos php Mixx Trabajar con memoria compartida entre procesos php Bloglines Trabajar con memoria compartida entre procesos php Technorati Trabajar con memoria compartida entre procesos php Fark this: Trabajar con memoria compartida entre procesos php Bookmark Trabajar con memoria compartida entre procesos php  at YahooMyWeb Bookmark Trabajar con memoria compartida entre procesos php  at Furl.net Bookmark Trabajar con memoria compartida entre procesos php  at reddit.com Bookmark Trabajar con memoria compartida entre procesos php  at blinklist.com Bookmark Trabajar con memoria compartida entre procesos php  at Spurl.net Bookmark Trabajar con memoria compartida entre procesos php  at NewsVine Bookmark Trabajar con memoria compartida entre procesos php  at Simpy.com Bookmark Trabajar con memoria compartida entre procesos php  at blogmarks Bookmark Trabajar con memoria compartida entre procesos php  with wists Bookmark Trabajar con memoria compartida entre procesos php  at Ma.gnolia.com wong it! Bookmark using any bookmark manager! Stumble It!

Referencias


No hay referencias

Comentarios

Mostrar comentarios como (Plano | Hilos)
No hay comentarios

Añadir comentario


Encerrando entre asteriscos convierte el texto en negrita (*palabra*), el subrayado es hecho así: _palabra_.
Smilies normales como :-) y ;-) son convertidos en imágenes.