SlideShare ist ein Scribd-Unternehmen logo
1 von 14
UNIVERSIDAD TECNICA DE AMBATO

       FACULTAD DE CIENCIAS
      HUMANAS Y DE LA EDUCACION
           SISTEMAS OPERATIVOS

      TEMA: LECTORES Y ESCRITORES

  INTEGRANTES:
                    •PABLO FALCONI
                  •STALIN PALLANGO
                 •SANTIAGO TIXILEMA
DESCRIPCION DEL PROBLEMA




                                                     Pero nunca ocurrirá
                             Solo puede utilizar       simultáneamente
 Hay un objeto de
                                 el recurso un       (teniendo en cuenta
 datos(fichero de
                                proceso y solo          que si no lo esta
    texto) que es
                             uno, es decir, o bien        utilizando
utilizado por varios
                              un proceso estará          nadie, tendrá
procesos, unos leen
                              escribiendo o bien         preferencia el
y otro que escribe.
                                    leyendo          escritor antes que el
                                                            lector).
DOCUMENTACION DEL PROGRAMA



                         Se considera a cada
                          usuario como dos      La solución de este
Se considera a cada       semáforos. Estos      problema se basa en
  usuario(lector y          semáforos son         implementar un
 escritor) como dos     binarios y valen 0 si      algoritmo en el
procesos y al fichero    el recurso (fichero)         manejo de
 en cuestión como       está siendo utilizado        semáforos y
     un recurso.         por otro proceso y 1         memoria
                        si dicho recurso está       compartida.
                              disponible.
PARA QUE EL PROBLEMA ESTÉ BIEN
     RESUELTO SE TIENE QUE CUMPLIR:

                     Cuando un escritor
                     debe realizar su
No se puede hacer
                     tarea, debe ocurrir
esperar a ningún
                     cuanto antes, sin
proceso lector si
                     que deban interferir
ningún proceso
                     los procesos
escritor accede al
                     lectores.(Para ello se
recurso.
                     establecen
                     prioridades)
ALGORITMO LECTORES-ESCRITORES
                     Lector (){
                while (TRUE){
             Sección no crítica
              wait(semáforo1)
                  contador++;
               if (contador =1)
              wait(semáforo2)
             signal(semáforo1)
        Acceso al recurso (LECTURA)
              wait(semáforo1)
                    contador--
                if (contador=0)
             signal(semáforo2);
             signal (semáforo1)
                         }
                         }
                    Escritor(){
                while (TRUE){
             Sección no crítica
              wait (semáforo2)
             Acceso al recurso
             signal (semáforo2)
                         }
                         }
FUNCION MAIN:

Creación de un proceso padre y de su proceso hijo (lectores, escritores).

DESCRIPCION

escribir( ); Esta función implementa el acceso a un recurso compartido, que
será la variable que contabiliza el total de veces que el usuario escribe. En
esta función se han incluido varias llamadas al macro TP. Este macro
implementa un retardo aleatorio con el fin de dar cierto tiempo a que ocurran
interrupciones que puedan detener la ejecución del proceso en su "cuanto"
de tiempo asignado por el S.O.. En nuestro caso, es necesario realizar unas
cuantas llamadas para dar tiempo a que todos los usuarios tengan
oportunidad de escribir.

lectura( ); Permite que el lector pueda acceder al recurso. Una vez que
acaba de leer se encarga de dejar el recurso para que sean de nuevo
utilizado (por él o por otros). Para ello se basa en funciones de manejo de
semáforos y memoria compartida.
Utiliza las siguientes funciones:
Manejo de semaforos:
•semWait ( )
•semSignal ( )
•semOpen ( )
•semClose ( )

             Manejo de memoria compartida:

Cada vez que escribe un usuario lo refleja en el incremento de la variable de
memoria compartida.

Cuando los lectores y escritores han realizado la tarea que desean(leer y escribir)
un número M de veces prefijado (3) se lo comunican al padre, no sin antes haber
cerrado adecuadamente todos los semáforos utilizados en esta función.
LECTORES.C
#include "rshmem.h"
#include <string.h>
#include <stdio.h>

