|
|
@@ -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.
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
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
|
|
|
|
|
|
-
|
|
|
-
|