Publicado el 5 de Julio del 2019
852 visualizaciones desde el 5 de Julio del 2019
394,1 KB
41 paginas
SISTEMAS OPERATIVOS:
PROCESOS
Planificación de procesos
ADVERTENCIA
2
¨ Este material es un simple guión de la clase: no son
los apuntes de la asignatura.
¨ El conocimiento exclusivo de este material no
garantiza que el alumno pueda alcanzar los
objetivos de la asignatura.
¨ Se recomienda que el alumno utilice los materiales
complementarios propuestos.
Sistemas Operativos – Planificación de procesos
Contenido
3
¨ Creación de procesos.
¨ Terminación de procesos.
¨ Ciclo de vida de un proceso.
¨ Tipos de planificación.
¨ Algoritmos de planificación.
Sistemas Operativos – Planificación de procesos
Creación de procesos
4
¨ Los SO proveen mecanismos para que los procesos puedan
crear otros procesos →Llamada al sistema
¨ El proceso de creación se puede repetir recursívamente
creándose una “estructura familiar” → Arbol de procesos
¨ Asignación de recursos al nuevo proceso:
¤ Los obtiene directamente del SO
¤ El padre debe repartir sus recursos con el proceso hijo o compartir todos
o parte de ellos con él.
n Se evita así que un proceso bloquee el sistema multiplicándose indefinidamente
Sistemas Operativos – Planificación de procesos
Creación de procesos
5
¨ Cuando se crea un proceso:
¤En términos de ejecución
n El padre continua ejecutándose en paralelo con su/s
hijo/s
n El padre espera a que alguno o todos sus hijos hayan
terminado
¤En términos del espacio en memoria
n El proceso hijo es un clon del proceso padre
n El proceso hijo tiene ya un programa cargado en
memoria
Sistemas Operativos – Planificación de procesos
Creación de procesos en UNIX
6
¨ En la familia Unix se distingue entre
crear procesos y ejecutar nuevos
programas.
¨ La llamada al sistema para crear
un nuevo proceso se denomina
fork()
¨ Esta llamada crea una copia casi
idéntica del proceso padre
¤ Ambos procesos, padre e hijo, continúan
ejecutándose en paralelo
¤ El padre obtiene como resultado de la
llamada a fork() el pid del hijo y el hijo
obtiene 0
¤ Algunos recursos no se heredan (p.ej.
señales pendientes)
Sistemas Operativos – Planificación de procesos
Proceso P
Proceso H
pid H
0
fork()
Kernel
Creación de procesos en UNIX
7
¨ El proceso hijo puede invocar
la llamada al sistema exec*()
¤ sustituye su imagen en memoria
por la de un programa diferente
¨ El padre puede dedicarse a
crear más hijos, o esperar a
que termine el hijo
¤ wait() lo saca de la cola de
“listos” hasta que el hijo termina
sh
Proceso H
exec()
Kernel
Vi
Disco
Sistemas Operativos – Planificación de procesos
Jerarquía de procesos (pstree)
8
Sistemas Operativos – Planificación de procesos
9
Creación de procesos:
Copy on Write (COW)
¨ Ineficiencias del modelo fork()
¤ Se copian muchos datos que podrían
compartirse
¤ Si al final se carga otra imagen,
todavía es peor porque todo lo
copiado se deshecha
¨ Muchos UNIX usan COW
¤ Copy-on-Write es una técnica que
retrasa o evita la copia de los datos al
hacer el fork
¤ Los datos se marcan de manera que si
se intentan modificar se realiza una
copia para cada proceso (padre e hijo)
¤ Ahora fork() sólo copia la tabla de
páginas del padre (no las páginas) y
crea un nuevo BCP para el hijo
BCP padre
BCP hijo
Tabla de
páginas del
proceso
padre
Tabla de
páginas del
proceso hijo
Páginas de memoria
del proceso padre
Ejemplo de compartición para evitar duplicar datos
Sistemas Operativos – Planificación de procesos
Creación de procesos en Linux
10
fork:
“Copia al proceso padre
y le da una nueva
identidad al hijo”
Obtener entrada libre en
Tabla de Procesos
Copiar BCP del padre
Duplicar mapa de
M del padre
(incluyendo pilas)
También limpiar
señales, eventos
…
Estado ß listo
PCB en cola de listos
Sistemas Operativos – Planificación de procesos
Creación de procesos en Linux
11
exec:
“Cambia la imagen de
M de un proceso usando
como “recipiente” uno
previo”
Sistemas Operativos – Planificación de procesos
Liberar imagen de
M del proceso
Leer ejecutable
Crear nueva
imagen M à BCP
Cargar secciones
.texto y .datos
Crear pila inicial U
Crear pila S: dir.
principio programa
Inicio BCP: regs.;
PC ß dir SO: RETI
Contenido
12
¨ Creación de procesos.
¨ Terminación de procesos.
¨ Ciclo de vida de un proceso.
¨ Tipos de planificación.
¨ Algoritmos de planificación.
Sistemas Operativos – Planificación de procesos
Terminación de procesos
13
¨ Cuando un proceso termina todos los recursos
asignados son liberados:
¤ memoria, ficheros abiertos, entradas en tablas,...
¨ y el kernel notifica al proceso padre el evento.
¨ Un proceso puede terminar de 2 formas:
n Voluntariamente: Llamada al sistema exit()
n Involuntariamente:
n Excepciones: división por cero, violación de segmento
n Abortado por el usuario (ctrl-c) u otro proceso (kill), es decir,
señales que no puede manejar o ignorar
Sistemas Operativos – Planificación de procesos
Terminación de procesos
14
¨ Cuando un proceso termina pueden suceder dos
cosas:
¤ Sus hijos no se ven afectados
¤ Todos los hijos acaban también → terminación en cascada
(Ej. VMS)
¨ En Unix,
¤ los hijos del proceso terminado pasan a depender del
proceso init
¤ el proceso finalizado pasa a estado Zombie hasta que el
proceso padre recoge su código de finalización
Sistemas Operativos – Planificación de procesos
¿Cuándo se elimina el BCP?
15
¨ Las terminación de un proceso y la eliminación de su BCP son
tareas diferenciadas
¤ Cuando el padre obtiene la información del hijo, se procede a eliminar
las estructuras de datos
¤ Llamada al sistema wait()
n Bloquea al proceso hasta que termina el/un hijo
n Devuelve el pid del hijo finalizado y
Sistemas Operativos – Planificación de procesos
Contenido
16
¨ Creación de procesos.
¨ Terminación de procesos.
¨ Ciclo de vida de un proceso.
¨ Tipos de planificación.
¨ Algoritmos de planificación.
Sistemas Operativos – Planificación de procesos
Ciclo de vida básico de un proceso
17
Activación
En ejecución
Tantos como
procesadores
Fin
Espera de evento
Listo
Fin
Tiempo
Bloqueado
Nuevos
Procesos
Fin de bloqueo por evento
Sistemas Operativos – Planificación de procesos
Expulsión al disco (swap)
18
¨ Cuando existen muchos procesos en ejecución el
rendimiento puede bajar por excesiva paginación.
¤ Solución: El Sistema Operativo puede expulsar
totalmente procesos al área de intercambio del disco.
¨ Introduce nuevos estados de los procesos.
¤ Bloqueado y suspendido.
¤ Listo y suspendido.
Sistemas Operativos – Planificación de procesos
Ciclo de vida básico de un proceso
19
Nuevos
Procesos
Activación
En ejecución
Tantos como
procesadores
Fin
Espera de evento
Listo
Fin
Tiempo
Fin de bloqueo por evento
Expulsión
Recuperación
Listo y
suspendido
Fin de bloqueo por evento
Bloqueado
Expulsión
Bloqueado y
suspendido
Sistemas Operativos – Planificación de procesos
Contenido
20
¨ Creación de procesos.
¨ Terminación de procesos.
¨ Ciclo de vida de un proceso.
¨ Tipos de planificación.
¨ Algoritmos de planificación.
Sistemas Operativos – Planificación de procesos
Niveles de planificación
21
¨ Planificación a corto plazo
¤ Selecciona el siguiente proceso a ejecutar.
¨ Planificación a medio plazo
¤ Selecciona qué procesos se añaden o se retiran (expulsión a
swap) de memoria principal.
¨ Planificación a largo plazo
¤ Realiza el control de admisión de procesos a ejecutar.
¤ Muy usada en sistemas batch.
Sistemas Operativos – Planificación de procesos
Tipos de planificación
22
¨ No apropiativa.
¤ El proceso en ejecución conserva el uso de la CPU
mientras lo desee.
¨ Apropiativa.
¤ El sistema operativo puede expulsar a un proceso de la
CPU.
Sistemas Operativos – Planificación de procesos
Puntos de decisión de planificación
23
¨ Momentos en los que se puede decidir la planificación
de un proceso:
1. Cuando un proceso se bloquea en espera de un evento
n Realización de una llamada al sistema.
2. Cuando se produce una interrupción.
n Interrupción del reloj.
n Interrupción de fin de E/S.
3.
Fin de proceso.
¨ Planificación no apropiativa: 1 y 3.
¤ Windows95, MacOS anteriores a versión 8.
¨ Planificación apropiativa: 1, 2 y 3.
Sistemas Operativos – Planificación de procesos
Colas de procesos
24
¨ Los procesos listos para ejecutar se mantienen en
una cola.
¨ Alternativas:
¤ Cola única.
¤ Colas por tipos de procesos.
¤ Colas por prioridades.
Sistemas Operativos – Planificación de procesos
Colas de procesos
25
Sistemas Operativos – Planificación de procesos
Colas de procesos: Implementación
26
¨ El SO mantiene diversas colas de procesos.
¨ Se implementa con punteros internos al BCP.
¨ Acceso eficiente.
Sistemas Operativos – Planificación de procesos
Contenido
27
¨ Creación de procesos.
¨ Terminación de procesos.
¨ Ciclo de vida de un proceso.
¨ Tipos de planificación.
¨ Algoritmos de planificación.
Sistemas Operativos – Planificación de procesos
Planificación: Medidas
28
¨ Utilización de CPU:
¤ Porcentaje de tiempo que se usa la CPU.
¤ Objetivo: Maximizar.
¨ Productividad:
¤ Número de trabajos terminados por unidad de tiempo.
¤ Objetivo: Maximizar.
¨ Tiempo de retorno (Tq)
¤ Tiempo que está un proceso en el sistema. Instante final
(Tf) menos instante inicial (Ti).
¤ Objetivo: Minimizar.
Sistemas Operativos – Planificación de procesos
Planificación: Medidas
29
¨ Tiempo de servicio (Ts):
¤ Tiempo dedicado a tareas productivas (cpu,
entrada/salida). Ts = TCPU+ TE/S
¨ Tiempo de espera (Te):
¤ Tiempo que un proceso pasa en colas de espera.
Te = Tq – Ts
¨ Tiempo de retorno normalizado (Tn):
¤ Razón entre tiempo de retorno y tiempo de servicio.
Tn = Tq/Ts
¤ Indica el retardo experimentado.
Sistemas Operativos – Planificación de procesos
Asignación FCFS
30
¨
Comentarios de: Planificación de procesos - Sistemas Operativos: procesos (1)
Gracias