int main(int argc, char *argv[]){

/*DECLARACION DE VARIABLES*/

int contador=0;
FILE *fpl,*fpe;
int i,n;
char texto [250],c;

int mutex_s; /*semáforo 1*/
int mutex_w; /*semáforo 2*/
key_t claveMutex_s; /*clave semáforo 1*/
key_t claveMutex_w; /*clave semáforo 2*/
/*CONTROL DEL PASO DE ARGUMENTOS*/
if(argc!=2){
fprintf(stderr,"main:error en el paso de argumentosn");
exit(3);
}
 /*obtener una clave cualquiera para el recurso ipc*/
if((key_t)-1==(claveMutex_s = ftok("lectores.c",'s'))){
fprintf(stderr,"main:Error al crear la clave con ftokn");
exit(1);
}
 if((key_t)-1==(claveMutex_w = ftok("lectores.c",'s'))){
fprintf(stderr,"main:Error al crear la clave con ftokn");
exit(1);
}
/*crear el semáforo*/
if(-1==(mutex_s=semCreate(claveMutex_s,1))){
fprintf(stderr,"main:No se puede crear el semáforo 1n");
exit(1);
}
 if(-1==(mutex_w=semCreate(claveMutex_w,1))){
fprintf(stderr,"main:No se puede crear el semáforo 2n");
exit(1);
}
/*crear zona de memoria compartida*/
if(!crearMemoria())
fprintf(stderr,"Error al crear memoria compartidan");
if(0!=fork()){ /*PROCESO ESCRITOR*/
  if((fpl=fopen(argv[1],"r+"))==NULL){
printf("Error en la apertura del fichero %s n",argv[1]);
exit(-1);
semClose(mutex_w);
}
 rewind(fpl);
for(i=0;i<3;i++){
printf ("Dime una frase que quieras escribir:");
gets(texto);
n=strlen(texto);
  semWait(mutex_w);
 fwrite(texto,(n*sizeof(char)),1,fpl);
 semSignal(mutex_w);
  semClose(mutex_w);
exit(0);
}
fclose(fpl);
}
else{
/* PROCESO LECTOR*/
if((fpe=fopen(argv[1],"w"))==NULL){
fprintf(stderr,"Error no se puede abrir el fichero %s n",argv[1]);
semClose(mutex_w);
semClose(mutex_s);
exit(2);
}
 for(i=0;i<3;i++) {
semWait(mutex_s);
contador ++;
if(contador==1)
semWait(mutex_w);
 while(!feof(fpe)){
semSignal(mutex_s);
fread((char *)c,sizeof(char),1,fpe);
semWait(mutex_s);
printf("%c",c);
}
contador --;
if(contador==0)
semSignal(mutex_w);
semSignal(mutex_s);
semClose(mutex_s);
semClose(mutex_w); /*CERRAMOS LOS
FICHEROS*/
fclose(fpe);
}
/*eliminamos memoria compartida*/
if(!eliminarMemoria()){
fprintf(stderr,"Error al eliminar la memoria compartida");
exit(9);
}
}
 return (0);
}

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

SO Unidad 2: Mecanismos de comunicación y sincronización de procesos
SO Unidad 2: Mecanismos de comunicación y sincronización de procesosSO Unidad 2: Mecanismos de comunicación y sincronización de procesos
SO Unidad 2: Mecanismos de comunicación y sincronización de procesos
 
Procedimientos especiales
Procedimientos especialesProcedimientos especiales
Procedimientos especiales
 
Procesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o HebrasProcesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o Hebras
 
Lectores y escritores
Lectores y escritoresLectores y escritores
Lectores y escritores
 
Sincronización entre procesos
Sincronización entre procesosSincronización entre procesos
Sincronización entre procesos
 
Tema 1-2 identificadores - variable y constante
Tema 1-2 identificadores - variable y constanteTema 1-2 identificadores - variable y constante
Tema 1-2 identificadores - variable y constante
 
