Cache 13
Trabajo Práctico�Sistemas Operativos�2C2015
¿Qué es Cache 13?
Sistema que emula algunas características de un
Sistema Operativo.
¿Cómo vamos a trabajar en esto?
¿Desarrollo incremental?
Yo hago mi parte
¿Desarrollo incremental?
“Yo hice mi parte”
¡Desarrollo iterativo incremental!
¡Desarrollo iterativo incremental!
Arquitectura de Cache 13
Planificador
Adm. Swap
CPU
Adm. Memoria
CPU
CPU
¿Cómo corro mis programas?
Mi pedido
La respuesta
De mCod a mProc
Planificador
Adm. Swap
CPU
Adm. Memoria
CPU
CPU
correr programa.cod
De mCod a mProc
Planificador
Adm. Swap
CPU
Adm. Memoria
CPU
CPU
correr programa.cod
PCB
¿Qué sentencias puede tener mi programa?
Sentencias: iniciar
Planificador
Adm. Swap
CPU
Adm. Memoria
CPU
CPU
Ejecutar
[Contexto de ejecución]
PCB
Sentencias: iniciar
Planificador
Adm. Swap
CPU
Adm. Memoria
CPU
CPU
Iniciar [Cant Paginas]
Estructuras
Sentencias: iniciar
Planificador
Adm. Swap
CPU
Adm. Memoria
CPU
CPU
Iniciar [Cant Paginas]
Estructuras
Sentencias: iniciar
Planificador
Adm. Swap
CPU
Adm. Memoria
CPU
CPU
OK / Error
Error
OK /
Error
Error
OK →
entonces sigo
Sentencias: escribir
Adm. Swap
CPU
Adm. Memoria
CPU
CPU
escribir “Hola”
El planificador no interviene
Sentencias: escribir
Adm. Swap
CPU
Adm. Memoria
CPU
CPU
escribir “Hola”
[ si es necesario ]
El planificador no interviene
Sentencias: escribir
Adm. Swap
CPU
Adm. Memoria
CPU
CPU
OK → [si fue necesario]
OK
OK →
entonces sigo
El planificador no interviene
Sentencias: leer
Adm. Swap
CPU
Adm. Memoria
CPU
CPU
leer 13
El planificador no interviene
Sentencias: leer
Adm. Swap
CPU
Adm. Memoria
CPU
CPU
leer 13 → [ si es necesario ]
El planificador no interviene
Sentencias: leer
Adm. Swap
CPU
Adm. Memoria
CPU
CPU
“Hola” → [Si fue necesario]
“Hola”
OK →
entonces sigo
El planificador no interviene
Sentencias: entrada-salida
Planificador
CPU
CPU
CPU
entrada-salida 100
Sentencias: entrada-salida
Planificador
CPU
CPU
CPU
Bloquea al mProc
Elige otro mProc
Sentencias: entrada-salida
Planificador
CPU
CPU
CPU
Ejecutar otro
[Contexto de ejecución]
Otro
PCB
Sentencias: finalizar
Adm. Swap
CPU
Adm. Memoria
CPU
CPU
finalizar
El planificador no interviene
Estructuras
Sentencias: finalizar
Adm. Swap
CPU
Adm. Memoria
CPU
CPU
finalizar
El planificador no interviene
Estructuras
Sentencias: finalizar
Planificador
Adm. Swap
CPU
Adm. Memoria
CPU
CPU
Finalizado
Finalizado
Finalizado
Finalizado
Termina una ráfaga o fin de Quantum
Planificador
CPU
CPU
CPU
Inicié�Escribí “Hola”�Leí “Hola”
...
Muchos mensajes�
Mucha concurrencia
¡Es MUY importante la sincronización!
Comandos: correr PATH
Planificador
correr programa.cod
Pone programa.cod en funcionamiento
Comandos: finalizar PID
Planificador
finalizar PID
Pone el puntero de instrucciones de PID en la última.
No lo mata. Lo fuerza a terminar su ejecución
Comandos: ps
Planificador
ps
Devuelve el estado de todos los procesos del sistema
Comandos: cpu
Planificador
cpu
Devuelve el % de utilización de cada CPU en el último minuto registrado (no en los últimos 60 segundos)
¿Qué es Asignación Contigua?
Asignación contigua
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | ... | | | | | | | | |
| | | | | | | | | |
| | | | | | | | ... | 49 |
Asignado: -
Libre: 0 a 49
Asignación contigua
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | ... | | | | | | | | |
| | | | | | | | | |
| | | | | | | | ... | 49 |
Asignado: P1 → 0 a 4
Libre: 5 a 49
Asignación contigua
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | ... | | | | | | | | |
| | | | | | | | | |
| | | | | | | | ... | 49 |
Asignado: P1 → 0 a 4
P2 → 5 a 16
Libre: 17 a 49
Asignación contigua
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | ... | | | | | | | | |
| | | | | | | | | |
| | | | | | | | ... | 49 |
Asignado: P1 → 0 a 4
P2 → 5 a 16
P3 → 17 a 19
Libre: 20 a 49
Asignación contigua
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | ... | | | | | | | | |
| | | | | | | | | |
| | | | | | | | ... | 49 |
Asignado: P1 → 0 a 4
P3 → 17 a 19
Libre: 5 a 16
20 a 49
Asignación contigua
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | ... | | | | | | | | |
| | | | | | | | | |
| | | | | | | | ... | 49 |
Asignado: P1 → 0 a 4
P3 → 17 a 19
P4 → 5 a 9
Libre: 10 a 16
20 a 49
Asignación contigua
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | ... | | | | | | | | |
| | | | | | | | | |
| | | | | | | | ... | 49 |
Asignado: P1 → 0 a 4
P3 → 17 a 19
P4 → 5 a 9
Libre: 10 a 16
20 a 49
A) P5 necesita 35 bloques → Los tengo pero no contiguos
Asignación contigua
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | ... | | | | | | | | |
| | | | | | | | | |
| | | | | | | | ... | 49 |
Asignado: P1 → 0 a 4
P3 → 17 a 19
P4 → 5 a 9
Libre: 10 a 16
20 a 49
B) Finaliza P3 → Consolido
Asignación contigua
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | ... | | | | | | | | |
| | | | | | | | | |
| | | | | | | | ... | 49 |
Asignado: P1 → 0 a 4
P3 → 17 a 19
P4 → 5 a 9
Libre: 10 a 16
17 a 19
20 a 49
Entonces → Libre: 10 a 49
¿Cómo funcionan los algoritmos de planificación?
¿Cómo funcionan los accesos a memoria?
¿Cuándo tengo que acceder a Swap y cúando no?
¿Qué significa...?
Paciencia
Lo vas a ver en la cursada
Pero si ya estás en tema y estás ansioso, acercate a preguntar.
¿Preguntas?
Checkpoint 1 - 12 de Septiembre
10%
10%
10%
10%
Checkpoint 2 - 3 de Octubre
40%
60%
70%
20%
Checkpoint 3 - 7 de Noviembre
80%
80%
80%
50%
Entrega Final - 28 de Noviembre
100%
100%
100%
100%
¿Preguntas?