1 of 58

Cache 13

Trabajo Práctico�Sistemas Operativos�2C2015

2 of 58

¿Qué es Cache 13?

Sistema que emula algunas características de un

Sistema Operativo.

3 of 58

¿Cómo vamos a trabajar en esto?

4 of 58

¿Desarrollo incremental?

Yo hago mi parte

5 of 58

¿Desarrollo incremental?

6 of 58

“Yo hice mi parte”

7 of 58

¡Desarrollo iterativo incremental!

8 of 58

¡Desarrollo iterativo incremental!

9 of 58

Arquitectura de Cache 13

10 of 58

Planificador

Adm. Swap

CPU

Adm. Memoria

CPU

CPU

11 of 58

¿Cómo corro mis programas?

Mi pedido

La respuesta

12 of 58

De mCod a mProc

Planificador

Adm. Swap

CPU

Adm. Memoria

CPU

CPU

correr programa.cod

13 of 58

De mCod a mProc

Planificador

Adm. Swap

CPU

Adm. Memoria

CPU

CPU

correr programa.cod

PCB

14 of 58

¿Qué sentencias puede tener mi programa?

15 of 58

Sentencias: iniciar

Planificador

Adm. Swap

CPU

Adm. Memoria

CPU

CPU

Ejecutar

[Contexto de ejecución]

PCB

16 of 58

Sentencias: iniciar

Planificador

Adm. Swap

CPU

Adm. Memoria

CPU

CPU

Iniciar [Cant Paginas]

Estructuras

17 of 58

Sentencias: iniciar

Planificador

Adm. Swap

CPU

Adm. Memoria

CPU

CPU

Iniciar [Cant Paginas]

Estructuras

18 of 58

Sentencias: iniciar

Planificador

Adm. Swap

CPU

Adm. Memoria

CPU

CPU

OK / Error

Error

OK /

Error

Error

OK →

entonces sigo

19 of 58

Sentencias: escribir

Adm. Swap

CPU

Adm. Memoria

CPU

CPU

escribir “Hola”

El planificador no interviene

20 of 58

Sentencias: escribir

Adm. Swap

CPU

Adm. Memoria

CPU

CPU

escribir “Hola”

[ si es necesario ]

El planificador no interviene

21 of 58

Sentencias: escribir

Adm. Swap

CPU

Adm. Memoria

CPU

CPU

OK → [si fue necesario]

OK

OK →

entonces sigo

El planificador no interviene

22 of 58

Sentencias: leer

Adm. Swap

CPU

Adm. Memoria

CPU

CPU

leer 13

El planificador no interviene

23 of 58

Sentencias: leer

Adm. Swap

CPU

Adm. Memoria

CPU

CPU

leer 13 → [ si es necesario ]

El planificador no interviene

24 of 58

Sentencias: leer

Adm. Swap

CPU

Adm. Memoria

CPU

CPU

“Hola” → [Si fue necesario]

“Hola”

OK →

entonces sigo

El planificador no interviene

25 of 58

Sentencias: entrada-salida

Planificador

CPU

CPU

CPU

entrada-salida 100

26 of 58

Sentencias: entrada-salida

Planificador

CPU

CPU

CPU

Bloquea al mProc

Elige otro mProc

27 of 58

Sentencias: entrada-salida

Planificador

CPU

CPU

CPU

Ejecutar otro

[Contexto de ejecución]

Otro

PCB

28 of 58

Sentencias: finalizar

Adm. Swap

CPU

Adm. Memoria

CPU

CPU

finalizar

El planificador no interviene

Estructuras

29 of 58

Sentencias: finalizar

Adm. Swap

CPU

Adm. Memoria

CPU

CPU

finalizar

El planificador no interviene

Estructuras

30 of 58

Sentencias: finalizar

Planificador

Adm. Swap

CPU

Adm. Memoria

CPU

CPU

Finalizado

Finalizado

Finalizado

Finalizado

31 of 58

Termina una ráfaga o fin de Quantum

Planificador

CPU

CPU

CPU

Inicié�Escribí “Hola”�Leí “Hola”

...

32 of 58

Muchos mensajes�

Mucha concurrencia

33 of 58

¡Es MUY importante la sincronización!

34 of 58

Comandos: correr PATH

Planificador

correr programa.cod

Pone programa.cod en funcionamiento

35 of 58

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

36 of 58

Comandos: ps

Planificador

ps

Devuelve el estado de todos los procesos del sistema

37 of 58

Comandos: cpu

Planificador

cpu

Devuelve el % de utilización de cada CPU en el último minuto registrado (no en los últimos 60 segundos)

38 of 58

¿Qué es Asignación Contigua?

39 of 58

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

40 of 58

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

41 of 58

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

42 of 58

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

43 of 58

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

44 of 58

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

45 of 58

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

46 of 58

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

47 of 58

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

48 of 58

¿Cómo funcionan los algoritmos de planificación?

49 of 58

¿Cómo funcionan los accesos a memoria?

50 of 58

¿Cuándo tengo que acceder a Swap y cúando no?

51 of 58

¿Qué significa...?

52 of 58

Paciencia

Lo vas a ver en la cursada

Pero si ya estás en tema y estás ansioso, acercate a preguntar.

53 of 58

¿Preguntas?

54 of 58

Checkpoint 1 - 12 de Septiembre

10%

10%

10%

10%

55 of 58

Checkpoint 2 - 3 de Octubre

40%

60%

70%

20%

56 of 58

Checkpoint 3 - 7 de Noviembre

80%

80%

80%

50%

57 of 58

Entrega Final - 28 de Noviembre

100%

100%

100%

100%

58 of 58

¿Preguntas?