Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sistemas Operativos: Lección 3: Introducción A La Gestión de Procesos
Sistemas Operativos: Lección 3: Introducción A La Gestión de Procesos
Lección 3:
Introducción a la Gestión de Procesos
Jesús Carretero Pérez
Alejandro Calderón Mateos
José Daniel García Sánchez
Francisco Javier García Blas
José Manuel Pérez Lobato
María Gregoria Casares Andrés
• Introducción y conceptos básicos
Sistemas
Opera,vos
1
ADVERTENCIA
Sistemas
Opera,vos
2
Contenido
• Concepto de proceso.
• Ciclo de vida básico de un proceso.
• Información de un proceso.
• Multitarea.
• Cambio de contexto.
• Generación de ejecutables.
Sistemas
Opera,vos
3
Concepto de proceso
Sistemas
Opera,vos
4
Ejecución de programas
Programa Proceso A1
Memoria Principal
Ejecutable
A
Proceso A2
Sistemas
Opera,vos
5
Representación en memoria
montículo
datos
texto
Sistemas
Opera,vos
6
Contenido
• Concepto de proceso.
• Ciclo de vida básico de un proceso.
• Información de un proceso.
• Multitarea.
• Cambio de contexto.
• Generación de ejecutables.
Sistemas
Opera,vos
7
Ciclo de vida básico de un proceso
Tantos como
procesadores
Activación En ejecución
Fin
Espera de evento
Fin
Tiempo
Listo Bloqueado
Fin de rodaja
Ev 1
Ev 2
…
Ev 3
Sistemas
Opera,vos
9
Modelo
de
colas
simplificado:
Varios
procesadores
Procesos terminados
Fin de rodaja
Ev 1
Ev 2
Ev 3
Sistemas
Opera,vos
10
Contenido
• Concepto de proceso.
• Ciclo de vida básico de un proceso.
• Información de un proceso.
• Multitarea.
• Cambio de contexto.
• Generación de ejecutables.
Sistemas
Opera,vos
11
Información del proceso
• Tres categorías:
– Información almacenada en el procesador.
– Información almacenada en memoria.
– Información adicional gestionada por el sistema operativo.
Sistemas
Opera,vos
12
Información del proceso
Registros
especiales Mapa de memoria
del Proceso A
Mapa de memoria
del Proceso B
Registros Tablas del sistema operativo
Mapa de memoria
generales del Proceso C Tabla de procesos
BCP Proceso A BCP Proceso B BCP Proceso C
- Estado (registros) - Estado (registros) - Estado (registros)
Tablas SO - Identificación - Identificación - Identificación
PC - Control - Control - Control
- Tabla de memoria
SP Mapa de - Tabla de E/S
Estado Memoria - Tabla de ficheros
Sistemas
Opera,vos
13
Estado del procesador
Sistemas
Opera,vos
14
Imagen de memoria de un proceso
Sistemas
Opera,vos
15
Modelos de imagen de memoria:
Región única
• Proceso con única región de tamaño fijo.
– Usado en sistemas sin memoria virtual.
Sistemas
Opera,vos
16
Modelos de imagen de memoria:
Regiones múltiples
• Proceso con número fijo de regiones
de tamaño variable.
– Regiones prefijadas (texto, datos, pila). pila
– Cada región puede crecer.
– Con memoria virtual el hueco entre pila y
datos no consume recursos físicos. datos
texto
Sistemas
Opera,vos
17
Modelos de imagen de memoria:
Regiones múltiples
• Proceso con un número variable de regiones de
tamaño variable.
– Opción más avanzada (usada en versiones actuales de
Windows y UNIX).
– Un proceso se estructura en un número arbitrario de
regiones.
– Muy flexible:
• Regiones compartidas.
• Regiones con distintos permisos.
Sistemas
Opera,vos
18
Información del sistema operativo
Sistemas
Opera,vos
19
Contenidos del BCP
• Información de
identificación.
• Estado del
procesador.
• Información de control Ejemplo:
• Identificador del proceso.
del proceso.
• Identificador del proceso padre.
• Información sobre el usuario.
Sistemas
Opera,vos
20
Contenidos del BCP
Sistemas
Opera,vos
21
Contenidos del BCP
• Información de
identificación.
• Estado del procesador.
• Información de control
del proceso.
Al iniciar el proceso:
• Valores iniciales para el estado
del procesador.
Después de un cambio de
contexto:
• Copia de los valores del estado
del procesador.
Sistemas
Opera,vos
22
Información fuera del BCP
Sistemas
Opera,vos
23
Tabla de páginas
Sistemas
Opera,vos
24
Punteros de posición de los ficheros
Sistemas
Opera,vos
25
Ejemplo: Ejecución de un mandato
#include <sys/types.h>
#include <stdio.h>
int main(int argc, char** argv) {
pid_t pid;
pid = fork();
switch (pid) {
case -1: /* error */
prog cat f1
exit(-1);
case 0: /* proceso hijo */
if (execvp(argv[1], &argv[1])<0) { perror(“error”); }
break;
default:
printf(“Proceso padre”);
}
return 0;
}
Sistemas
Opera,vos
26
Servicio fork
¨ Devuelve:
¤ -‐1
el
caso
de
error.
¤ En
el
proceso
padre:
el
idenIficador
del
proceso
hijo.
¤ En
el
proceso
hijo:
0
Sistemas
Opera,vos
27
Servicio fork
Proceso A
FORK
Proceso A’
Sistemas
Opera,vos
28
Servicio exec
Sistemas
Opera,vos
29
Servicio fork
Proceso A
EXEC
Proceso
Proceso A’B
Sistemas
Opera,vos
30
Servicio exit
• void exit(status);
Sistemas
Opera,vos
31
Contenido
• Concepto de proceso.
• Ciclo de vida básico de un proceso.
• Información de un proceso.
• Multitarea.
• Cambio de contexto.
• Generación de ejecutables.
Sistemas
Opera,vos
32
Tipos de sistemas operativos
Sistemas Operativos
Multiproceso Monoproceso
(varios procesos en ejecución) (un único proceso)
Multiusuario Monousuario
Monousuario
(varios usuarios a (un único usuario
(un único usuario a la vez)
la vez) a la vez)
Sistemas
Opera,vos
33
Principios de la multitarea
Procesamiento
Entrada/salida
Tiempo
Sistemas
Opera,vos
34
Ejecución en un sistema multitarea
Proceso A
Proceso B Procesamiento
Entrada/salida
Listo
Proceso C SO
Procesador
Tiempo
Sistemas
Opera,vos
35
Ventajas de la multitarea
Sistemas
Opera,vos
36
Grado de multiprogramación
Proceso B
Proceso C
SO
Memoria
principal
Cada proceso reside 0%
totalmente en M.p Grado de multiprogramación
Sistemas
Opera,vos
37
Multiprogramación: uso de la CPU
Ejecución
1 proceso
E/S
2 procesos
Sistemas
Opera,vos
38
Multiprogramación y memoria
virtual
• Los sistemas con memoria virtual:
– Dividen el espacio direccionable de los procesos en
páginas.
– Dividen el espacio direccionable de la memoria física
principal en marcos de página.
Sistemas
Opera,vos
39
Necesidad
de
memoria:
Marcos de página por proceso Sistema
con
memoria
virtual
1 2 3 4
Nivel de Multiprogramación
Sistemas
Opera,vos
40
Rendimiento: Poca memoria física
• Al aumentar el grado de
multiprogramación:
– Desciende el tamaño del
conjunto residente de cada 100%
proceso.
% utilización de CPU
• Se produce hiperpaginación
antes de alcanzar un
porcentaje alto de uso de
CPU.
• Solución: Ampliación de
memoria principal.
Grado de multiprogramación
Sistemas
Opera,vos
41
Rendimiento: Mucha memoria física
• Al aumentar el grado de
multiprogramación:
– Desciende el tamaño del
conjunto residente de cada 100%
proceso.
% utilización de CPU
• Se alcanza un alto porcentaje de
utilización de CPU con menos
procesos de los que caben en
memoria.
Sistemas
Opera,vos
42
Contenido
• Concepto de proceso.
• Ciclo de vida básico de un proceso.
• Información de un proceso.
• Multitarea.
• Cambio de contexto.
• Generación de ejecutables.
Sistemas
Opera,vos
43
Cambios de contexto
• Acciones:
– Guardar el estado del procesador en el BCP del proceso
en ejecución.
– Restaurar el estado del nuevo proceso en el procesador.
Sistemas
Opera,vos
44
Cambio de contexto
Sistemas
Opera,vos
45
Tipos de cambio de contexto
Sistemas
Opera,vos
46
Contenido
• Concepto de proceso.
• Ciclo de vida básico de un proceso.
• Información de un proceso.
• Multitarea.
• Cambio de contexto.
• Generación de ejecutables.
Sistemas
Opera,vos
47
Formación de un proceso
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
Sistemas
Opera,vos
48
Generación de ejecutables
a.c b.c
Compilador Compilador
Linker (ld)
Fichero objeto ejecutable (contiene código y
p datos para todas las funciones definidas en a.c
y b.c)
Sistemas
Opera,vos
49
Editor de enlaces (linker)
Sistemas
Opera,vos
50
Ejemplo: Formato ELF
Sistemas
Opera,vos
51
Formato ELF
Sistemas
Opera,vos
52
Carga de ejecutable
DISCO
0 MEMORIA
ELF header
Virtual addr
Program header table Process image
(required for executables) 0x080483e0
init and shared lib
.text section segments
.data section
0x08048494
.bss section .text segment
(r/o)
.symtab
.rel.text 0x0804a010
.data segment
.rel.data (initialized r/w)
.debug
0x0804a3b0
Section header table .bss segment
(required for relocatables) (uninitialized r/w)
Sistemas
Opera,vos
53
Bibliotecas estáticas
a.c b.c
Compilador Compilador
librería estática: fichero
a.o b.o libc.a concatenando ficheros objeto
reubicables
Linker (ld)
fichero objeto ejecutable: incluye el código de la
p funciones de libc que emplea
Sistemas
Opera,vos
54
Bibliotecas estáticas y bibliotecas
dinámicas
n Bibliotecas estáticas: desventajas:
¨ código potencialmente duplicado en los ejecutables:
n disco (sistema de ficheros)
n espacio de memoria virtual de los procesos
¨ bugs en las bibliotecas à nueva versión à re-enlazar
Sistemas
Opera,vos
55
Bibliotecas dinámicas
a.c b.c
Compilador Compliador
a.o b.o
Linker (ld)
Biblioteca compartida
p libc.so
Sistemas
Opera,vos
57
Lecturas recomendada
• Básica • Complementarias
Sistemas
Opera,vos
58
SISTEMAS OPERATIVOS:
Lección 3:
Introducción a la Gestión de Procesos
• Introducción y conceptos básicos
Sistemas Opera,vos 59