Sistemas operativos procesos
Sistemas operativos   procesosSistemas operativos   procesos
Sistemas operativos procesos
 
Segmetación de instrucciones
Segmetación de instruccionesSegmetación de instrucciones
Segmetación de instrucciones
 
Hilo de ejecución
Hilo de ejecuciónHilo de ejecución
Hilo de ejecución
 
Hilos con Posix
Hilos con PosixHilos con Posix
Hilos con Posix
 
2.2 y 2.3
2.2 y 2.32.2 y 2.3
2.2 y 2.3
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Unidad 2-servidores-con-software-propietario
Unidad 2-servidores-con-software-propietarioUnidad 2-servidores-con-software-propietario
Unidad 2-servidores-con-software-propietario
 
El barbero-dormilón
El barbero-dormilónEl barbero-dormilón
El barbero-dormilón
 
Capitulo5
Capitulo5Capitulo5
Capitulo5
 
Dispositvos de entrada y salida
Dispositvos de entrada y salidaDispositvos de entrada y salida
Dispositvos de entrada y salida
 
Ciclo de instrucciones CPU
Ciclo de instrucciones CPUCiclo de instrucciones CPU
Ciclo de instrucciones CPU
 
TAREAS DE LA ING. DE REQUISITOS
TAREAS DE LA ING. DE REQUISITOSTAREAS DE LA ING. DE REQUISITOS
TAREAS DE LA ING. DE REQUISITOS
 
Acceso Directo de Memoria
Acceso Directo de MemoriaAcceso Directo de Memoria
Acceso Directo de Memoria
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 

Andere mochten auch

Construcción de lectores y escritores
Construcción de lectores y escritoresConstrucción de lectores y escritores
Construcción de lectores y escritoresgracielae
 
Sistemas operativos tarea 3
Sistemas operativos tarea 3Sistemas operativos tarea 3
Sistemas operativos tarea 3Ricardo Martinez
 
Capítulo 7 sincronización de procesos 09 01-2012
Capítulo 7 sincronización de procesos 09 01-2012Capítulo 7 sincronización de procesos 09 01-2012
Capítulo 7 sincronización de procesos 09 01-2012ecuatareas
 
Mapa conceptual recursos web
Mapa conceptual recursos webMapa conceptual recursos web
Mapa conceptual recursos webmarthampd
 
Herramientas case alto y bajo nivel
Herramientas case alto y bajo nivelHerramientas case alto y bajo nivel
Herramientas case alto y bajo nivelsistemaaabbbb
 
La formación del lector y el escritor
La formación del lector y el escritorLa formación del lector y el escritor
La formación del lector y el escritoryanalmyangel
 
SICRONIZACION DE PROCESOS
SICRONIZACION DE PROCESOSSICRONIZACION DE PROCESOS
SICRONIZACION DE PROCESOSlorenapardo
 
Verbos en pasado simple
Verbos en pasado simpleVerbos en pasado simple
Verbos en pasado simplejote1981
 
GESTION DE PROCESOS EN SISTEMAS OPERATIVOS
GESTION DE PROCESOS EN SISTEMAS OPERATIVOSGESTION DE PROCESOS EN SISTEMAS OPERATIVOS
GESTION DE PROCESOS EN SISTEMAS OPERATIVOSomarhcc
 
Integración didactica de las nuevas tecnologías
Integración didactica de las nuevas tecnologíasIntegración didactica de las nuevas tecnologías
Integración didactica de las nuevas tecnologíasLuis Alberto Medina Ramón
 
Revista del proceso Diálogos Comprensivos en Alta Verapaz
Revista del proceso Diálogos Comprensivos en Alta VerapazRevista del proceso Diálogos Comprensivos en Alta Verapaz
Revista del proceso Diálogos Comprensivos en Alta VerapazGermán Sandoval
 

Andere mochten auch (20)

Problema de los Filosofos
Problema de los FilosofosProblema de los Filosofos
Problema de los Filosofos
 
Barbero Dormilon
Barbero DormilonBarbero Dormilon
Barbero Dormilon
 
