--- title: Trabajo Práctico 1 - Scheduling author: - Agustín Cangiani, **(344/09)**, _cangiani@gmail.com_ - David Ventura, **(673/13)**, _davidventura27@gmail.com_ - Fabian Álvarez, **(674/13)**, _falvarez.0104@gmail.com_ geometry: margin=2cm --- \newpage \hypersetup{ colorlinks, linkcolor=black } \tableofcontents \newpage Ejercicio 1 ==== Para el primer ejercicio de este trabajo práctico se nos pide implementar `TaskConsola`, una simulación de una tarea interativa que debe realizar llamadas bloquantes de duración aleatoria y luego de esto consumir un ciclo de cpu. Dicha tarea se contruye a partir de 3 parámetros **n**, **bmin** y **bmax** , donde el primero determina la cantidad de llamadas de bloqueantes a realizar y luego **bmin** y **bmax** determinan el rango de la duración de cada la llamada bloqueante. La implementación de `TaskConsola` es bastante sencilla, se generan **n** iteraciones, donde en cada una de ellas se genera una llamada bloqueante con una duración de **x** ciclos de reloj y un ciclo de ejecución de cpu. Para determinar **x** utilizamos la siguiente fórmula: ```c x = rand() % ( bmax - bmin + 1 ) + bmin ``` Para probar y generar el gráfico de Gantt de la implementación realizada utilizamos el siguiente lote de tareas del tipo `TaskConsola`: | Task | Release Time | n | bmin | bmax | |------ |-------------- |--- |------ |------ | | 0 | 3 | 5 | 1 | 3 | | 1 | 5 | 2 | 4 | 8 | | 2 | 5 | 2 | 4 | 8 | ![Ejercicio 1](informe/imagenes/ejercicio1.png) El el gráfico se puede observar que las llamadas bloqueantes se mantienen dentro de los rangos establecidos por los parámtetros de las tareas.