El documento describe los conceptos básicos de los procesos en sistemas operativos. Un proceso es un programa en ejecución que tiene datos asociados, contexto de ejecución y estados. El sistema operativo ejecuta múltiples programas mediante la creación y gestión de procesos, moviéndolos entre estados como listo, en ejecución y bloqueado. El sistema operativo mantiene tablas y bloques de control de procesos para supervisar y coordinar la ejecución concurrente de procesos.
1. Jump to first page
arraiz@ldc.usb.ve
Sistemas
OperativosProcesos
2. Jump to first page
arraiz@ldc.usb.ve
Definición
Una forma sistemática de monitorear y
controlar la ejecución de programas es a
través de procesos.
Un proceso es un programa en ejecución con:
Datos asociados (variables, buffers)
Contexto de ejecución: toda la información que
el CPU necesita para ejecutarlo
• registros
• prioridades
• eventos por los que espera
3. Jump to first page
arraiz@ldc.usb.ve
Procesos
Un sistema operativo ejecuta una variedad de
programas:
– Sistemas por lotes – trabajos
– Sistemas de tiempo compartido – programas de
usuario o tareas
• Los términos usados trabajo y proceso se
refieren a lo mismo
4. Jump to first page
arraiz@ldc.usb.ve
Proceso
User Program
and data
program
counter
registers
temporary
data
...
Context
5. Jump to first page
arraiz@ldc.usb.ve
Por que necesitamos mas de un
Proceso?
Aplicaciones simples: Queremos que cosas ocurran
concurrentemente. (ejemplo: spell-checker, listener
in a web station)
Multiples aplicaciones: procesos ejecutandose en
background (ejemplo windows).
Multiples usuarios: Por ejemplo el departamento
de computación.
6. Jump to first page
arraiz@ldc.usb.ve
Requerimientos al OS
Maximizar el uso del CPU , permitiendo la
ejecución de muchos procesos.
Proveer un tiempo de respuesta razonable.
Asignar recursos a procesos mientras no
permite que ocurra deadlock.
Permitir comunicación entre procesos.
Creación de procesos por parte del usuario.
7. Jump to first page
arraiz@ldc.usb.ve
Como alcanzar las metas?
Planificando(Schedule) y despachando procesos
para su ejecución por el procesador.
Implementado una política segura y justa de
asignación de recursos a procesos.
Responder a los requerimientos de los programas
usuarios.
Construir y mantener tablas para cada entidad
manejada por el sistema operativo.
8. Jump to first page
arraiz@ldc.usb.ve
Dispatcher
Componente del OS que se encarga de
otorgar a los procesos, el procesador.
Previene que un proceso se tome todo el
tiempo de CPU.
Toma la decisión de cual proceso recibirá el
CPU en base al algoritmo de scheduling.
9. Jump to first page
arraiz@ldc.usb.ve
Planificadores
Planificador a largo plazo
– Planificador de tareas
– Selecciona que procesos se llevan a la cola de
listos
• Planificador a corto plazo
– Planificador del CPU
– Selecciona que proceso debe ser el próximo en
ejecutarse y otorgársele el CPU
10. Jump to first page
arraiz@ldc.usb.ve
Planificadores
El planificador a corto plazo se invoca con
mucha frecuencia
– Milisegundos
– Debe ser rápido
El planificador a largo plazo se invoca con poca
frecuencia
– Segundos o minutos
– Puede ser lento
El planificador a largo plazo controla el grado de
multiprogramación
11. Jump to first page
arraiz@ldc.usb.ve
Planificadores
Los procesos pueden describirse de las
siguientes formas
– E/S – gastan mucho de su tiempo ejecutando E/S
en vez de cálculos, muchos períodos cortos de
uso del CPU
– CPU – gastan mucho tiempo haciendo cómputo
(uso del CPU), muy pocos períodos largos de uso
de CPU
12. Jump to first page
arraiz@ldc.usb.ve
PCB (Process Control Block )
PCB : Estructura de datos que contiene
información relevante del proceso.
Contenido:
Identificación (PID,UID, ID proceso padre)
Información del procesador (PC, CPU registros…,
PSW, SP)
Información de control (,Prioridad ,estado del proceso,
evento por los que espera, links a otros procesos)
Información de memoria ( localización y estado de
acceso de los datos usuarios)
Información de Archivos (archivos y dispositivos
abiertos )
13. Jump to first page
arraiz@ldc.usb.ve
Estados de un Proceso
Running
Proceso que está usando el CPU.
Ready
Proceso listo para ser ejecutado. Hay muchos
en este estado. Temporalmente parado.
Blocked
Proceso que espera por algún evento
(completar E/S) para continuar con la ejecución.
Un proceso se puede bloquear el mismo pero
no el mismo ponerse en ejecución.
14. Jump to first page
arraiz@ldc.usb.ve
Modelo de Estado
Ready Running
Dispatch
Timeout
Running
Event Occurs
Blocked
Event Wait
15. Jump to first page
arraiz@ldc.usb.ve
Otros estados
New
Proceso creado pero no admitido, por recursos
limitados
Exit
Proceso que terminó pero conserva aún
información temporal (el prog. accounting).
Cuando esta información no se necesita mas el
proceso sale del sistema
16. Jump to first page
arraiz@ldc.usb.ve
Modelo de 5 estados
A new process is created to execute
a program
New
The operating system will move a
process from the New state to the
Ready state when it is prepared to take
an additional process
Ready
Admit
Running
Dispatch
Timeout
Running
Event Occurs
Exit
Release
Blocked
Event Wait
17. Jump to first page
arraiz@ldc.usb.ve
Modelo de Colas
Ready Queue
Event n Queue
Event 2 Queue
Event 1 Queue
Processor
Dispatch Release
Event 1 Wait
Event 2 Wait
Event n Wait
Event 1
Occurs
Event 2
Occurs
Event n
Occurs
Admit
18. Jump to first page
arraiz@ldc.usb.ve
Swapping
Muchos processos en memoria deterioran el
desempeño del sistema.
El SO puede necesitar suspender algunos
procesos, es decir los saca a una área de
swap, por ej. Disco.
Dos nuevos estados
Blocked Suspend : procesos bloqueados que
han sido sacados a discos
Ready Suspend: procesos ready que han sido
sacados a discos
19. Jump to first page
arraiz@ldc.usb.ve
Características
Un proceso suspendido tiene las siguientes
características:
NO se encuentra disponible para ejecución
Si esta suspendido + espera por evento, la
ocurrencia del evento no habilita que el proceso
pueda ser ejecutado
Un proceso se colocó en suspendido por un
agente: si mismo, proceso padre, OS.
Sale del estado de suspensión por odenes del
agente
20. Jump to first page
arraiz@ldc.usb.ve
Razones para suspend
Por requerimientos del padre: examinar los
hijos o coordinar actividades.
Por tiempo (Timming) :corre periódicamente
Por problemas: OS suspende los procesos
sospechosos.
Necesidad de memoria.
21. Jump to first page
arraiz@ldc.usb.ve
Modelo de 7 estados
Ready
Suspend
Ready Running Exit
Blocked
Blocked
Suspend
Activate Dispatch
Timeout
Release
Suspend
Event
Wait
Event
Occurs
Event
Occurs
Suspend
Activate
New
22. Jump to first page
arraiz@ldc.usb.ve
Transiciones
Bloqueado a bloqueado suspendido
Todos los procesos estan bloqueados y el OS
hace espacio para traer procesos ready
Bloqueado suspendio a Ready suspendido
Cuando ocurre el evento por el cual esperaba
Ready suspendido a Ready
Cuando no hay mas procesos ready en memoria
Ready a Ready suspendido
No hay procesos bloqueados y debe liberar
memoria para mejorar desempeño
23. Jump to first page
arraiz@ldc.usb.ve
Gerencia de Procesos-Operaciones
Creación y terminación de procesos.
Planificación y dispacho de procesos.
Switching de procesos.
Sincronización y comunicación de procesos.
In order to do so the system Manages Process
Control Blocks (PCB)
24. Jump to first page
arraiz@ldc.usb.ve
Tablas del Sistema
25. Jump to first page
arraiz@ldc.usb.ve
Process-Management - Implementation
26. Jump to first page
arraiz@ldc.usb.ve
Imagen de un Proceso
Process
identification
Processor
states
information
Process control
information
User stack
Private user
address Space
prog+data
PCB
27. Jump to first page
arraiz@ldc.usb.ve
Localiz. de la Imagen Proceso
Cada imagen del proceso está en Memoria
Virtual.
En la tabla de procesos existe una entrada que
apunta a cada imagen de proceso .
Para que el OS pueda manejar el proceso, al
menos parte de su imagen debe ser llevado a
memoria principal.
28. Jump to first page
arraiz@ldc.usb.ve
Operaciones
Crear : Identificación, crear PCB ,Insertarlo en
la lista de procesos conocidos, asignarle
recursos (memoria), asignar prioridad.
Terminar: Devolver los recursos al SO, Sacarlo
de todas las lista y tablas del sistema, Eliminar
PCB . Hijos?
Suspender: Recursos?
Reasumir:
29. Jump to first page
arraiz@ldc.usb.ve
Crear
Cuando un proceso crea un proceso hijo, el
podría:
Compartición de recursos, puede ser de las
siguientes formas
El padre y el hijo comparten todos los recursos
El hijo comparte un subconjunto de recursos del
padre.
Cuando un proceso se ejecuta, puede que
exista
Padre e hijo se ejecutan concurrentemente
El padre espera a que el hijo termine
30. Jump to first page
arraiz@ldc.usb.ve
Crear
Espacio de direcciones :
El hijo duplica el del padre
Proceso hijo tiene un programa diferente
cargado en memoria.
Ejemplos en UNIX
– La llamada fork crea un proceso nuevo
– La llamada execve usada después del fork
para reemplazar el espacio de memoria del
proceso con un programa nuevo
31. Jump to first page
arraiz@ldc.usb.ve
Terminacion
El proceso ejecuta la última sentencia y le indica al
sistema salir (exit)
– Envío de datos del hijo al padre (vía wait)
– Los recursos de los procesos son des-asignados
por el sistema operativo
32. Jump to first page
arraiz@ldc.usb.ve
Terminacion
El padre debe terminar la ejecución del proceso hijo
(abort)
– El hijo excedió los recursos asignados
– Ya no se requieren las tareas asignadas a los hijos
– El padre termina
• El caso de que el sistema operativo no permite
que el hijo continúe si el padre termina
• Terminación en cascada
33. Jump to first page
arraiz@ldc.usb.ve
Cooperacion
Los procesos que están en un sistema pueden ser
ejecutados independientes o cooperantes
Independiente: No pueden afectarse o ser
afectados por la ejecución de otro proceso
Cooperante: Pueden afectarse o ser afectados por
la ejecución de otros procesos.
Ventajas de la cooperación de procesos
– Intercambio de información
– Velocidad de computación
– Modularidad
34. Jump to first page
arraiz@ldc.usb.ve
Cooperacion
Ventajas de la cooperación
Compartir información .Ej. Editor
Acelerar los cálculos: se dividen en subtareas y
se ejecutan paralelas.
Modularidad: dividir las funciones del sistema
en varios procesos.
Conveniencia: para que varias tareas se
realicen a la vez.Ej. Imprimir compilar, editar un
archivo.
35. Jump to first page
arraiz@ldc.usb.ve
Comunicación (IPC)
Mecanismos para comunicar procesos y sincronizar
sus acciones
– Señales
– Memoria compartida
– Semáforos
– Sistema de mensajes
36. Jump to first page
arraiz@ldc.usb.ve
Resumen
Proceso es el bloque de construcción básico
de un OS.
OS es responsable de su creación, manejo,
terminación e interacción.
OS mantiene la descripción cada procesos.
OS mueve los procesos entre los diferentes
estados.
Un proceso running puede switch a modo
kernel via una interrupción o system call.
37. Jump to first page
arraiz@ldc.usb.ve
The ls Command
Steps in executing the command ls, typed to the shell
38. Jump to first page
arraiz@ldc.usb.ve
System Calls for Process Management
s is an error code
pid is a process ID
residual is the remaining time from the previous alarm
Notas del editor
01/03/08 New: The process is being created Ready: The process is waiting to be assigned to a processor Running: Instructions are being executed Blocked: The process is waiting for some event to occur (such as an I/O completion or reception of a signal) Exit: The process has finished execution
01/03/08 New: The process is being created Ready: The process is waiting to be assigned to a processor Running: Instructions are being executed Blocked: The process is waiting for some event to occur (such as an I/O completion or reception of a signal) Exit: The process has finished execution