Lector escritor UPSE
Lector escritor UPSELector escritor UPSE
Lector escritor UPSE
 
Construcción de lectores y escritores
Construcción de lectores y escritoresConstrucción de lectores y escritores
Construcción de lectores y escritores
 
Sistemas operativos tarea 3
Sistemas operativos tarea 3Sistemas operativos tarea 3
Sistemas operativos tarea 3
 
Capítulo 7 sincronización de procesos 09 01-2012
Capítulo 7 sincronización de procesos 09 01-2012Capítulo 7 sincronización de procesos 09 01-2012
Capítulo 7 sincronización de procesos 09 01-2012
 
Mapa conceptual recursos web
Mapa conceptual recursos webMapa conceptual recursos web
Mapa conceptual recursos web
 
Herramientas case alto y bajo nivel
Herramientas case alto y bajo nivelHerramientas case alto y bajo nivel
Herramientas case alto y bajo nivel
 
La formación del lector y el escritor
La formación del lector y el escritorLa formación del lector y el escritor
La formación del lector y el escritor
 
Problema del barbero durmiente
Problema del barbero durmienteProblema del barbero durmiente
Problema del barbero durmiente
 
SICRONIZACION DE PROCESOS
SICRONIZACION DE PROCESOSSICRONIZACION DE PROCESOS
SICRONIZACION DE PROCESOS
 
Filósofos
FilósofosFilósofos
Filósofos
 
Verbos en pasado simple
Verbos en pasado simpleVerbos en pasado simple
Verbos en pasado simple
 
GESTION DE PROCESOS EN SISTEMAS OPERATIVOS
GESTION DE PROCESOS EN SISTEMAS OPERATIVOSGESTION DE PROCESOS EN SISTEMAS OPERATIVOS
GESTION DE PROCESOS EN SISTEMAS OPERATIVOS
 
PAGINACION Y SEGMENTACION DE MEMORIA
PAGINACION Y SEGMENTACION DE MEMORIAPAGINACION Y SEGMENTACION DE MEMORIA
PAGINACION Y SEGMENTACION DE MEMORIA
 
Sinapsis y neurotransmisores
Sinapsis y neurotransmisoresSinapsis y neurotransmisores
Sinapsis y neurotransmisores
 
Integración didactica de las nuevas tecnologías
Integración didactica de las nuevas tecnologíasIntegración didactica de las nuevas tecnologías
Integración didactica de las nuevas tecnologías
 
Revista del proceso Diálogos Comprensivos en Alta Verapaz
Revista del proceso Diálogos Comprensivos en Alta VerapazRevista del proceso Diálogos Comprensivos en Alta Verapaz
Revista del proceso Diálogos Comprensivos en Alta Verapaz
 
Ep 2011
Ep 2011Ep 2011
Ep 2011
 
Motos
MotosMotos
Motos
 

Ähnlich wie PROBLEMA DE LECTORES Y ESCRITORES DE UNA IPC

Ähnlich wie PROBLEMA DE LECTORES Y ESCRITORES DE UNA IPC (20)

Programacion concurrente
Programacion concurrenteProgramacion concurrente
Programacion concurrente
 
Cooperación entre procesos
Cooperación entre procesosCooperación entre procesos
Cooperación entre procesos
 
Unidad 7 conceptos Avanzados en la Programacion orientado a objetos
Unidad 7 conceptos Avanzados en la Programacion orientado a objetosUnidad 7 conceptos Avanzados en la Programacion orientado a objetos
Unidad 7 conceptos Avanzados en la Programacion orientado a objetos
 
Clasificación de los s.o.
Clasificación de los s.o.Clasificación de los s.o.
Clasificación de los s.o.
 
Clasificacion de los s.o.1.
Clasificacion de los s.o.1.Clasificacion de los s.o.1.
Clasificacion de los s.o.1.
 
Portafolio 2
Portafolio 2Portafolio 2
Portafolio 2
 
linux44
linux44linux44
linux44
 
Tarea s.o
Tarea s.oTarea s.o
Tarea s.o
 
