David 10 년 전
부모
커밋
60a6b4ded3
1개의 변경된 파일23개의 추가작업 그리고 3개의 파일을 삭제
  1. 23 3
      informe/9-informe.md

+ 23 - 3
informe/9-informe.md

@@ -1,6 +1,28 @@
 # Ejercicio 9
 
-\newpage
+Implementamos este ejercicio utilizando:
+
+ * `Map<pid, process>`
+ * `vector<queue<pid>>`
+
+Donde quantum y pid son `unsigned int`.
+
+Esto nos permite:
+
+ * Poder mantener cada cola de prioridad con los PIDs que tiene asignados.
+ * Acceso fácil/rápido al estado de cada proceso por su PID.
+
+En dicho `Map` se almacena un `struct` con datos del proceso actual como: _pid_, _state_ y *quantum_count*, a los que se accede utilizando el _pid_ como clave.
+
+En el constructor se leen los parámetros que recibe la cantidad de ticks a asignar por quantum a cada cola (esto le da la 'prioridad' a cada cola).
+
+Cada vez que se carga un nuevo proceso, el mismo se aloja en la cola de mayor prioridad.
+Al haber un _tick_ se controla que no se haya cumplido el _quantum_ establecido para dicho nucleo, si se cumplió se lo intenta mover a una cola de menor prioridad y se marca como READY.
+Al haber un _unblock_ se intenta "premiar" a la tarea (que no utilizó completamente su quantum antes de ser desalojada), moviéndola a una cola de mayor prioridad.
+
+![Lotes: CPU | CPU Heavy + IO | CPU esporadico + Heavy IO](informe/imagenes/caso_mfq_4_gral.png)
+
+
 Definiciones
 ====
 
@@ -12,5 +34,3 @@ Waiting time: Cantidad de ticks en ready durante toda la ejecución de un proces
 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
 
-![](informe/imagenes/caso_mfq_4_gral.png)
-