\newpage
En este ejercicio se nos pide experimentar con un scheduler del tipo FCFS(first come, first served), esto significa que atendera a las tareas en el orden de llegada y no liberará el procesador hasta concluir con el proceso asignado.
Para probar dicha implementación se unos brinda un lote de tareas compuesto por tareas del tipo
TaskConsola y TaskCPU, donde el primer tipo ya fue expuesto en el primer ejercicio de este trabajo y la segundo
es una tarea que solo consumirá consumirá una cantidad finita de ciclos de cpu(determinadas por parámetro). El
siguiente cuadro muestra el lote utilizado:
| Task | Tipo | Release time | n | bmin | bmax |
|---|---|---|---|---|---|
| 0 | TaskCPU | 0 | 10 | ||
| 1 | TaskConsola | 5 | 5 | 1 | 4 |
| 2 | TaskConsola | 6 | 5 | 1 | 2 |
| 3 | TaskCPU | 8 | 10 |
Para probar este lote, se nos pide hacer correr el scheduler con un costo de cambio de contexto de 2 ciclos en máquinas de 1, 2 y 4 cores, además es válido aclarar que el costo de core switch es irrelevante para esta implementación.
\newpage
Finalmente se nos pide calcular latencia[^ej2footnote] y throughtput[^ej2footnote2] en cada una de las pruebas, a lo cual elaboramos los siguientes cuadros:
A. Latencia:
| Task | Tipo | 1 Core | 2 Cores | 4 Cores |
|---|---|---|---|---|
| 0 | TaskCPU | 2 | 2 | 2 |
| 1 | TaskConsola | 14 | 7 | 7 |
| 2 | TaskConsola | 36 | 14 | 8 |
| 3 | TaskCPU | 58 | 34 | 10 |
| Promedio | 27.5 | 14.25 | 6.75 |
B. Throughtput:
| 1 Core | 2 Core | 4 Cores |
|---|---|---|
| 0.06 | 0.08 | 0.13 |
[^ej2footnote]: Latencia, Cantidad de ticks en ready hasta que se ejecuta la task. [^ej2footnote2]: Throughtput, Cantidad de procesos que terminan su ejecución por unidad de tiempo.