Thread
ThreadThread
Thread
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
Tipos de sistema operativo y funcionamiento del Sistema Operativo
Tipos de sistema operativo y funcionamiento del Sistema OperativoTipos de sistema operativo y funcionamiento del Sistema Operativo
Tipos de sistema operativo y funcionamiento del Sistema Operativo
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
Kimberly (2) mapau trabajo
Kimberly (2) mapau trabajoKimberly (2) mapau trabajo
Kimberly (2) mapau trabajo
 
S.o
S.oS.o
S.o
 
Hilos hebras
Hilos hebrasHilos hebras
Hilos hebras
 
Mi exposición
Mi exposición Mi exposición
Mi exposición
 
Capitulo6
Capitulo6Capitulo6
Capitulo6
 
S.O.
S.O. S.O.
S.O.
 
Funciones y clasificacion de los sistemas operativos.
Funciones y clasificacion de los sistemas operativos.Funciones y clasificacion de los sistemas operativos.
Funciones y clasificacion de los sistemas operativos.
 
Aplicaciones en java_genesis_duran (3)
Aplicaciones en java_genesis_duran (3)Aplicaciones en java_genesis_duran (3)
Aplicaciones en java_genesis_duran (3)
 

Mehr von falco87

Aprendizaje y clase invertida
Aprendizaje y clase  invertidaAprendizaje y clase  invertida
Aprendizaje y clase invertidafalco87
 
Cumpleaos melanie
Cumpleaos melanieCumpleaos melanie
Cumpleaos melaniefalco87
 
Pablo falconi
Pablo falconiPablo falconi
Pablo falconifalco87
 
Ensayo sobre los metaversos
Ensayo sobre los metaversosEnsayo sobre los metaversos
Ensayo sobre los metaversosfalco87
 
Ensayo sobre los metaversos
Ensayo sobre los metaversosEnsayo sobre los metaversos
Ensayo sobre los metaversosfalco87
 
Ensayo metaversos
Ensayo metaversosEnsayo metaversos
Ensayo metaversosfalco87
 
Metaversos
MetaversosMetaversos
Metaversosfalco87
 
Metaversos
MetaversosMetaversos
Metaversosfalco87
 
Auditoria informatica cv
Auditoria  informatica cvAuditoria  informatica cv
Auditoria informatica cvfalco87
 
Falconi pablo conta
Falconi pablo contaFalconi pablo conta
Falconi pablo contafalco87
 
Glosario de Contabilidad
Glosario de ContabilidadGlosario de Contabilidad
Glosario de Contabilidadfalco87
 
Servidor web linux
Servidor web linuxServidor web linux
Servidor web linuxfalco87
 
Dhcp consulta
Dhcp consultaDhcp consulta
Dhcp consultafalco87
 
Como hecer una shell programada en lenguaje c
Como hecer una shell programada en lenguaje cComo hecer una shell programada en lenguaje c
Como hecer una shell programada en lenguaje cfalco87
 
Monitor advanced
Monitor advancedMonitor advanced
Monitor advancedfalco87
 

Mehr von falco87 (19)

Tarea 5
Tarea 5Tarea 5
Tarea 5
 
Aprendizaje y clase invertida
Aprendizaje y clase  invertidaAprendizaje y clase  invertida
Aprendizaje y clase invertida
 
Cumpleaos melanie
Cumpleaos melanieCumpleaos melanie
Cumpleaos melanie
 
Pablo falconi
Pablo falconiPablo falconi
Pablo falconi
 
Ensayo sobre los metaversos
Ensayo sobre los metaversosEnsayo sobre los metaversos
Ensayo sobre los metaversos
 
Ensayo sobre los metaversos
Ensayo sobre los metaversosEnsayo sobre los metaversos
Ensayo sobre los metaversos
 
Ensayo metaversos
Ensayo metaversosEnsayo metaversos
Ensayo metaversos
 
Metaversos
MetaversosMetaversos
Metaversos
 
Metaversos
MetaversosMetaversos
Metaversos
 
Auditoria informatica cv
Auditoria  informatica cvAuditoria  informatica cv
Auditoria informatica cv
 
