Enviar búsqueda
Cargar
Memoria
•
Descargar como DOC, PDF
•
0 recomendaciones
•
281 vistas
Adilene Soriano
Seguir
m,nmnm,nm
Leer menos
Leer más
Empresariales
Denunciar
Compartir
Denunciar
Compartir
1 de 6
Descargar ahora
Recomendados
S Incronizacion De Procesos
S Incronizacion De Procesos
AcristyM
Tutorial controltoolbox
Tutorial controltoolbox
RUBEN ALEGRE MENDEZ
Matlab tutorial control
Matlab tutorial control
Gugui Maguna
Seti7 ocw
Seti7 ocw
Jovi0025
2.4 Cuestionario de comunicacion entre procesos
2.4 Cuestionario de comunicacion entre procesos
Instituto Tecnológico de Tepic
Sincronización entre procesos
Sincronización entre procesos
Ichinose 11
Lec10 j estrcontrol
Lec10 j estrcontrol
htmrk
Arquitectura tipos lupe
Arquitectura tipos lupe
Guadalupe González
Recomendados
S Incronizacion De Procesos
S Incronizacion De Procesos
AcristyM
Tutorial controltoolbox
Tutorial controltoolbox
RUBEN ALEGRE MENDEZ
Matlab tutorial control
Matlab tutorial control
Gugui Maguna
Seti7 ocw
Seti7 ocw
Jovi0025
2.4 Cuestionario de comunicacion entre procesos
2.4 Cuestionario de comunicacion entre procesos
Instituto Tecnológico de Tepic
Sincronización entre procesos
Sincronización entre procesos
Ichinose 11
Lec10 j estrcontrol
Lec10 j estrcontrol
htmrk
Arquitectura tipos lupe
Arquitectura tipos lupe
Guadalupe González
04 - Sentencias de control condicionales y ciclos en lenguaje C: for, while, ...
04 - Sentencias de control condicionales y ciclos en lenguaje C: for, while, ...
Diego Andrés Alvarez Marín
Resumen del primer corte
Resumen del primer corte
ADOLFO BORJA
Capacidad de la Unidad de Procesamiento
Capacidad de la Unidad de Procesamiento
FernandoDuarte785515
Matlab teoria
Matlab teoria
jonathan garcia
Procesamiento segmentado
Procesamiento segmentado
Jairo Quiroz Cabanillas
Practica1
Practica1
Leticia López López
05 - Funciones en lenguaje C
05 - Funciones en lenguaje C
Diego Andrés Alvarez Marín
Capacidad de la unidad de procesamiento (grecia gonzález 30203532)
Capacidad de la unidad de procesamiento (grecia gonzález 30203532)
GreciaGonzlez9
Sistema Operativo Oper Ajaja
Sistema Operativo Oper Ajaja
guest111d2
CAPACIDAD DE LA UNIDAD DE PROCESAMIENTO
CAPACIDAD DE LA UNIDAD DE PROCESAMIENTO
Rafael Espina
Andrea Avendaño 28.041.479
Andrea Avendaño 28.041.479
Andrea Carolina
Capacidad de la unidad de procesamiento
Capacidad de la unidad de procesamiento
JehisglayOliveros
Taller de saberes previos
Taller de saberes previos
yulypao
Capacidad de la unidad de procesamiento
Capacidad de la unidad de procesamiento
LucianoCabrera7
Arquitectura de computadoras II-Codigo de Operaciones y Campo de Direccionami...
Arquitectura de computadoras II-Codigo de Operaciones y Campo de Direccionami...
Mari Cruz
Chiqui,
Chiqui,
abroshospital
Estandares de la pagina web(w3c)
Estandares de la pagina web(w3c)
yaritza28
0428 Mixbeat345
0428 Mixbeat345
ugawa taro
As Melhores PosiçõEs Na Cama
As Melhores PosiçõEs Na Cama
alex
10691532 10202048433250846 1279343409_n
10691532 10202048433250846 1279343409_n
Dora44
Harley davidson for female
Harley davidson for female
Ritesh Bhatt
My pets
My pets
linamaria148
Más contenido relacionado
La actualidad más candente
04 - Sentencias de control condicionales y ciclos en lenguaje C: for, while, ...
04 - Sentencias de control condicionales y ciclos en lenguaje C: for, while, ...
Diego Andrés Alvarez Marín
Resumen del primer corte
Resumen del primer corte
ADOLFO BORJA
Capacidad de la Unidad de Procesamiento
Capacidad de la Unidad de Procesamiento
FernandoDuarte785515
Matlab teoria
Matlab teoria
jonathan garcia
Procesamiento segmentado
Procesamiento segmentado
Jairo Quiroz Cabanillas
Practica1
Practica1
Leticia López López
05 - Funciones en lenguaje C
05 - Funciones en lenguaje C
Diego Andrés Alvarez Marín
Capacidad de la unidad de procesamiento (grecia gonzález 30203532)
Capacidad de la unidad de procesamiento (grecia gonzález 30203532)
GreciaGonzlez9
Sistema Operativo Oper Ajaja
Sistema Operativo Oper Ajaja
guest111d2
CAPACIDAD DE LA UNIDAD DE PROCESAMIENTO
CAPACIDAD DE LA UNIDAD DE PROCESAMIENTO
Rafael Espina
Andrea Avendaño 28.041.479
Andrea Avendaño 28.041.479
Andrea Carolina
Capacidad de la unidad de procesamiento
Capacidad de la unidad de procesamiento
JehisglayOliveros
Taller de saberes previos
Taller de saberes previos
yulypao
Capacidad de la unidad de procesamiento
Capacidad de la unidad de procesamiento
LucianoCabrera7
Arquitectura de computadoras II-Codigo de Operaciones y Campo de Direccionami...
Arquitectura de computadoras II-Codigo de Operaciones y Campo de Direccionami...
Mari Cruz
La actualidad más candente
(15)
04 - Sentencias de control condicionales y ciclos en lenguaje C: for, while, ...
04 - Sentencias de control condicionales y ciclos en lenguaje C: for, while, ...
Resumen del primer corte
Resumen del primer corte
Capacidad de la Unidad de Procesamiento
Capacidad de la Unidad de Procesamiento
Matlab teoria
Matlab teoria
Procesamiento segmentado
Procesamiento segmentado
Practica1
Practica1
05 - Funciones en lenguaje C
05 - Funciones en lenguaje C
Capacidad de la unidad de procesamiento (grecia gonzález 30203532)
Capacidad de la unidad de procesamiento (grecia gonzález 30203532)
Sistema Operativo Oper Ajaja
Sistema Operativo Oper Ajaja
CAPACIDAD DE LA UNIDAD DE PROCESAMIENTO
CAPACIDAD DE LA UNIDAD DE PROCESAMIENTO
Andrea Avendaño 28.041.479
Andrea Avendaño 28.041.479
Capacidad de la unidad de procesamiento
Capacidad de la unidad de procesamiento
Taller de saberes previos
Taller de saberes previos
Capacidad de la unidad de procesamiento
Capacidad de la unidad de procesamiento
Arquitectura de computadoras II-Codigo de Operaciones y Campo de Direccionami...
Arquitectura de computadoras II-Codigo de Operaciones y Campo de Direccionami...
Destacado
Chiqui,
Chiqui,
abroshospital
Estandares de la pagina web(w3c)
Estandares de la pagina web(w3c)
yaritza28
0428 Mixbeat345
0428 Mixbeat345
ugawa taro
As Melhores PosiçõEs Na Cama
As Melhores PosiçõEs Na Cama
alex
10691532 10202048433250846 1279343409_n
10691532 10202048433250846 1279343409_n
Dora44
Harley davidson for female
Harley davidson for female
Ritesh Bhatt
My pets
My pets
linamaria148
Felinos
Felinos
1822Andrea
Destacado
(8)
Chiqui,
Chiqui,
Estandares de la pagina web(w3c)
Estandares de la pagina web(w3c)
0428 Mixbeat345
0428 Mixbeat345
As Melhores PosiçõEs Na Cama
As Melhores PosiçõEs Na Cama
10691532 10202048433250846 1279343409_n
10691532 10202048433250846 1279343409_n
Harley davidson for female
Harley davidson for female
My pets
My pets
Felinos
Felinos
Similar a Memoria
Memoria compartida
Memoria compartida
Orlando Alemán
Sistemas Operativos
Sistemas Operativos
Jammil Ramos
Capitulo3
Capitulo3
Jammil Ramos
Memoria en los SO
Memoria en los SO
Jossi Ocanto
Gestion-de-memoria
Gestion-de-memoria
Jose Miguel Correal Mariscal
Trabajo tema 6 memoria
Trabajo tema 6 memoria
mariavictoria0000
S Incronizacion De Procesos
S Incronizacion De Procesos
AcristyM
Sistema Jerarquico
Sistema Jerarquico
Hector Quiroga
Gestion De Memoria
Gestion De Memoria
guestaff6d2
Administracion y manejo de memoria
Administracion y manejo de memoria
giovatovar
Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2
giovatovar
Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2
giovatovar
Gestion de-memoria-copia
Gestion de-memoria-copia
Blanca Bailon
Estructura del s.o
Estructura del s.o
Nilton Alfonso
Gestion De Memoria
Gestion De Memoria
Carlos Carrillo
Gestion De Memoria
Gestion De Memoria
Carlos Carrillo
Mecanismos de exclusion mutua y algoritmos
Mecanismos de exclusion mutua y algoritmos
Abimael hernandez
Tp arquitectura
Tp arquitectura
nic0las
Tp arquitectura
Tp arquitectura
nic0las
Unidad 4
Unidad 4
Chulinneitor
Similar a Memoria
(20)
Memoria compartida
Memoria compartida
Sistemas Operativos
Sistemas Operativos
Capitulo3
Capitulo3
Memoria en los SO
Memoria en los SO
Gestion-de-memoria
Gestion-de-memoria
Trabajo tema 6 memoria
Trabajo tema 6 memoria
S Incronizacion De Procesos
S Incronizacion De Procesos
Sistema Jerarquico
Sistema Jerarquico
Gestion De Memoria
Gestion De Memoria
Administracion y manejo de memoria
Administracion y manejo de memoria
Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2
Gestion de-memoria-copia
Gestion de-memoria-copia
Estructura del s.o
Estructura del s.o
Gestion De Memoria
Gestion De Memoria
Gestion De Memoria
Gestion De Memoria
Mecanismos de exclusion mutua y algoritmos
Mecanismos de exclusion mutua y algoritmos
Tp arquitectura
Tp arquitectura
Tp arquitectura
Tp arquitectura
Unidad 4
Unidad 4
Último
exportacion y comercializacion de palta hass
exportacion y comercializacion de palta hass
JhonnyvalenssYupanqu
informacion-finanTFHHETHAETHciera-2022.pdf
informacion-finanTFHHETHAETHciera-2022.pdf
PriscilaBermello
MARKETING SENSORIAL -GABRIELA ARDON .pptx
MARKETING SENSORIAL -GABRIELA ARDON .pptx
gabyardon485
TIPOS DE PLANES administracion una perspectiva global - KOONTZ.pptx
TIPOS DE PLANES administracion una perspectiva global - KOONTZ.pptx
KevinHeredia14
gua de docente para el curso de finanzas
gua de docente para el curso de finanzas
superamigo2014
AUDITORIAS en enfermeria hospitalaria .pptx
AUDITORIAS en enfermeria hospitalaria .pptx
MatiasGodoy33
DELITOS CONTRA LA GESTION PUBLICA PPT.pdf
DELITOS CONTRA LA GESTION PUBLICA PPT.pdf
JaquelinRamos6
Clima-laboral-estrategias-de-medicion-e-book-1.pdf
Clima-laboral-estrategias-de-medicion-e-book-1.pdf
Constructiva
Presentación de la empresa polar, estados financieros
Presentación de la empresa polar, estados financieros
madaloga01
Efectos del cambio climatico en huanuco.pptx
Efectos del cambio climatico en huanuco.pptx
CONSTRUCTORAEINVERSI3
clase de Mercados financieros - lectura importante
clase de Mercados financieros - lectura importante
JanettCervantes1
PLAN LECTOR JOSÉ MARÍA ARGUEDAS (1).docx
PLAN LECTOR JOSÉ MARÍA ARGUEDAS (1).docx
williamzaveltab
IDENTIDAD Y MANUAL DE MARCA PARA BRANDING
IDENTIDAD Y MANUAL DE MARCA PARA BRANDING
AndresGEscobar
INFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsx
INFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsx
CORPORACIONJURIDICA
Trabajo de Sifilisn…………………………………………………..
Trabajo de Sifilisn…………………………………………………..
JoseRamirez247144
Plan General de Contabilidad Y PYMES pdf
Plan General de Contabilidad Y PYMES pdf
danilojaviersantiago
modelo de flujo maximo unidad 4 en modelos de optimización de recursos
modelo de flujo maximo unidad 4 en modelos de optimización de recursos
k7v476sp7t
MARKETING SENSORIAL CONTENIDO, KARLA JANETH
MARKETING SENSORIAL CONTENIDO, KARLA JANETH
karlinda198328
TEMA 6.- MAXIMIZACION DE LA CONDUCTA DEL PRODUCTOR.pptx
TEMA 6.- MAXIMIZACION DE LA CONDUCTA DEL PRODUCTOR.pptx
FrancoSGonzales
COPASST Y COMITE DE CONVIVENCIA.pptx DE LA EMPRESA
COPASST Y COMITE DE CONVIVENCIA.pptx DE LA EMPRESA
DanielAndresBrand
Último
(20)
exportacion y comercializacion de palta hass
exportacion y comercializacion de palta hass
informacion-finanTFHHETHAETHciera-2022.pdf
informacion-finanTFHHETHAETHciera-2022.pdf
MARKETING SENSORIAL -GABRIELA ARDON .pptx
MARKETING SENSORIAL -GABRIELA ARDON .pptx
TIPOS DE PLANES administracion una perspectiva global - KOONTZ.pptx
TIPOS DE PLANES administracion una perspectiva global - KOONTZ.pptx
gua de docente para el curso de finanzas
gua de docente para el curso de finanzas
AUDITORIAS en enfermeria hospitalaria .pptx
AUDITORIAS en enfermeria hospitalaria .pptx
DELITOS CONTRA LA GESTION PUBLICA PPT.pdf
DELITOS CONTRA LA GESTION PUBLICA PPT.pdf
Clima-laboral-estrategias-de-medicion-e-book-1.pdf
Clima-laboral-estrategias-de-medicion-e-book-1.pdf
Presentación de la empresa polar, estados financieros
Presentación de la empresa polar, estados financieros
Efectos del cambio climatico en huanuco.pptx
Efectos del cambio climatico en huanuco.pptx
clase de Mercados financieros - lectura importante
clase de Mercados financieros - lectura importante
PLAN LECTOR JOSÉ MARÍA ARGUEDAS (1).docx
PLAN LECTOR JOSÉ MARÍA ARGUEDAS (1).docx
IDENTIDAD Y MANUAL DE MARCA PARA BRANDING
IDENTIDAD Y MANUAL DE MARCA PARA BRANDING
INFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsx
INFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsx
Trabajo de Sifilisn…………………………………………………..
Trabajo de Sifilisn…………………………………………………..
Plan General de Contabilidad Y PYMES pdf
Plan General de Contabilidad Y PYMES pdf
modelo de flujo maximo unidad 4 en modelos de optimización de recursos
modelo de flujo maximo unidad 4 en modelos de optimización de recursos
MARKETING SENSORIAL CONTENIDO, KARLA JANETH
MARKETING SENSORIAL CONTENIDO, KARLA JANETH
TEMA 6.- MAXIMIZACION DE LA CONDUCTA DEL PRODUCTOR.pptx
TEMA 6.- MAXIMIZACION DE LA CONDUCTA DEL PRODUCTOR.pptx
COPASST Y COMITE DE CONVIVENCIA.pptx DE LA EMPRESA
COPASST Y COMITE DE CONVIVENCIA.pptx DE LA EMPRESA
Memoria
1.
MÓDULO II: PROGRAMACIÓN
CONCURRENTE MEMORIA COMPARTIDA. 1.- Conceptos generales de memoria compartida. La forma más eficaz que tienen los procesos para comunicarse consiste en compartir una zona de memoria, tal que para enviar datos de un proceso a otro, sólo se ha de escribir en dicha memoria y automáticamente estos datos estarán disponibles para cualquier otro proceso. La utilización de este espacio de memoria común evita la duplicación de datos y el lento trasvase de información entre los procesos. La memoria convencional que puede direccionar un proceso a través de su espacio de direcciones virtuales es local a ese proceso y cualquier intento de direccionar esa memoria desde otro proceso va a provocar una violación de segmento. Es decir, cuando se crea uno o más procesos mediante la llamada fork(), se realiza una duplicación de todas las variables usadas, de forma que cualquier modificación de sus valores pasa inadvertida a los demás procesos, puesto que aunque el nombre es el mismo, su ubicación en memoria no lo es. Esto es debido a que con cada nuevo proceso se reserva una zona de memoria inaccesible a los demás. Las direcciones de las variables de esta zona son virtuales, y es el módulo de gestión de la memoria el que se encarga de traducirlas a direcciones físicas. Para solucionar este problema, UNIX ofrece la posibilidad de crear zonas de memoria con la característica de poder ser direccionadas por varios procesos simultáneamente. A estas zonas de memoria se les denominada segmentos de memoria compartida, y corresponden a memoria virtual, es decir; sus direcciones físicas asociadas pueden verse modificadas a lo largo de la ejecución, pero esto es transparente al programa puesto que es el módulo de gestión de la memoria el que se encarga de traducir las direcciones físicas a las direcciones virtuales generadas por los procesos. El kernel no gestiona de forma automática los segmentos de memoria compartida, por lo tanto, es necesario asociar a cada segmento o grupo de segmentos un conjunto de mecanismos de sincronización, de forma que se evite los típicos choques entre los procesos, es decir, que un proceso este modificando la información contenida en el segmento mientras que otro lee sin que se hayan actualizado todos los datos. 2.- Petición de un segmento de memoria compartida. La función shmget permite crear una zona de memoria compartida o habilitar el acceso a una ya creada. Su declaración es la siguiente: #include <sys/types.h> #include <sys/ipc.h> #include <sys/shm.h> int shmget (clave, tamaño, opción); key_t clave; /* clave del segmento de memoria compartida */ © E.G.R. 1
2.
int tamaño; /*
tamaño del segmento de memoria compartida */ int opción; /* opción para la creación */ Si la llamada se ejecuta correctamente, la función devolverá el identificador asociado a la zona de memoria con el fin de poder utilizarla posteriormente. Si por algún motivo falla, la función devolverá el valor –1. El parámetro clave es la llave de acceso, y tiene el mismo significado que el parámetro clave en la función semget que permite crear o habilitar grupos de semáforos. El segundo parámetro, tamaño, indica el espacio en bytes de la zona de memoria compartida que se desea crear. Este espacio es fijo durante su utilización. El último parámetro es una máscara de bits que definirá los permisos de acceso a la zona de memoria y el modo de adquirir el identificador de la misma. En definitiva, su significado es similar al que se vio para la máscara opción de la citada función semget. El identificador del segmento que devuelve esta función es heredado por todos los procesos descendientes del que llama a esta función. El siguiente trozo de código muestra cómo se crea una zona de memoria de 4096 bytes, donde sólo el propietario va a tener permiso de lectura y escritura: #define LLAVE (key_t)234 /* clave de acceso */ int shmid; /* identificador del nuevo segmento de memoria compartida */ if((shmid=shmget(LLAVE, 4096, IPC_CREAT | 0600)) == -1) { /* Error al crear o habilitar el segmento de memoria compartida. Tratamiento del error. */ } 3.- Control de un segmento de memoria compartida. La función shmctl proporciona información administrativa y de control sobre el segmento de memoria compartida que se especifique. Su declaración es la sigueinte: #include <sys/types.h> #include <sys/ipc.h> #include <sys/shm.h> int shmctl (shmid, op, p_buf); int shmid; /* identificador del segmento */ int op; /* operación a efectuar */ struct shnud_ds *p_buf; /* argumento de la operación */ Esta función va a actuar sobre el segmento de memoria compartida que responde al identificador shmid (devuelto por una llamada previa a shmget). El parámetro op © E.G.R. 2
3.
indica el tipo
de operación de control que se desea realizar, y sus posibles valores válidos son los que se especifican a continuación: Operación Efecto y valor devuelto IPC_STAT Lee la información administrativa y la almacena en la zona de memoria apuntada por p_buf. IPC_SET Modifica la información administrativa, para lo cual dicha información debe estar en p_buf. IPC_RMID Indica al kernel que borre el segmento. Esto no se llevará a cabo mientras que exista algún proceso conectado al mismo. Sin embargo, su efecto inmediato es evitar que cualquier proceso se enganche a partir de ahora al segmento. SHM_LOCK Bloquea en memoria el segmento, es decir; permanece fijo en memoria y no se va a realizar sobre él swapping. Esta operación sólo la puede efectuar el superusuario. SHM_UNLOCK Desbloquea el segmento, pudiendo los mecanismos de swapping trasladarlo de la memoria principal a la secundaria, y viceversa. Esta operación sólo la puede llevar a cabo el superusuario. La llamada a esta función devuelve el valor 0 si se ejecuta satisfactoriamente, y –1 si se ha producido algún fallo. El siguiente trozo de código muestra como se borra un segmento de memoria compartida previamente creado: int shmid; /* identificador del segmento de memoria compartida */ .... if(shmctl (shmid, IPC_RMID,0) == -1) { /* Error al eliminar el segmento de memoria compartida. Tratamiento del error. */ } 4.- Operaciones con segmentos de memoria compartida. Un proceso, antes de usar un segmento de memoria compartida, tiene que atribuirle una dirección virtual en su espacio de direcciones (mapearlo), con el fin de que dicho proceso pueda acceder a él por medio de esta dirección. Esta operación se conoce como conexión, unión o enganche de un segmento con el proceso. Una vez que el proceso deja de usar el segmento, debe de realizar la operación inversa (desconexión, desunión o desenganche), dejando de estar accesible el segmento para el proceso. Las llamadas al sistema para realizar estas operaciones son las siguientes: shmat Esta función realiza la conexión del segmento al espacio de direccionamiento del proceso. Su declaración es: char *shmat (shmid, adr, opcion); © E.G.R. 3
4.
int shmid; /*
identificador del segmento */ char *adr; /* dirección de enlace */ int opcion; /* opción de conexión */ Shmid es el identificador del segmento, adr es la dirección virtual donde se desea que empiece el segmento (esta dirección puede ser suministrada por el programador o bien elegida por el kernel) y opcion es una máscara de bits que indica la forma de acceso al segmento de memoria. Si el bit SHM_RDONLY está activo, el segmento será accesisble para leer, pero no para escribir. Si la llamada a esta función funciona correctamente, devolverá un puntero a la dirección virtual a la que está conectado el segmento. Esta dirección puede coincidir o no con adr, dependiendo de la decisión que tome el kernel. El problema principal que se plantea es el de la elección de la dirección, puesto que, no puede entrar en conflicto con direcciones ya utilizadas, o que impida el aumento del tamaño de la zona de datos y el de la pila. Por ello, si se desea asegurar la portabilidad de la aplicación es recomendable dejar al kernel la elección de comienzo del segmento, para ello basta con pasarle un puntero NULL como segundo parámetro (valor entero 0). Si por algún motivo falla la llamada a esta función, devolverá –1. Una vez que el segmento esta únido al espacio de direcciones virtuales del proceso, el acceso a él se realiza a través de punteros, como con cualquier otra memoria dinámica de datos asignada al programa. shmdt Efectúa el desenlace del segmento previamente conectado. Su declaración es: int shmdt (adr); char *adr; /* dirección de conexión del segmento a desenlazar */ Su único parámetro adr, es la dirección virtual del segmento que se desea desconectar (devuelta por la llamada a la función shmat). Es lógico que después de ejecutarse esta función, dicha dirección se convierta en una dirección ilegal del proceso. Esto no quiere decir que su contenido se borre, simplemente que se deja de tener acceso a la memoria reservada. Si la llamada se efectua satisfactoriamente, la función devolverá el valor 0, y en caso de que se produzca algún fallo devolverá –1. El siguiente trozo de código muestra como se puede crear un segmento de memoria compartida y almacenar en él un vector de caracteres: #define LLAVE (key_t)234 #define MAX 10 int shmid, i; char *vector; .... © E.G.R. 4
5.
/* Creación de
un segmento de memoria compartida */ if((shmid=shmget(LLAVE, MAX*sizeof(char), IPC_CREAT | 0600)) == -1) { printf(“No se ha podido crear el segmento.”); exit (-1); } else { /* Conexión del segmento al espacio de direcciones virtuales */ if(((int)vector=shmat(shmid, 0, 0)) == -1) { printf(“ Error en la conexión.“); exit(-1); } /* Manipulación del segmento de memoria compartida */ for (i=0; i<MAX; i++) vector[i]=’a’; for (i=0; i<MAX; i++) printf(“Valor almacenado %c”, vector[i]); /* Desconexión del segmento al espacio de direcciones virtuales */ if(shmdt(vector) == -1) { printf(“ Error en la desconexión.“); exit(-1); } /* Borrado del segmento de memoria compartida */ if(shmctl(shmid, IPC_RMID, 0) == -1) { printf(“ Error en el borrado del segmento.“); exit(-1); } } ... © E.G.R. 5
6.
/* Creación de
un segmento de memoria compartida */ if((shmid=shmget(LLAVE, MAX*sizeof(char), IPC_CREAT | 0600)) == -1) { printf(“No se ha podido crear el segmento.”); exit (-1); } else { /* Conexión del segmento al espacio de direcciones virtuales */ if(((int)vector=shmat(shmid, 0, 0)) == -1) { printf(“ Error en la conexión.“); exit(-1); } /* Manipulación del segmento de memoria compartida */ for (i=0; i<MAX; i++) vector[i]=’a’; for (i=0; i<MAX; i++) printf(“Valor almacenado %c”, vector[i]); /* Desconexión del segmento al espacio de direcciones virtuales */ if(shmdt(vector) == -1) { printf(“ Error en la desconexión.“); exit(-1); } /* Borrado del segmento de memoria compartida */ if(shmctl(shmid, IPC_RMID, 0) == -1) { printf(“ Error en el borrado del segmento.“); exit(-1); } } ... © E.G.R. 5
Descargar ahora