Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Capítulo 3
Procesos
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
Concepto de proceso
• Proceso
– Programa en ejecución
– Unidad de procesamiento gestionada por el SO
• Información del proceso
– Imagen de memoria (core image)
– Estado del procesador (registros del modelo de programación)
– Bloque de control del proceso BCP
• Identificador “pid”
• “uid”
• Arvhivos abiertos
• Segmentos de memoria
• Temporizadores
• Señales
• Semáforos
• Puertos
E je c u c ió n Term ina
po O pe
i e m d o ra c
t a ió n
F in a n if i c E /S
P l
N u evo Final E /S
L is to B lo q u e a d o
• Ejecuta
P ro c e so B P ro c e so D P ro ce so C
• Muere o termina
• Ejecución del proceso P ro c e so E P ro c eso F
• Batch
• Interactivo
• Grupo de procesos
Sistemas operativos: una visión aplicada 6 © J. Carretero, F. García, P. de Miguel, F. Pérez
Usuario
• Usuario: Persona autorizada a utilizar un sistema
– Se identifica en la autenticación mediante:
• Código de cuenta
• Clave (password)
– Internamente el SO le asigna el “uid” (user identification)
• Super-usuario
– Tiene todos los derechos
– Administra el sistema
• Grupo de usuarios
– Los usuarios se organizan en grupos
• Alumnos
• Profesores
– Todo usuario ha de pertenecer a un grupo
• 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
N º procesos
1 m ás de 1
M on oproceso M ultiproceso
1
M on ousuario M on ousuario
N º usuarios
M ultiproceso
m ás de 1
M ultiusuario
P ro c esa m ie n to
E n trad a /s a lid a
T ie m p o
P ro c e so A
P ro c e sa d o r
T ie m p o
• Proceso nulo
P ro c e s o B
P ro c e s o C
SO
M e m o ria
p rin c ip a l
C a d a p ro c e s o re s id e 0%
to ta lm e n te e n M .p G ra d o d e m u ltip ro g ra m a c ió n
1 00 % 100 %
Lim itado por el dispositivo
% U tilización de U C P
% U tilización de U C P
de paginación
Lim itado por el dispositivo
de paginación
• 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
R eg istro s
esp ec iales M ap a d e m em o ria
d e l P ro ce so A
M ap a d e m em o ria
d e l P ro ceso B
R eg istro s Ta b la s d e l siste m a o p e ra tiv o
M ap a d e m em o ria
g en e rales d e l P ro ceso C Tab la d e p ro ceso s
B C P P ro ceso A B C P P ro ceso B B C P P ro ceso C
- E sta d o (r eg istr o s) - E sta d o (reg istro s) - E sta d o (reg istro s)
Tab las S O - Id e n tific ació n - Id en tificac ió n - Id en tificac ió n
PC - C o n tro l - C o n tro l - C o n tro l
- Tab la d e m em o ria
SP M apa de - Tab la d e E /S
E stad o M em oria - Tab la d e fich e ro s
E d itor
M ódulo M ódulo
fuente A fuente B
C om pilador o
ensam blador
M ontado r
O bjeto B ibliotecas
ejecutable del sistem a
C arg ador
E jecutab le en
m em oria
PILA
PR OC ESO PR O CESO
DATO S
TEXTO
R IED
• La información de traducción está en la tabla de páginas
• Preasignación de zona de intercambio: Todas las páginas están en disco, algunas están copiadas en marcos de página
M em o ria
M em o ria p rin c ip al
vir tu al
C ó digo
Tam a ñ o
D ato s D isco
Ta b la d e
p ág in a s
P ila
U n a tab la d e
p ág in a s
p or p ro ceso
IDFF PP
1 2 4 4 56 0
2 3 4 5 12 23 4 5
3 28 55 6 6
4 3 4 5 12 10 0 0 0
• 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
Ma p a d e
m e m o ria Ta b la d e p ro c e so s
C a rg a d o r
O b je to
e je c u ta b le Im a g e n BC P
d e l p ro c e so
Bib lio te c a
siste m a
Exit
Ejecución
o Es
ic ad pe
ra
n if do
M em oria
a po
Pl mi rE
u /S
ns
co
po
em
Ti
Listo Fin E/S Bloqueado
Expulsado al disco
Expulsado al disco
E n tra a l
s is te m a
in te rca m b io
Z on a d e
Listo y Fin E/S Bloqu eado y
P rocesos por lotes susp endido susp endido
en espera
R eg istro s
esp eciale s
Ta b la d e p ro ceso s
• 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
Procesos ligeros
Procesos ligeros
C ó digo
D atos
Thread 1 Thread n
R e gistros ...... R e gistros
P ila P ila
Procedim iento 1
P F
Espera
en E/S
Ejecución
paralela
Procedim iento 2
P F
Espera Procesam iento
en E/S
Trabajador
D istribuidor
Solicitudes
Solicitudes
Solicitudes
N úcleo N úcleo Núcleo
Puerto Puerto Puerto
• P. Ligero
– Paralelismo y variables compartidas
– Llamadas al sistema bloqueantes por proceso ligero
– Permite separación de tareas
– Permite división de tareas
– Aumenta la velocidad de ejecución del trabajo
– Programación concurrente
• Simplicidad versus exclusión en el acceso
• Imaginar otra llamada al mismo código
• Mutex
• Variables globales
• 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
M em oria
a
Pl rE
s um /S
n
co
po
em
Ti
Listo Fin E/S Bloqueado
Expulsado al disco
Expulsado al disco
E n tra a l
s is te m a
in te rc a m b io
Zona de
Listo y Fin E/S Bloqu eado y
P ro c e so s b atc h susp endido susp endido
e n e sp e ra
Sistemas operativos: una visión aplicada 42 © J. Carretero, F. García, P. de Miguel, F.
Pérez
Planificación de procesos
• Planificador : Selecciona el proceso
• Activador: Da control al proceso (cambio de contexto)
• Planificación
– A largo plazo (añadir procesos a ejecutar)
– A medio plazo (añadir procesos a RAM)
– A corto plazo (qué proceso tiene la UCP)
– Planificación de E/S
P la n ific a ció n a
la rg o p la z o Exit
M e m o r ia
Ejecu ción
• Tipos de planificación
– Sin expulsión: el proceso conserva la UCP mientras desee.
– Con expulsión: el SO quita la UCP al proceso
• Exige un reloj que interrumpe periódicamente
• Colas de procesos
– Por prioridad
– Por tipo
P alabra
R esu m en
C a becera de la S ubcola
B it 0 1 B C P -A
de P riorid ad 0
B it 1 0 C a becera de la S ubcola
de P riorid ad 1
C a becera de la S ubcola
B it 29 1 B C P -B B C P -D
de P riorid ad 29
B it 30 1 C a becera de la S ubcola
B C P -C B C P -E B C P -F
ba tch 1
B it 31 0 C a becera de la S ubcola
ba tch 0
Tabla de procesos
BCP1 BCP2 BCP3 BCP4 BCP5 BCP6 BCP7 BCP8 BCP9 B C P 1 0 B C P 11 B C P 12
0 7 6 1 11 5 0 8 9
2 4
P unte ros de las cola s
5 8 13 3 37 72 2 8 13 3 37 72 2 5
• Prioridades
– Fijas (problema de inanición)
– Aumentarlas con el envejecimiento
F in alizad o
Fin de b loqueo
Bloqueado L isto
E xpulsado
E jecució n R eserva
Cam bio de contexto. Com ienzo de eje cución
• 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
S eñ a l
P roce so
Función
tratam iento
C ód ig o
• 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 56 © J. Carretero, F. García, P. de Miguel, F.
Pérez
Temporizadores
• 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
PR O CESO S
CLIENTES
a) b) c)
S ervidor Servidor Servidor S ervidor
Padre Padre Padre H ijo
C liente A C liente A
SO SO SO SO
RED
• 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
• Identificación de procesos
• Entorno de un proceso
• Creación de procesos
• Cambio del programa de un proceso
• Esperar la terminación de un proceso
• Finalizar la ejecución de un proceso
• Información sobre procesos
Im a g e n d e l
p ro c e so A Ta b la d e p ro c e so s
BC P
A
El p ro c e so A h a c e u n fo rk y c re a
e l p ro c e so h ijo B
Ma p a d e
m e m o ria
Im a g e n d e l
p ro c e so A Ta b la d e p ro c e so s
Nu e vo PID
Im a g e n d e l BC P BC P
Nu e va d e sc rip c ió n d e m e m o ria
p ro c e so B A B
Distin to va lo r d e re to rn o (0 e n e l h ijo )
Ta b la d e p ro c e so s
Im a g e n El p ro c e so h a c e u n e xe c
d e l p ro c e so BC P
Ma p a d e
m e m o ria
Se b o rra la im a g e n d e m e m o ria
Ta b la d e p ro c e so s Se b o rra la d e sc rip c ió n d e la m e m o ria y re g istro s
Se c o n se rva e l PID
BC P
Ma p a d e
m e m o ria
Se c a rg a la n u e va im a g e n
C a rg a d o r
O b je to Ta b la d e p ro c e so s Se p o n e PC e n d ire c c ió n d e a rra n q u e
e je c u ta b le Im a g e n
d e l p ro c e so Se c o n se rva n lo s fd
BC P
Bib lio te c a
siste m a
• Servicios:
int exit(int status);
• Argumentos:
– Código de retorno al proceso padre
• Descripción:
– Finaliza la ejecución del proceso.
– Se cierran todos los descriptores de ficheros abiertos.
– Se liberan todos los recursos del proceso
• Servicios:
#include <sys/types.h>
pid_t wait(int *status);
• Argumentos:
– Devuelve el código de terminación del proceso hijo.
• Descripción:
– Devuelve el identificador del proceso hijo o -1 en caso de
error.
– Permite a un proceso padre esperar hasta que termine un
proceso hijo. Devuelve el identificador del proceso hijo y el
estado de terminación del mismo.
pid P pid P
pid P
fork() wait()
padre padre padre
texto
datos
pila
Init Init
Init Init Init w ait() w ait()
p _ cre a te
p _ crea te
p_ cre ate
N o in d e p en d .
P ro ce so P ro ce so
lig e ro D lig e ro C
P ro ce so
lig e ro B
p _ e xit
p _ jo in
p _ e xit
switch(pid) {
case -1: /* error del fork() */
perror ("fork"); exit(-1);
case 0: /* proceso hijo */
execvp(argumentos[0], argumentos);
perror("exec"); exit(-1);
default: /* padre */
/* establece el manejador */
act.sa_handler = tratar_alarma;
act.sa_flags = 0; /* ninguna acción específica
*/
sigaction(SIGALRM, &act, NULL);
alarm(5);
wait(&status);
} exit(0);
}
• 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 87 © J. Carretero, F. García, P. de Miguel, F.
Pérez
Creación de procesos
BOOL CreateProcess (
LPCTSTR lpszImageName,
LPTSTR lpszCommandLine,
LPSECURITY_ATTRIBUTES lpsaProcess,
LPSECURITY_ATTRIBUTES lpsaThread,
BOOL fInheritHandles,
DWORD fdwCreate,
LPVOID lpvEnvironment,
LPCTSTR lpszCurdir,
LPSTARTUPINFO lpsiStartInfo,
LPPROCESS_INFORMATION lppiProcInfo);
• Clases de prioridad
IDLE_PRIORITY_CLASS con prioridad base 4
BELOW_NORMAL_PRIORITY_CLASS con prioridad base 6
NORMAL_PRIORITY_CLASS con prioridad base 9
ABOVE_NORMAL_PRIORITY_CLASS con prioridad base 10
HIGH_PRIORITY_CLASS con prioridad base 13
REAL_TIME_PRIORITY_CLASS con prioridad base 24.
• Modificar o consultar la clase de prioridad
– BOOL SetPriorityClass(HANDLE hProcess,
DWORD fdwPriorityClass);
– DWORD GetPriorityClass(HANDLE hProcess);