Falconi pablo conta
Falconi pablo contaFalconi pablo conta
Falconi pablo conta
 
Glosario de Contabilidad
Glosario de ContabilidadGlosario de Contabilidad
Glosario de Contabilidad
 
Servidor web linux
Servidor web linuxServidor web linux
Servidor web linux
 
DNS
DNSDNS
DNS
 
Dhcp consulta
Dhcp consultaDhcp consulta
Dhcp consulta
 
Como hecer una shell programada en lenguaje c
Como hecer una shell programada en lenguaje cComo hecer una shell programada en lenguaje c
Como hecer una shell programada en lenguaje c
 
Monitor advanced
Monitor advancedMonitor advanced
Monitor advanced
 
Pacie
PaciePacie
Pacie
 
TAREA 6
TAREA 6TAREA 6
TAREA 6
 

Kürzlich hochgeladen

Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
CLASE - La visión y misión organizacionales.pdf
CLASE - La visión y misión organizacionales.pdfCLASE - La visión y misión organizacionales.pdf
CLASE - La visión y misión organizacionales.pdfJonathanCovena1
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptxolgakaterin
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptxdeimerhdz21
 

Kürzlich hochgeladen (20)

Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
CLASE - La visión y misión organizacionales.pdf
CLASE - La visión y misión organizacionales.pdfCLASE - La visión y misión organizacionales.pdf
CLASE - La visión y misión organizacionales.pdf
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptx
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 

