Просмотр исходного кода

Merge branch 'master' of ssh://gogs.davidventura.com.ar:443/david/so-tp1

Fabian 10 лет назад
Родитель
Сommit
d065699872
2 измененных файлов с 19 добавлено и 7 удалено
  1. 5 3
      casos/cpu_usr.tsk
  2. 14 4
      informe/9-informe.md

+ 5 - 3
casos/cpu_usr.tsk

@@ -1,10 +1,12 @@
 TaskCPU 30
 *3 TaskBatch 6 2
 @5:
-*4 TaskConsola 4 10 15
+*2 TaskConsola 4 10 15
 @15:
 TaskCPU 25
-@20:
-*5 TaskConsola 3 6 10
+@30:
+*2 TaskConsola 3 6 10
+@40:
+TaskConsola 3 6 10
 @30:
 TaskCPU 40

+ 14 - 4
informe/9-informe.md

@@ -30,22 +30,32 @@ Las tareas consisten en los siguientes 3 casos:
 * __IO Heavy:__ Tareas con poco consumo de CPU (comparadas a _CPU Heavy_) pero con un alto uso de IO.
 * __Interacción de usuario:__ Consiste en varios procesos con uso de IO seguidos de procesos con alto uso de CPU. Para simular la entrada de un usuario y el procesamiento de programas o scripts del mismo.
 
+### Descripción del algoritmo 
+
+En el lote de tareas provisto se puede observar que este scheduler alcanza un buen balance entre throughput y waiting time.
+Este algoritmo prioriza tareas cortas y tareas con mucho IO, la idea es intentar "premiar" a las tareas que pasan mucho tiempo bloqueadas, haciendolas esperar la menor cantidad de tiempo posible.
+A las tareas más largas o con mucho uso de CPU este algoritmo les reduce la prioridad pero les asigna mas quantums, ¿¿¿lo que mejora su throughput????.
+
+Las tareas priorizadas usan el CPU poco tiempo, por lo que es bueno reducir el tiempo que pasan esperando, para dar respuesta rápida.
+Las otras tareas requieren más recursos, por lo que no les afecta tanto esperar un poco más si eso significa obtener mas quantum.
+
 ### Uso elevado de CPU
 
 ![Ejercicio 9 - CPU Heavy](informe/imagenes/ejercicio9_gantt_casos_1.png)
+En este caso se puede ver claramente la priorización de tareas con IO (3,4,5) sobre las tareas que consumen todo su quantum y son asignadas a una cola de menor prioridad.
 
 ### Uso elevado de IO
 ![Ejercicio 9 - IO Heavy](informe/imagenes/ejercicio9_gantt_casos_2.png)
+En este caso se puede ver que la priorización de procesos "interactivos" consume completamente el CPU (hasta ~160), donde finalmente pueden ejecutar los procesos que estaban en la segunda cola.
+
+\newpage
 
 ### Interacción de usuario
 ![Ejercicio 9 - Interacción usuario](informe/imagenes/ejercicio9_gantt_casos_3.png)
 
+En este caso podemos ver un buen lote de tareas para el scheduler; las tareas "interactivas" tienen bajo waiting time mientras que las tareas con uso intensivo de CPU tienen mayor waiting time pero también reciben mas quantum.
 
-Se puede observar que este scheduler es *muy* ineficiente para casos en los que se utiliza mucho CPU y poco IO; todas las tareas quedan en la cola de menor prioridad y sucede lo mismo que vimos en el scheduler RR: la relación quantum / context switch es muy mala.
-
-Observación: Este scheduler debería ser 'bueno' para tareas interactivas pero esto no se da ya que al tener una implementación ingenua sin `CPU Pinning` perdemos mucho tiempo cuando las tareas cambian de core.
 
-\newpage
 # 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.