PROCESOS
Todas las computadoras modernas ofrecen varias cosas
al mismo tiempo.
Consideremos una PC de usuario. Cuando se arranca el
sistema se inician muchos procesos en forma secreta,
lo que a menudo el usuario desconoce. Por ejemplo, se
podra iniciar un proceso para esperar el correo
electrnico entrante; otro que permite al antivirus
comprobar peridicamente la disponibilidad de nuevas
definiciones de virus; algunos procesos de usuario
explcitos, por ejemplo, imprimir archivos y quemar un
CD-ROM, y todo esto mientras el usuario navega por la
Web. Toda esta actividad se tiene que administrar, y en
este caso un sistema de multiprogramacin con soporte
para mltiples procesos es muy til.
PROCESOS
El software ejecutable en la computadora, incluye al
sistema operativo, se organiza en varios procesos
secuenciales. Un proceso no es ms que una
instancia de un programa en ejecucin, incluyendo
los valores actuales del contador de programa, los
registros y las variables.
La CPU real conmuta de un proceso a otro, pero
para entender el sistema es mucho ms fcil pensar en
una coleccin de procesos que se ejecutan en (pseudo)
paralelo, en vez de tratar de llevar la cuenta de cmo la
CPU conmuta de programa en programa. Esta
conmutacin rpida de un proceso a otro se
conoce como multiprogramacin.
PROCESOS
EL MODELO DE PROCESO
Un contador de programa
C
D
Procesos
A
B
D
C
B
A
Tiempo
(a)
a.
b.
c.
(b)
(c)
Multiprogramacin de 4 programas
Modelo conceptual de 4 procesos secuenciales independientes
Solo un proceso activo en cada instante
PROGRAMA Y PROCESO
La idea clave es que un proceso es una actividad de cierto
tipo: tiene un programa, una entrada, una salida y un
estado.
Varios procesos pueden compartir un solo procesador
mediante el uso de un algoritmo de planificacin para
determinar cundo se debe detener el trabajo en un
proceso para dar servicio a otro.
PROCESOS
CREACIN/TERMINACIN DE PROCESOS
Principales eventos
que causan la
creacin de
procesos
1.
2.
3.
4.
Condiciones que
terminan un proceso
1. Normal exit
(voluntario)
2. Error exit (voluntario)
3. Fatal error
(involuntario)
4. Asesinado por otro
proceso (involuntario,
seal) o suicidado
(voluntario, seal)
CREACIN DE UN PROCESO
Hay cuatro eventos principales que provocan la
creacin de procesos:
1. El arranque del sistema.
2. La ejecucin, desde un proceso, de una
llamada al sistema para creacin de procesos.
3. Una peticin de usuario para crear un proceso.
4. El inicio de un trabajo por lotes.
TERMINACION DE UN PROCESO
PROCESOS
ESTADOS DE PROCESOS
planificador
exit
Ejecutando
1
2
3
Bloqueado
Listo
fork()
Posibles estados de un procesos
Ejecutndose
Bloqueado
Listo o Preparado
PROCESOS
IMPLEMENTAR EL MODELO DE PROCESOS
Gestin de procesos
Registros
Contador de programa
Palabra de estado del programa
Puntero de pila
Estado del proceso
Prioridad
Parmetros de planificacin
Identificador de proceso
Proceso padre
Grupo del proceso
Seales
Tiempo de inicio del programa
Tiempo de CPU consumido
Tiempo de CPU de los hijos
Hora para la siguiente alarma
Gestin de Memoria
Puntero al segmento
de cdigo
Puntero al segmento
de datos
Puntero al segmento
de pila
Gestin de Archivos
Directorio raz
Directorio de trabajo
Descripciones de
archivos
Identificador de usuario
Identificador de grupo
INTERRUPCIONES
Vector de interrupciones, Con cada clase de E/S hay una
ubicacin asociada (parte final de la memoria), a la cual se le
llama vector de interrupcin. Esta ubicacin contiene la
direccin del procedimiento del servicio de
interrupciones.
Una interrupcin es una suspensin temporal de la
ejecucin de unproceso, para pasar a ejecutar una
subrutina de servicio de interrupcin, la cual, por lo
general, no forma parte del programa, sino que pertenece
alsistema
operativo.
Una
vez
finalizada
dicha
subrutina, se reanuda la ejecucin del programa. Las
interrupciones surgen de la necesidad que tienen
losdispositivos perifricosdesean enviar informacin
al procesador principal de un sistema informtico.
PROCESOS
IMPLEMENTACIN DE PROCESOS
1. El hardware coloca el contador de programa en la pila.
2. El hardware carga el nuevo contador de programa desde el vector de
interrupcin.
3. Un procedimiento en ensamblador guarda los registros.
4. Un procedimiento en ensamblador establece una nueva pila.
5. Se ejecuta un servicio de interrupcin en C (normalmente lee y guarda en
un buffer la entrada).
6. El planificador elige qu proceso se va a ejecutar a continuacin.
7. Un procedimiento en C regresa al cdigo en ensamblador.
8. El procedimiento en ensamblador inicia el nuevo proceso actual.
Esqueleto de lo que hace el SO cuando llega una
interrupcin.
Cuando el proceso termina el SSOO muestra un carcter
indicador y espera un nuevo comando.
Cuando recibe el comando carga un nuevo programa en
memoria sobrescribiendo el anterior.
HILOS
Por qu alguien querra tener un tipo de proceso dentro
de otro proceso? Resulta ser que hay varias razones de tener
estos miniprocesos, conocidos como hilos.
El primer hilo
interacta slo con el
usuario, el segundo
vuelve a dar formato
al documento cuando
se le indica y el
tercero escribe el
contenido de la RAM
al disco en forma
peridica.
Procesador
de palabras
con tres hilos
CONCEPTO DE MUTIHILO
MODELO DE PROCESO
CON UN NICO HILO Y MUTIHILO
IMPLEMENTACIN DE HILOS
Dos categoras
Hilos a nivel de usuario
Hilos a nivel de ncleo o Kernel
THREADS
IMPLEMENTACIN DE THREADS EN ESPACIO DE KERNEL
Proceso
Thread
Espacio
de
Usuario
Espacio
del
Kernel
Kernel
Tabla de procesos
Tabla de threads
THREADS
IMPLEMENTACIN DE THREADS EN ESPACIO DE KERNEL
Ventajas:
- El bloqueo de un thread no bloquea todos los threads del
proceso que lo contiene.
Desventajas:
- La creacin/destruccin de threads es ms cara en el kernel que
en espacio de usuario.
- El cambio de contexto de threads tambin es ms caro
THREADS
IMPLEMENTACIN DE THREADS EN ESPACIO DE USUARIO
Proceso
Thread
Espacio
de
Usuario
Espacio
del
Kernel
Kernel
Tabla de threads
Tabla de procesos
THREADS
IMPLEMENTACIN DE THREADS EN ESPACIO DE USUARIO
Ventajas:
- Se puede tener threads en sistemas operativos que no los
soportan.
- El cambio de contexto es mucho ms rpido que si hay que
comunicarlo al kernel.
- Cada proceso puede tener su propio algoritmo de planificacin
threads.
Desventajas:
- Un thread provoca una falta de pgina: bloquea al proceso
- los threads tienden a monopolizar la CPU
En ejecucin
Listo
Bloqueado
Finalizado
Las operaciones relacionadas al cambio de estado
de los hilos son:
Creacin
Bloqueo
Desbloqueo
Finalizacin
W. STALLINGS
W. STALLINGS
W. STALLINGS
W. STALLINGS
VARIABLES
Tiempo de respuesta (T); tiempo total que
toma el trabajo, incluye el tiempo que paso
inactivo, tambin se le conoce como tiempo de
retorno.
Tiempo de Espera (E); de T, cuanto tiempo esta
esperando ejecutar
EJEMPLO FIFO
EJERCICIO
PROCESO
TIEMPO
REQUERIDO
TIEMPO DE
LLEGADA
SOLUCION