S.O MULTIPROGRAMACION (PROCESOS)
-
Upload
lucascicconi -
Category
Documents
-
view
50 -
download
3
description
Transcript of S.O MULTIPROGRAMACION (PROCESOS)
![Page 1: S.O MULTIPROGRAMACION (PROCESOS)](https://reader030.fdocument.pub/reader030/viewer/2022012319/563dba49550346aa9aa451e4/html5/thumbnails/1.jpg)
Práctica 4
![Page 2: S.O MULTIPROGRAMACION (PROCESOS)](https://reader030.fdocument.pub/reader030/viewer/2022012319/563dba49550346aa9aa451e4/html5/thumbnails/2.jpg)
o Programa en ejecucióno Los conceptos de tarea, Job y proceso hacen
referencia a lo mismoo Según su historial de ejecución, los podemos
clasificar:n CPU Bound (ligados a la CPU)n I/O Bound (ligados a entrada/salida)
![Page 3: S.O MULTIPROGRAMACION (PROCESOS)](https://reader030.fdocument.pub/reader030/viewer/2022012319/563dba49550346aa9aa451e4/html5/thumbnails/3.jpg)
Programa}Es estático}No tiene programcounter}Existe desde que se edita hasta que se borra
ProcesoþEs dinámicoþTiene programcounterþSu ciclo de vida comprende desde que se lo “dispara” hasta que termina
![Page 4: S.O MULTIPROGRAMACION (PROCESOS)](https://reader030.fdocument.pub/reader030/viewer/2022012319/563dba49550346aa9aa451e4/html5/thumbnails/4.jpg)
þUna por proceso
þTiene información de cada proceso
þEs lo primero que se crea cuando se crea un proceso y lo último que se borra cuando termina
![Page 5: S.O MULTIPROGRAMACION (PROCESOS)](https://reader030.fdocument.pub/reader030/viewer/2022012319/563dba49550346aa9aa451e4/html5/thumbnails/5.jpg)
En su ciclo de vida, el proceso pasa por diferentes estados
![Page 6: S.O MULTIPROGRAMACION (PROCESOS)](https://reader030.fdocument.pub/reader030/viewer/2022012319/563dba49550346aa9aa451e4/html5/thumbnails/6.jpg)
o Es la clave de la multiprogramación.o Esta diseñado de manera apropiada para
cumplir las metas de:n Menor Tiempo de Respuestan Mayor rendimienton Uso eficiente del procesador
![Page 7: S.O MULTIPROGRAMACION (PROCESOS)](https://reader030.fdocument.pub/reader030/viewer/2022012319/563dba49550346aa9aa451e4/html5/thumbnails/7.jpg)
o Long term scheduler: Admite nuevosprocesos a memoria (controla el grado de multiprogramación)
o Medium term scheduler: Swapping (intercambio) entre disco y memoriacuando el SO lo determina (puededisminuir el grado de multiprogramación)
o Short term scheduler: Que proceso listose ejecuta
![Page 8: S.O MULTIPROGRAMACION (PROCESOS)](https://reader030.fdocument.pub/reader030/viewer/2022012319/563dba49550346aa9aa451e4/html5/thumbnails/8.jpg)
![Page 9: S.O MULTIPROGRAMACION (PROCESOS)](https://reader030.fdocument.pub/reader030/viewer/2022012319/563dba49550346aa9aa451e4/html5/thumbnails/9.jpg)
![Page 10: S.O MULTIPROGRAMACION (PROCESOS)](https://reader030.fdocument.pub/reader030/viewer/2022012319/563dba49550346aa9aa451e4/html5/thumbnails/10.jpg)
o Retornon Tiempo que transcurre entre que el proceso llega al
sistema hasta que completa su ejecucióno Espera
n Tiempo que el proceso se encuentra en el sistemaesperando (sin ejecutarse) (TR – Tcpu)
o Promediosn Promedios de los anteriores
![Page 11: S.O MULTIPROGRAMACION (PROCESOS)](https://reader030.fdocument.pub/reader030/viewer/2022012319/563dba49550346aa9aa451e4/html5/thumbnails/11.jpg)
o Nonpreemptiven Una vez que un proceso esta en estado de
ejecución, continua hasta que termina o se bloqueapor algún evento (por ej. I/O).
o Preemptiven El proceso en ejecución puede ser interrumpido y
llevado a la cola de listos por el SO. n Mayor overhead pero mejor servicion Un proceso no monopoliza el procesador.
![Page 12: S.O MULTIPROGRAMACION (PROCESOS)](https://reader030.fdocument.pub/reader030/viewer/2022012319/563dba49550346aa9aa451e4/html5/thumbnails/12.jpg)
o Cada proceso se coloca en la cola de listoso Cuando hay que elegir un proceso para
ejecutar, se selecciona el mas viejo en la cola de listos (FIFO).
o No favorece a ningún tipo de procesos, porque se van a ir ejecutando en orden de llegada, pero en principio podríamos decirque los CPU Bound terminan en su primer ráfaga, mientras que los I/O bound necesitan mas ráfagas (por su naturaleza)
![Page 13: S.O MULTIPROGRAMACION (PROCESOS)](https://reader030.fdocument.pub/reader030/viewer/2022012319/563dba49550346aa9aa451e4/html5/thumbnails/13.jpg)
Job Inst. Llega
da
CPU Prioridad
1 0 9 32 1 5 23 2 3 14 3 7 2
¿Tiempos de Retorno y Espera?
#Ejemplo 1TAREA “1” PRIORIDAD=3 INICIO=0[CPU,9]TAREA “2” PRIORIDAD=2 INICIO=1[CPU,5]TAREA “3” PRIORIDAD=1 INICIO=2[CPU,3]TAREA “4” PRIORIDAD=2 INICIO=3[CPU,7]
Scheduling – Ejemplo 1
Recordemos: En FCFS el criterio de selección es el orden de llegada!
![Page 14: S.O MULTIPROGRAMACION (PROCESOS)](https://reader030.fdocument.pub/reader030/viewer/2022012319/563dba49550346aa9aa451e4/html5/thumbnails/14.jpg)
o Política nonpreemptive que selecciona el proceso mas corto primero.
o Procesos cortos se colocan delante de procesos largos.
o Los procesos largos pueden sufrir starvation (Inanición).
o Veamos el ejemplo 1 nuevamente
![Page 15: S.O MULTIPROGRAMACION (PROCESOS)](https://reader030.fdocument.pub/reader030/viewer/2022012319/563dba49550346aa9aa451e4/html5/thumbnails/15.jpg)
o Política basada en un relojo Quantum: Medida que determina cuanto
tiempo podrá usar el procesador cada proceso.n Pequeño: Overhead de Context Switchn Grande: ¿Pensar?
o Cuando un proceso es expulsado de la CPU es colocado al final de la Ready Queue y se selecciona otro (FIFO Circular)
![Page 16: S.O MULTIPROGRAMACION (PROCESOS)](https://reader030.fdocument.pub/reader030/viewer/2022012319/563dba49550346aa9aa451e4/html5/thumbnails/16.jpg)
o Recordar: Cada proceso se ejecuta durante una fracción de tiempo àQUANTUM (Q)
o Existe “contador” que indica las unidades de CPU en las que se ejecuto. Cuando el mismo llega a 0 (cero) el proceso es expulsado.
o Existen 2 variantes con respecto al valor inicial del “contador” cuando un proceso es asignado a la CPUn TIMER VARIABLEn TIMER FIJO
![Page 17: S.O MULTIPROGRAMACION (PROCESOS)](https://reader030.fdocument.pub/reader030/viewer/2022012319/563dba49550346aa9aa451e4/html5/thumbnails/17.jpg)
o El “contador” se inicializa en Q contador := Q
cada vez que un proceso es asignado a la CPU.
o Este Esquema:n Mas utilizado en los algoritmos RRn Utilizado por el simulador
Veamos el ejemplo 1 nuevamente
![Page 18: S.O MULTIPROGRAMACION (PROCESOS)](https://reader030.fdocument.pub/reader030/viewer/2022012319/563dba49550346aa9aa451e4/html5/thumbnails/18.jpg)
o El “contador” se inicializa a Q solo cuando su valor es 0 (cero)if (contador == 0) contador = Q;
o Es como si el “contador” se compartiera entre los procesos
o Ejemplo (Quantum = 4)n P1 toma la CPU y se ejecuta por 2 unidades n P2 (al dejar P1 la CPU) comienza con el contador = 2
![Page 19: S.O MULTIPROGRAMACION (PROCESOS)](https://reader030.fdocument.pub/reader030/viewer/2022012319/563dba49550346aa9aa451e4/html5/thumbnails/19.jpg)
0 4 8
Timer Variable
0 4 8
TimerFijo
= E/S
= Uso de CPU
Round Robin, Q=4
P1
P2
P1
P2
![Page 20: S.O MULTIPROGRAMACION (PROCESOS)](https://reader030.fdocument.pub/reader030/viewer/2022012319/563dba49550346aa9aa451e4/html5/thumbnails/20.jpg)
o Cada proceso tiene un valor que representa su prioridad
o Scheduler selecciona el proceso de mayor prioridad de los que se encuentran en la Ready Queue.
o Para simplificar à Una Ready Queue por cada nivel de prioridad
o Procesos de Baja Prioridad pueden sufrir starvation (Inanición)n Solución: Permitir a un proceso cambiar su
prioridad durante su ciclo de vida.o Puede ser preemptiveVeamos el ejemplo 1 nuevamente
![Page 21: S.O MULTIPROGRAMACION (PROCESOS)](https://reader030.fdocument.pub/reader030/viewer/2022012319/563dba49550346aa9aa451e4/html5/thumbnails/21.jpg)
![Page 22: S.O MULTIPROGRAMACION (PROCESOS)](https://reader030.fdocument.pub/reader030/viewer/2022012319/563dba49550346aa9aa451e4/html5/thumbnails/22.jpg)
o Versión Preemptive de SJFo Selecciona el proceso al cual le resta
menos tiempo de ejecución. o ¿A que tipo de procesos favorece?
à I/O Bound
Veamos el ejemplo 1 nuevamente
![Page 23: S.O MULTIPROGRAMACION (PROCESOS)](https://reader030.fdocument.pub/reader030/viewer/2022012319/563dba49550346aa9aa451e4/html5/thumbnails/23.jpg)
o Ciclo de Vida de un proceson Uso de CPU + Operaciones de I/O
o Cada dispositivo tiene su cola de procesos en espera
à I/O Scheduler (FCFS, SJF, etc.)o Vamos a considerar I/O independiente de la
CPUà Uso de CPU + Operaciones de I/O en
simultaneo
![Page 24: S.O MULTIPROGRAMACION (PROCESOS)](https://reader030.fdocument.pub/reader030/viewer/2022012319/563dba49550346aa9aa451e4/html5/thumbnails/24.jpg)
Job Inst. Llega
da
CPU E/S(Rec, Inst, dur)
1 0 5 (R1, 3, 2)2 1 4 (R2, 2, 2)3 2 3 (R3, 2, 3)
#Ejemplo 2RECURSO “R1”RECURSO “R2”RECURSO “R3”TAREA “1” INICIO=0[CPU,3] [1,2] [CPU,2]TAREA “2” INICIO=1[CPU,2] [2,2] [CPU,2]TAREA “3” INICIO=2[CPU,2] [3,3] [CPU,1]
![Page 25: S.O MULTIPROGRAMACION (PROCESOS)](https://reader030.fdocument.pub/reader030/viewer/2022012319/563dba49550346aa9aa451e4/html5/thumbnails/25.jpg)
Job Inst. Llega
da
CPU E/S(Rec, Inst, dur)
1 0 5 (R1, 3, 3)2 1 4 (R1, 1, 2)3 2 3 (R2, 2, 3)
#Ejemplo 3RECURSO “R1”RECURSO “R2”TAREA “1” INICIO=0[CPU,3] [1,3] [CPU,2]TAREA “2” INICIO=1[CPU,1] [1,2] [CPU,3]TAREA “3” INICIO=2[CPU,2] [2,3] [CPU,1]
![Page 26: S.O MULTIPROGRAMACION (PROCESOS)](https://reader030.fdocument.pub/reader030/viewer/2022012319/563dba49550346aa9aa451e4/html5/thumbnails/26.jpg)
o Scheduler actuales à Combinación de algoritmos vistos
o La Ready Queue es dividida en varias colas (Similar a prioridades).
o Cada cola definida posee su propio algoritmo de scheduling.
o Los procesos se colocan en las colas según una clasificación que realice el SO
o A su vez se existe un algoritmo que planifica las colas
o Realimentación à Un proceso puede cambiar de una cola a la otra
![Page 27: S.O MULTIPROGRAMACION (PROCESOS)](https://reader030.fdocument.pub/reader030/viewer/2022012319/563dba49550346aa9aa451e4/html5/thumbnails/27.jpg)
FIN
¿Consultas?