Jump to first [email protected]
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
Jump to first [email protected]
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
Jump to first [email protected]
Proceso
User Program and data
a
programcounter
registers
temporarydata
...
Context
Jump to first [email protected]
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.
Jump to first [email protected]
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.
Jump to first [email protected]
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.
Jump to first [email protected]
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.
Jump to first [email protected]
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
Jump to first [email protected]
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
Jump to first [email protected]
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
Jump to first [email protected]
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 )
Jump to first [email protected]
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.
Jump to first [email protected]
Modelo de Estado
Ready
a
Running
Dispatch
a
Timeout
Running
a
Event Occurs
Blocked
Event Wait
Jump to first [email protected]
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
Jump to first [email protected]
Modelo de 5 estados
a
A new process is created to executea program
a
New
a
The operating system will move aprocess from the New state to theReady state when it is prepared to takean additional process
a
ReadyAdmit
a
Running
Dispatch
a
Timeout
Running
a
Event Occurs
a
ExitRelease
a
Blocked
Event Wait
Jump to first [email protected]
Modelo de Colas
a
Ready Queue
Event n Queue
Event 2 Queue
Event 1 Queue
ProcessorDispatch Release
Event 1 Wait
Event 2 Wait
Event n Wait
Event 1Occurs
Event 2Occurs
Event nOccurs
Admit
Jump to first [email protected]
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
Jump to first [email protected]
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
Jump to first [email protected]
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.
Jump to first [email protected]
Modelo de 7 estados
ReadySuspend
Ready Running Exit
BlockedBlockedSuspend
Activate Dispatch
Timeout
Release
Suspend
EventWait
EventOccurs
Event
Occurs
Suspend
Activate
New
Jump to first [email protected]
Transiciones Bloqueado a bloqueado suspendido
Todos los procesos estan bloqueados y el OS hace espacio para traer procesos ready
Bloqueado suspendio a Ready suspendidoCuando ocurre el evento por el cual esperaba
Ready suspendido a ReadyCuando no hay mas procesos ready en memoria
Ready a Ready suspendido No hay procesos bloqueados y debe liberar memoria para mejorar desempeño
Jump to first [email protected]
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)
Jump to first [email protected]
Tablas del Sistema
Jump to first [email protected]
Process-Management - Implementation
Jump to first [email protected]
Imagen de un Proceso
Processidentification
Processor states
information
Process controlinformation
User stack
Private useraddress Space
prog+data
PCB
Jump to first [email protected]
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.
Jump to first [email protected]
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:
Jump to first [email protected]
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
Jump to first [email protected]
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
Jump to first [email protected]
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
Jump to first [email protected]
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
Jump to first [email protected]
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
Jump to first [email protected]
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.
Jump to first [email protected]
Comunicación (IPC)
Mecanismos para comunicar procesos y sincronizar sus acciones
– Señales
– Memoria compartida
– Semáforos
– Sistema de mensajes
Jump to first [email protected]
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.
Jump to first [email protected]
The ls Command
Steps in executing the command ls, typed to the shell
Jump to first [email protected]
System Calls for Process Management
s is an error code
pid is a process ID
residual is the remaining time from the previous alarm
Top Related