Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Informe de Proyecto Final: Implementación de Estructuras de Datos en Java, Guías, Proyectos, Investigaciones de Sistemas Operativos

Informe de proyecto final sobre implementacion de semaforos para programacion concurrente en java

Tipo: Guías, Proyectos, Investigaciones

2019/2020

Subido el 06/03/2020

alejandro-moreno-17
alejandro-moreno-17 🇨🇴

5

(1)

1 documento

1 / 6

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
INFORME DE PROYECTO FINAL
NOMBRES:
DAVID ALEJANRO MORENO ZAPATA
PAOLA ANDREA ROA LENIS
PROFESOR:
ALBEIRO APONTE
INFORME
FACULTAD DE INGENIERIA
INGENIERIA EN SISTEMAS
UNIVERSIDAD DEL VALLE
TULUÁ, 05 DE MARZO DEL 2020
pf3
pf4
pf5

Vista previa parcial del texto

¡Descarga Informe de Proyecto Final: Implementación de Estructuras de Datos en Java y más Guías, Proyectos, Investigaciones en PDF de Sistemas Operativos solo en Docsity!

INFORME DE PROYECTO FINAL

NOMBRES:

DAVID ALEJANRO MORENO ZAPATA

PAOLA ANDREA ROA LENIS

PROFESOR:

ALBEIRO APONTE

INFORME

FACULTAD DE INGENIERIA

INGENIERIA EN SISTEMAS

UNIVERSIDAD DEL VALLE

TULUÁ, 05 DE MARZO DEL 2020

Estructuras de datos usadas. Se usa lista enlazada para simular la cola de semaforos, en java, esta lista enlazada se puede declarar como un ArrayList. Este tipo de dato es muy conveniente porque permite crear una lista sin definir su tamaño previamente. Implementacion de Semaforos Usamos un ArrayList para simular la cola de semaforos, para garantizar que los hilos siempre lean el ultimo dato actualizado de la variable permit (permisos), se le agrega un modificador de visibilidad de memoria, volatile , que permite que esta variable sea guardada en memoria DRAM y no en la memoria caché. Para los metodos acquire y release , se les agrega la palabra clave synchronized , esta permite de verdad implementar la cola de semaforos, ya que si llega mas de un hilo se asegura la ejecucion de uno a la vez. Lector/Escritor Para ambas clases (Lector y Escritor), se implementa Runnable de Java, que permite el manejo de hilos gracias a su unico metodo Run() , lo siguiente simplemente fue implementar lo visto en las diapositivas presentadas en clase para la prioridad a escritores. Ver pruebas en figura 1.

Productores/Consumidores Al igual que con las clases de Lector y Escritor, se implemento Runnable de Java y lo visto en las diapositivas, pero al manejarlo en clases separadas, la ejecucion toma una forma inusual y los hilos no respetan el tamaño del buffer, con lo cual el productor empieza a producir mucho mas de lo que se le indicó ver figura 2. Para solucionarlo, se ponen las clases Productor y Consumidor, como clases estaticas dentro de la clase principal donde se lleva a cabo la ejecución. Los resultados de la ejecucion final se veran en la figura 3.

Figura 2.