You are on page 1of 23

Procesos(1)

Plan
Definicin de proceso

Componentes de un proceso

Estados de un proceso
Qu es un proceso?
Una abstraccin del SO para identificar un
programa en ejecucin.

Procesos
Componente esttica
Espacio de Direcciones (ED)
Componente dinmica
Estado de ejecucin - threads
Programa = Archivo ejecutable
(1)
Conjunto de mdulos compilados (.o) +
bibliotecas

Linking - creacin de un archivo ejecutable


Esttico
El archivo ejecutable contiene todos los mdulos y
datos necesarios durante ejecucin
Dinmico
El archivo ejecutable referencia mdulos que se
acceden en tiempo de carga
ELF format
ELF = Executable and Linkable Format

Formato standard de archivos ejecutables


6

Archivo ejecutable. Formato


ELF
Const int total =100;
Int numeros[total];
Int main() {
Int i; ELF Header
Int cte = 3;
For (i=1; i < total;
i++) {
Numeros[i] =
cte * i; Variables globales
} .data
inicializadas
}
Variables globales
no inicializadas
.Rodata read-only data

cdigo
7

ELF a ED
STACK

ELF Header
Bibliotecas
compartidas

.data HEAP

.Rodata Read-write data

Read-only data
Componentes de un
proceso
Espacio de direcciones

Estado de ejecucin

Recursos

Informacin
1. Estado de ejecucin
Programa en ejecucin (HARDWARE)
Registros
PC
Puntero pila, etc

Programa no est ejecutando (SOFTWARE / PCB?


Hardware dependiente)
PC
Registros
Puntero pila / Flags interrupciones, excepciones, etc
Estado de ejecucin
Depende de la arquitectura
2. Recursos

Informacin archivos
Abiertos
Directorios

Informacin de scheduling
Tiempo usado por proceso
Prioridad
Estadsticas consumo recursos
Estado
3. Espacio de direcciones
Qu espacio de direcciones tiene asignado
cada proceso?

Virtual o fsica
Proteccin de memoria
14

Proteccin memoria
Entre aplicaciones

SO aplicaciones

Mtodo simple: registros base and limit


are these protected?

Prog A
base reg
Prog B limit reg

Prog C
4. Otros
Identidad de un proceso (PID)

Propiedades
Permisos (superusuario - administrador)

Seales
Cul puede captar?
Cul ignora?
Qu es un proceso?
Una abstraccin del SO para identificar un
programa en ejecucin.

Un proceso requiere recursos y compite con otros


procesos por los mismos recursos

Procesos
Sistema operativo
Usuario
Varios procesos en memoria
Cdigo

Datos

Pila
Programa Cdigo
fuente ejecutable

Cdigo Heap

Datos SO

Pila
Estado
Heap Procesador
Gestin procesos
El SO debe mantener informacin sobre todos los
procesos que se ejecutan en el sistema
Mnima
Suficiente para tomar decisiones inteligentes
Estructura de datos de un
proceso
Process Control Block
(PCB)
estado proceso
Llamado task en Linux

El SO gestiona una tabla de nmero proceso


PCB

PC, registros

conj. archivos abiertos


Estados de un proceso

en
espera Necesita algn
Evento de recurso /
bloqueo se servicio no
completa disponible Exit,
excepcin
no
SO asigna CPU gestionada
crear
En
listo
ejecucin
zombie
SO decide
ejecutar otro
proceso
Ciclo de vida de un proceso
Estado zombie estado asume un proceso hasta
que el padre

obtiene Exit status del hijo

exit
Context switch de un
proceso a otro
Proceso P0 Sistema Proceso P1
operativo
System call o
ejecutar Interrupcin
Guardar
estado
en PCB0 estado?
Estado?
Recuperar
estado
PCB1
ejecutar
23

Concurrencia
1 procesador, 1 memoria, 1 recursos I/O

Imaginar mltiples CPUs

Cada CPU necesita: PC( program counter), SP (stack


pointer), DS (data segment), otros registros (glibc, ..)

Memoria

CPU1 CPU2 CPU3 CPU1

tiempo
Scheduler de procesos. Cola
de PCB

Cola procesos
header
listos

Cola dispositivo
header
1

Cola dispositivo
header
2

You might also like