PROBLEMA DE LECTORES Y ESCRITORES DE UNA IPC

  • 1. UNIVERSIDAD TECNICA DE AMBATO FACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACION SISTEMAS OPERATIVOS TEMA: LECTORES Y ESCRITORES INTEGRANTES: •PABLO FALCONI •STALIN PALLANGO •SANTIAGO TIXILEMA
  • 2. DESCRIPCION DEL PROBLEMA Pero nunca ocurrirá Solo puede utilizar simultáneamente Hay un objeto de el recurso un (teniendo en cuenta datos(fichero de proceso y solo que si no lo esta texto) que es uno, es decir, o bien utilizando utilizado por varios un proceso estará nadie, tendrá procesos, unos leen escribiendo o bien preferencia el y otro que escribe. leyendo escritor antes que el lector).
  • 3. DOCUMENTACION DEL PROGRAMA Se considera a cada usuario como dos La solución de este Se considera a cada semáforos. Estos problema se basa en usuario(lector y semáforos son implementar un escritor) como dos binarios y valen 0 si algoritmo en el procesos y al fichero el recurso (fichero) manejo de en cuestión como está siendo utilizado semáforos y un recurso. por otro proceso y 1 memoria si dicho recurso está compartida. disponible.
  • 4. PARA QUE EL PROBLEMA ESTÉ BIEN RESUELTO SE TIENE QUE CUMPLIR: Cuando un escritor debe realizar su No se puede hacer tarea, debe ocurrir esperar a ningún cuanto antes, sin proceso lector si que deban interferir ningún proceso los procesos escritor accede al lectores.(Para ello se recurso. establecen prioridades)
  • 5. ALGORITMO LECTORES-ESCRITORES Lector (){ while (TRUE){ Sección no crítica wait(semáforo1) contador++; if (contador =1) wait(semáforo2) signal(semáforo1) Acceso al recurso (LECTURA) wait(semáforo1) contador-- if (contador=0) signal(semáforo2); signal (semáforo1) } } Escritor(){ while (TRUE){ Sección no crítica wait (semáforo2) Acceso al recurso signal (semáforo2) } }
  • 6.
  • 7. FUNCION MAIN: Creación de un proceso padre y de su proceso hijo (lectores, escritores). DESCRIPCION escribir( ); Esta función implementa el acceso a un recurso compartido, que será la variable que contabiliza el total de veces que el usuario escribe. En esta función se han incluido varias llamadas al macro TP. Este macro implementa un retardo aleatorio con el fin de dar cierto tiempo a que ocurran interrupciones que puedan detener la ejecución del proceso en su "cuanto" de tiempo asignado por el S.O.. En nuestro caso, es necesario realizar unas cuantas llamadas para dar tiempo a que todos los usuarios tengan oportunidad de escribir. lectura( ); Permite que el lector pueda acceder al recurso. Una vez que acaba de leer se encarga de dejar el recurso para que sean de nuevo utilizado (por él o por otros). Para ello se basa en funciones de manejo de semáforos y memoria compartida.
  • 8. Utiliza las siguientes funciones: Manejo de semaforos: •semWait ( ) •semSignal ( ) •semOpen ( ) •semClose ( ) Manejo de memoria compartida: Cada vez que escribe un usuario lo refleja en el incremento de la variable de memoria compartida. Cuando los lectores y escritores han realizado la tarea que desean(leer y escribir) un número M de veces prefijado (3) se lo comunican al padre, no sin antes haber cerrado adecuadamente todos los semáforos utilizados en esta función.
  • 9. LECTORES.C #include "rshmem.h" #include <string.h> #include <stdio.h> int main(int argc, char *argv[]){ /*DECLARACION DE VARIABLES*/ int contador=0; FILE *fpl,*fpe; int i,n; char texto [250],c; int mutex_s; /*semáforo 1*/ int mutex_w; /*semáforo 2*/ key_t claveMutex_s; /*clave semáforo 1*/ key_t claveMutex_w; /*clave semáforo 2*/
  • 10. /*CONTROL DEL PASO DE ARGUMENTOS*/ if(argc!=2){ fprintf(stderr,"main:error en el paso de argumentosn"); exit(3); } /*obtener una clave cualquiera para el recurso ipc*/ if((key_t)-1==(claveMutex_s = ftok("lectores.c",'s'))){ fprintf(stderr,"main:Error al crear la clave con ftokn"); exit(1); } if((key_t)-1==(claveMutex_w = ftok("lectores.c",'s'))){ fprintf(stderr,"main:Error al crear la clave con ftokn"); exit(1); }
  • 11. /*crear el semáforo*/ if(-1==(mutex_s=semCreate(claveMutex_s,1))){ fprintf(stderr,"main:No se puede crear el semáforo 1n"); exit(1); } if(-1==(mutex_w=semCreate(claveMutex_w,1))){ fprintf(stderr,"main:No se puede crear el semáforo 2n"); exit(1); } /*crear zona de memoria compartida*/ if(!crearMemoria()) fprintf(stderr,"Error al crear memoria compartidan");
  • 12. if(0!=fork()){ /*PROCESO ESCRITOR*/ if((fpl=fopen(argv[1],"r+"))==NULL){ printf("Error en la apertura del fichero %s n",argv[1]); exit(-1); semClose(mutex_w); } rewind(fpl); for(i=0;i<3;i++){ printf ("Dime una frase que quieras escribir:"); gets(texto); n=strlen(texto); semWait(mutex_w); fwrite(texto,(n*sizeof(char)),1,fpl); semSignal(mutex_w); semClose(mutex_w); exit(0); } fclose(fpl); } else{
  • 13. /* PROCESO LECTOR*/ if((fpe=fopen(argv[1],"w"))==NULL){ fprintf(stderr,"Error no se puede abrir el fichero %s n",argv[1]); semClose(mutex_w); semClose(mutex_s); exit(2); } for(i=0;i<3;i++) { semWait(mutex_s); contador ++; if(contador==1) semWait(mutex_w); while(!feof(fpe)){ semSignal(mutex_s); fread((char *)c,sizeof(char),1,fpe); semWait(mutex_s); printf("%c",c); } contador --; if(contador==0) semSignal(mutex_w); semSignal(mutex_s); semClose(mutex_s);
  • 14. semClose(mutex_w); /*CERRAMOS LOS FICHEROS*/ fclose(fpe); } /*eliminamos memoria compartida*/ if(!eliminarMemoria()){ fprintf(stderr,"Error al eliminar la memoria compartida"); exit(9); } } return (0); }