Linux memoria compartida Comentarios

  
 


Linux memoria compartida

sistema de memoria compartida está fuera de consideración la comunicación entre múltiples procesos, y se reservó un bloque de área de memoria. En el directorio /proc /sys /kernel /, un récord compartido limitaciones de memoria, tales como el número máximo de bytes shmmax un área de memoria compartida, número de identificador de área de memoria compartida al máximo todo el sistema de shmmni similares, se puede ajustar de forma manual, pero esto no es recomendable.

En primer lugar, la aplicación

uso de memoria compartida, principalmente en los siguientes API: ftok (), shmget (), shmat (), shmdt () y shmctl ().

1) con ftok () para obtener un número de ID

Descripción :.

en el IPC, a menudo utilizan valor key_t para crear o semáforo abierto , colas de mensajes y memoria compartida.

prototipo de la función:
key_t ftok (const char * nombre de ruta, int proj_id);

Claves:

1) nombre de ruta y un proceso debe existir en el sistema pueden acceder a

2) proj_id es un valor entero entre 1-255, un valor típico es un valor ASCII.

Cuando se ejecuta con éxito, se devolverá un valor key_t, de lo contrario se devuelve -1. Podemos utilizar strerror (Error) para determinar el mensaje de error específico.

teniendo en cuenta las posibles aplicaciones en diferentes aplicaciones huésped pueden ser directamente definir una clave, sin ftok obtenido:
#define IPCKEY 0x344378

2) shmget () se utiliza para abrir /punto a una función de memoria compartida

Descripción:

shmget () se utiliza para obtener el identificador de área de memoria compartida, si la región compartida especificada no existe para crear el área apropiada.

prototipo de la función: int
shmget (clave key_t, tamaño size_t, int shmflg);

key_t clave es el siguiente identificador de memoria compartida. Si se trata de la comunicación entre procesos relación padre-hijo, entonces este identificador se sustituye con IPC_PRIVATE. Si dos procesos no tienen ninguna relación, por lo que () ftok calculada usando un identificador (o su propia definición a) utilizar.

int size es el tamaño de esta memoria.

bandera int es este modo de memoria (modo) así como la identidad permisos.

Modo preferentemente los siguientes valores:

IPC_CREAT Nueva (si se crea ahora devuelve el id de la memoria compartida) usando

IPC_EXCL IPC_CREAT vinculante y, si se devuelve un error si se crea

a continuación, y " Mode " y y " identificador de autoridad y " para y " o y " aplicación, según el tercer parámetro.

tales como: IPC_CREAT

Copyright © Conocimiento de Windows All Rights Reserved