Sistemas operativos: una visión aplicada
Capítulo 3 Procesos
Sistemas operativos: una visión aplicada 1 © J. Carretero, F. García, P. de Miguel, F. Pérez
Contenido
• Procesos• Multitarea• Información del proceso• Formación de un proceso• Estados del proceso• Procesos ligeros• Planificación• Señales y excepciones• Temporizadores• Servidores y demonios• Servicios POSIX• Servicios Win32
Sistemas operativos: una visión aplicada 2 © J. Carretero, F. García, P. de Miguel, F. Pérez
Estados básicos de un proceso
Listo Bloqueado
EjecuciónOperación E/S
Final E/S
Termina
Nuevo
Fin tiempo
Planific
ado
Sistemas operativos: una visión aplicada 3 © J. Carretero, F. García, P. de Miguel, F. Pérez
Jerarquía de procesos
Proc. Inic.
Inicio Inicio
ShellShell
Editor
Dem. Impr. Dem. Com..
Proceso A
Proceso B Proceso D Proceso C
Proceso E Proceso F
InicioInicio
Sistemas operativos: una visión aplicada 4 © J. Carretero, F. García, P. de Miguel, F. Pérez
Tipos de sistemas operativos
Nº procesos
1
1
más de 1
más de 1
Nº usuarios
MonoprocesoMonousuario
MultiprocesoMonousuario
MultiprocesoMultiusuario
Sistemas operativos: una visión aplicada 5 © J. Carretero, F. García, P. de Miguel, F. Pérez
Base de la multitarea
Procesamiento
Entrada/salidaTiempo
Sistemas operativos: una visión aplicada 6 © J. Carretero, F. García, P. de Miguel, F. Pérez
Ejemplo de ejecución en un sistema multitarea
• Proceso nulo
ProcesamientoEntrada/salidaListoSO
Tiempo
Proceso A
Proceso B
Proceso C
Procesador
Sistemas operativos: una visión aplicada 7 © J. Carretero, F. García, P. de Miguel, F. Pérez
Proceso B
Proceso A
Proceso CSO
Cada proceso residetotalmente en M.p
Memoriaprincipal
Grado de multiprogramación
Util
izac
ión
del p
roce
sado
r 100%
0%
Grado de multiprogramación
Sistemas operativos: una visión aplicada 8 © J. Carretero, F. García, P. de Miguel, F. Pérez
Nivel de Multiprogramación
Al aumentar el nivel de multiprogramación a cada proceso le tocan menos marcos de página
Mar
cos
de p
ágin
a po
r pr
oces
o
1 2 3 4
Necesidades de memoria principal
Sistemas operativos: una visión aplicada 9 © J. Carretero, F. García, P. de Miguel, F. Pérez
Nivel de Multiprogramación
% U
tiliz
ació
n de
UC
P
MEMORIA GRANDE
Limitado por el dispositivode paginación
100 %
Nivel de Multiprogramación
Limitado por el dispositivode paginación
% U
tiliz
ació
n de
UC
P
100 %
MEMORIA PEQUEÑA
Rendimiento del procesador y grado de multiprogramación
• Necesidades de memoria principal: Sistema con memoria virtual
Sistemas operativos: una visión aplicada 10 © J. Carretero, F. García, P. de Miguel, F. Pérez
Información de un proceso II
Mapa deMemoria
Mapa de memoria del Proceso A
Tablas SOPC
SP
Estado
Mapa de memoria del Proceso B
Mapa de memoria del Proceso C
Registrosgenerales
Registrosespeciales
Tablas del sistema operativo
Tabla de procesos
- Tabla de memoria- Tabla de E/S- Tabla de ficheros
BCP Proceso BBCP Proceso A BCP Proceso C- - Identificación- Control
Estado (registros)- - Identificación- Control
Estado (registros) - - Identificación- Control
Estado (registros)
Sistemas operativos: una visión aplicada 11 © J. Carretero, F. García, P. de Miguel, F. Pérez
Preparación del código de un proceso
Módulofuente A
Módulofuente B
Compilador oensamblador
Móduloobjeto A
Móduloobjeto B
Otrosobjetos
Montador
Objetoejecutable
Cargador
Editor
Ejecutable enmemoria
Problema
Bibliotecasdel sistema
Sistemas operativos: una visión aplicada 12 © J. Carretero, F. García, P. de Miguel, F. Pérez
PROCESOPROCESO
TEXTO
DATOS
PILA
Imagen de memoria II
Sistemas operativos: una visión aplicada 13 © J. Carretero, F. García, P. de Miguel, F. Pérez
Imagen de memoria III
Memoriavirtual
Disco
Memoriaprincipal
Tabla depáginas
Una tabla depáginas
por proceso
Código
Datos
Pila
RIED
Tamaño
Sistemas operativos: una visión aplicada 14 © J. Carretero, F. García, P. de Miguel, F. Pérez
Compartir información
Tabla deficheros
Tabla deficheros
Tabla deficheros
BCP 4 BCP 7 BCP 23
23 23
24456IDFF PP
0
544563 4563
34512 2345
63356 56
28 5566
53684 4
34512 10000
33678 2
0 0 01 1
1
12 2
2
23 3
3
34 4
4
4
fd
0
fd fd
Sistemas operativos: una visión aplicada 15 © J. Carretero, F. García, P. de Miguel, F. Pérez
Formación de un proceso
Objetoejecutable
Bibliotecasistema
Mapa dememoria
Imagendel proceso
Tabla de procesos
BCP
Cargador
Sistemas operativos: una visión aplicada 16 © J. Carretero, F. García, P. de Miguel, F. Pérez
Estados de un proceso
Ejecución
Listo ysuspendido
Listo
Bloqueado ysuspendido
Bloqueado
Planificado
Tiempo consumido
Espera por E/S
Fin E/S
Exit
Fin E/S
Exp
ulsa
do a
l dis
co
Exp
ulsa
do a
l dis
co
Rec
upe
rado
del
dis
co
Entra alsistema
Mem
oria
Procesos por lotesen espera
Zon
a de
inte
rcam
bio
Sistemas operativos: una visión aplicada 17 © J. Carretero, F. García, P. de Miguel, F. Pérez
Interrupción: se salva el estado
PC
SP
Estado
Registrosgenerales
Registrosespeciales
Tabla de procesos
Est
ado BCP Proceso BBCP Proceso A BCP Proceso N
Información deControl
Información deControl
Información deControl
Información deidentificación
Información deidentificación
Información deidentificación
Estado(registros)
Estado(registros)
Estado(registros)
Sistemas operativos: una visión aplicada 18 © J. Carretero, F. García, P. de Miguel, F. Pérez
Proceso
Procesos ligeros
Procesos ligeros o threads
Sistemas operativos: una visión aplicada 19 © J. Carretero, F. García, P. de Miguel, F. Pérez
Estados del proceso
Ejecución
Listo ysuspendido
Listo
Bloqueado ysuspendido
Bloqueado
Planificado
Tiempo consumido
Espera por E/S
Fin E/S
Exit
Fin E/S
Exp
ulsa
do a
l dis
co
Exp
ulsa
do a
l dis
co
Rec
upe
rado
del
dis
coEntra alsistema
Mem
oria
Procesos batchen espera
Zon
a de
inte
rcam
bio
Sistemas operativos: una visión aplicada 20 © J. Carretero, F. García, P. de Miguel, F. Pérez
Planificación de procesos
Ejecución
Listo ysuspendido
Listo
Bloqueado ysuspendido
BloqueadoFin E/S
Exit
Entra alsistema
Planificación a corto plazo
Planificación a medio plazo
Planificación alargo plazo
Mem
oria
Sw
apProcesos Batchen espera
Sistemas operativos: una visión aplicada 21 © J. Carretero, F. García, P. de Miguel, F. Pérez
Colas de procesos
Cabecera de la Subcolade Prioridad 0
Cabecera de la Subcolade Prioridad 29
Cabecera de la Subcolade Prioridad 1
Cabecera de la Subcolabatch 1
Cabecera de la Subcolabatch 0
BCP-A
BCP-B
BCP-C BCP-E BCP-F
BCP-D
PalabraResumen
Bit 0
Bit 1
Bit 29
Bit 30
Bit 31
1
0
1
1
0
Sistemas operativos: una visión aplicada 22 © J. Carretero, F. García, P. de Miguel, F. Pérez
Tabla de procesos
BCP1 BCP7BCP2 BCP8BCP3 BCP9BCP4 BCP10BCP5 BCP11BCP6 BCP12
1 90 56 11 87 0
4Punteros de las colas
2
Implementación de las colas de procesos
Sistemas operativos: una visión aplicada 23 © J. Carretero, F. García, P. de Miguel, F. Pérez
Planificación en Windows NT
Iniciado Situar en la colade listos
Reiniciado
Ejecuciónfinalizada
Bloqueado
Esperaterminada
Cambio de contexto. Comienzo de ejecución
Fin de bloqueo
Seleccionadopara
ejecución
Expulsado
Expulsado
Pila del kernelen swap
Pila del kernel en memoria
Listo
ReservaEjecución
Finalizado
Transición
Bloqueado
Sistemas operativos: una visión aplicada 24 © J. Carretero, F. García, P. de Miguel, F. Pérez
Señales
Señal
Código
ProcesoFunción
tratamiento
Sistemas operativos: una visión aplicada 25 © J. Carretero, F. García, P. de Miguel, F. Pérez
Proceso servidor
PROCESOSERVIDOR
PROCESOSCLIENTES
RECURSO
Sistemas operativos: una visión aplicada 26 © J. Carretero, F. García, P. de Miguel, F. Pérez
Funcionamiento de un proceso servidor
Puerto A Puerto A Puerto A Puerto B
ServidorPadre
ServidorHijo
Cliente A Cliente A
a) b) c)
ServidorPadre
ServidorPadre
Sistemas operativos: una visión aplicada 27 © J. Carretero, F. García, P. de Miguel, F. Pérez
Procesos cliente y servidor en máquinas distintas
ClientePuerto
Servidorficheros
Servidorimpresión
Servidore_mail
SO SO SO SO
RED
Sistemas operativos: una visión aplicada 28 © J. Carretero, F. García, P. de Miguel, F. Pérez
Servicios POSIX: fork
Imagen delproceso B
Tabla de procesos
BCPA
Mapa dememoria
Imagen delproceso A Tabla de procesos
BCPA
BCPB
Mapa dememoria
Imagen delproceso A
Nuevo PIDNueva descripción de memoriaDistinto valor de retorno (0 en el hijo)
El proceso A hace un fork y crea el proceso hijo B
Sistemas operativos: una visión aplicada 29 © J. Carretero, F. García, P. de Miguel, F. Pérez
Objetoejecutable
Bibliotecasistema
Mapa dememoria
Imagendel proceso
Tabla de procesos
BCP
Mapa dememoria
Imagendel proceso
Cargador
Tabla de procesos
BCP
Mapa dememoria
Tabla de procesos
BCP
El proceso hace un exec
Se borra la imagen de memoriaSe borra la descripción de la memoria y registrosSe conserva el PID
Se carga la nueva imagenSe pone PC en dirección de arranqueSe conservan los fd
Servicios POSIX: exec
• El exec cambia el programa de un proceso
Sistemas operativos: una visión aplicada 30 © J. Carretero, F. García, P. de Miguel, F. Pérez
Uso normal de los servicios
fork()
exec() exit()
wait()pid P
padre
pid H
padre
pid P
padre
zombie
pid P
hijohijopid H
hijopid H
pid P pid P pid P pid Ppid Hpid H
texto
pila
datos
Ficheros, tuberías, ...
Sistemas operativos: una visión aplicada 31 © J. Carretero, F. García, P. de Miguel, F. Pérez
Evolución de procesos I
• El padre muere: INIT acepta los hijos
exit()
Init
Proceso Afork()
Init
Proceso B
Proceso A
Init
Proceso B
Proceso A
wait()Init
wait()Init
exit()Proceso BProceso B
Sistemas operativos: una visión aplicada 32 © J. Carretero, F. García, P. de Miguel, F. Pérez
Evolución de procesos II
• Zombie: el hijo muere y el padre no hace wait
wait()
Init
Proceso B
Proceso A
Init
Proceso A
exit()Proceso B
Init
Proceso A
zombieProceso B
Init
zombieProceso B
Proceso A
Init
Proceso Afork()
Sistemas operativos: una visión aplicada 33 © J. Carretero, F. García, P. de Miguel, F. Pérez
Jerarquía de procesos ligeros
No independ.
Proceso ligero A
p_join
p_exit
p_exit
p_exit
p_create
p_createp_create
Proceso ligero B
Proceso ligero D
Proceso ligero C