informe.md 3.3 KB


title: Trabajo Práctico 1 - Scheduling author:

  • Agusín Cangiani (344/09)
  • David Ventura (673/13)
  • Fabian Álvarez (674/13) geometry: margin=2cm ---

\newpage

\hypersetup{ colorlinks, linkcolor=black } \tableofcontents

\newpage

Ejercicio 1

Ej1

Ejercicio 2

Ej2-1 Ej2-2 Ej2-4

Ejercicio 3

Ej3

Ejercicio 4

Para el ejercicio 4 se ejecutaron 3 casos distintos con 1, 2 y 4 cores para evaluar como se modifica la eficiencia del mismo en dichos casos. Se utilizaron los siguientes valores:

  • Quantum: ?????
  • Context Switch: ???
  • Core Switch: ???

1 Core

Ej4-1 Se puede observar que el tener quantums muy chicos afecta negativamente el rendimiento del scheduler, ya que se pierde la mayoría del tiempo en context switch.

2 Cores

Ej4-2

En este grafico se puede ver facilmente que la ingenuidad de la implementacion termina dañando el rendimiento general (Particularmente core-switch en ciclos 22 y 50)

4 Cores

Ej4-4 Se ve que aumentar la cantidad de cores no mejora los tiempos de ejecución de los procesos, ya que en casi todo momento se encuentra un core en idle. Esto se debe a que este scheduler toma el primer nucleo libre y tiene en cuenta en que nucleo se encuentra el proceso actual. Esto provoca que haya cambio de nucleos constantemente en los procesos, sin aprovechar los cores libres.

Ejercicio 5

Quantum 2

Ej5-1

Quantum 5

Ej5-2

Quantum 10

Ej5-3

Definiciones

Latencia: Cantidad de ticks en ready hasta que se ejecuta la primera task. Esta métrica se puede extender para ver la latencia promedio de todos los procesos que corrió el scheduler.

Waiting time: Cantidad de ticks en ready durante toda la ejecución de un proceso.

Tiempo total de ejecución: Intervalo de ticks desde que se ejecuta un proceso hasta su terminación. --> buscar en las teóricas, la latencia del proceso puede o no ser incluida

Ejercicio 8

A continuación se muestran los diferentes casos de prueba realizados para comparar los diferentes tipos de schedulers. Se eligieron los siguientes casos de prueba ya que creemos que son los casos que más se acercan a la realidad:

  • Uso intensivo CPU: Para simular casos de, por ejemplo, procesamiento de imágen o video.
  • Uso intensivo IO: Para simular situaciones en las que se lea mucha información del disco continuamente (como falta de memoria RAM).
  • Picos esporádicos CPU con IO: Para simular casos de uso normal de usuario.

Uso intensivo CPU

Single core

Multi core

Uso intensivo IO

Single core

Multi core

Picos esporádicos CPU con IO

Single core

Multi core

Cuadro mágico

Voy a ver como armar gráficos en python, pero en caso se emergencia "sudo apt install libreoffice-calc"