PC
  • Home
  • Sesiones
  • Prácticas
  • Teoría

Prácticas

  • La entrega de prácticas se realiza en (y solo en) http://pracdlsi.dlsi.ua.es.
  • La publicación de notas se realiza en la web de notas del DLSI.
  • Si necesitas revisar cualquier práctica de la asignatura debes reservar una tutoría virtual mientras dure la actual situación sanitaria desde la aplicación de UA Cloud.
  • Las prácticas se corrigen con la versión de Ubuntu instalada en los laboratorios de la EPS.
    • La EPS pone a vuestra disposición una imagen VDI de la instalación de Ubuntu de sus laboratorios.
    • Puedes descargarla de aquí. Si lo descargas desde tu navegador y dado que es un archivo muy grande es recomendable que uses alguna extensión para administrar descargas.
    • Para resolver cualquier problema que puedas tener con la descarga de este archivo, ponte en contacto con los técnicos de la EPS.

Introducción a Rust 1

Debido a las circunstancias actuales, el seminario de Rust se realizará de manera online y virtual. Esta guía proporciona todo lo necesario para que los alumnos puedan seguir el seminario de forma autónoma. El objetivo es proporcionar una guía estructurada para aprender Rust utilizando el libro oficial como referencia principal. No se espera que los alumnos se conviertan en expertos en Rust, sino que comprendan los conceptos clave que hacen del lenguaje una herramienta adecuada para la programación concurrente. ...

Introducción a Rust 2

Debido a las circunstancias actuales, el seminario de Rust se realizará de manera online y virtual. Esta guía proporciona todo lo necesario para que los alumnos puedan seguir el seminario de forma autónoma. El objetivo es proporcionar una guía estructurada para aprender Rust utilizando el libro oficial como referencia principal. No se espera que los alumnos se conviertan en expertos en Rust, sino que comprendan los conceptos clave que hacen del lenguaje una herramienta adecuada para la programación concurrente. ...

Práctica 1

En esta práctica vas a comparar el modelo de procesos de Unix con el modelo de hilos POSIX, observando cómo afectan a la memoria, a la planificación, a la sincronización y a la salida por pantalla. Trabajarás con dos programas base (procesos.c y hilos.c) y, a partir de ellos, realizarás pequeñas modificaciones y ejercicios guiados. Procesos en Unix/C Los procesos son instancias independientes de un programa en ejecución. Cada proceso tiene su propio espacio de memoria, por lo que no comparten variables ni datos directamente. ...

Práctica 2

Hilos en Java Debemos implementar en Java un hilo que lance la impresión de una palabra 10 veces. En el programa principal crearemos dos hilos de ese tipo inicializados con dos palabras diferentes y los lanzaremos para que se ejecuten a la vez. Los hilos se deben implementar de las dos formas vistas en clase de teoría: Creando una clase que herede de la clase Thread y que ejecute los hilos desde el programa principal. Para crear un hilo el programador define una clase que extiende la clase Thread que es parte del paquete java.lang. Comenta los resultados obtenidos al utilizar este método. ...

Práctica 3

Algoritmos con espera ocupada Implementa con hilos POSIX (subapartados a y b), con hilos Java (subapartados b y c) y con hilos Python (c y d) los siguientes algoritmos vistos en clase que utilizan la espera ocupada (algoritmos no eficientes) para la exclusión mutua: a. Primer intento (alternancia) b. Segundo intento (falta de exclusión mutua) c. Tercer intento (posible interbloqueo) d. Cuarto intento (espera infinita) Según la ejecución de cada uno de los algoritmos, anota en tu memoria de prácticas los fallos detectados en cada uno. Si no observas la salida esperada prueba a modificar los tiempos de respuesta de tus hilos para obtenerla si fuera posible. A la hora de estudiar el comportamiento de los hilos en la sección crítica ten en cuenta que, en Java, las asignaciones de tipos primitivos se realiza de forma atómica. No olvides comentar tu código. ...

Práctica 4

Algoritmos con espera ocupada (parte 2) Implementa con hilos POSIX, con hilos Java o con Python (al menos uno en cada lenguaje), los siguientes algoritmos vistos en clase que utilizan la espera ocupada para la exclusión mutua: Algoritmo de Dekker Algoritmo de Peterson Algoritmo de Hyman Algoritmo de Lamport Según la ejecución de cada uno de los algoritmos, anota en tu memoria si son correctos o incorrectos, y si son incorrectos qué propiedades no están cumpliendo. Si no observas la salida esperada prueba a modificar los tiempos de respuesta de tus hilos para obtenerla si fuera posible. A la hora de estudiar el comportamiento de los hilos en la sección crítica ten en cuenta que p.e.; En Java, las asignaciones de tipos primitivos se realiza de forma atómica. En Python existe el llamado GIL (global interpreter lock). Debes ejecutar tu programa con el comando taskset1 para que tu ordenador trabaje en modo monoprocesador. Hazlo así: taskset -c 0 proceso. Puedes cambiar el 0 por el número de núcleo que ejecutará la tarea Entrega Se realiza en pracdlsi en las fechas allí indicadas. Puedes entregar tantas veces como quieras, solo se corrige la ultima entrega. Crea una carpeta llamada p4 y dentro de ella estarán el código y archivos de texto o PDF donde contestas a las preguntas. Esta carpeta la comprimes en un archivo llamado p4.tgz p.e. así usando el terminal: tar cfz p4.tgz p4

© 2025 PC · Powered by Hugo & PaperMod