24
Modelo de procesos Guatemala, febrero de 2009

Presentacion Modelo de Procesos

Embed Size (px)

DESCRIPTION

Documento con temas básicos como que son los programas, procesos, hilos, y en que se diferencian estos. Contiene también información acerca del modelo de procesos, y como es que le sirve al sistema operativo el manejo de esto para la asignación de recursos.

Citation preview

Page 1: Presentacion Modelo de Procesos

Modelo de procesos

Guatemala, febrero de 2009

Page 2: Presentacion Modelo de Procesos

Programa (I)

ProgramaEs una secuencia de instrucciones escrita en un lenguaje dado.

Según líneas funcionales, los programas pueden ser:Software de sistema:– Llamado también Software base.– Sirve para manejar e interactuar con el sistema, proporcionando control sobre

el hardware y dando soporte a otros programas.– Ejemplos:

• Sistema operativo• Sistema operativo de red• Compiladores, Antivirus• Librerías tales como OpenGL (para la aceleración gráfica)

Page 3: Presentacion Modelo de Procesos

Programa (II)

Software de aplicación:– Diseñado para facilitar al usuario la realización de un

determinado tipo de trabajo.– Ejemplos:

• Programas de comunicación de datos• Multimedia• Presentaciones• Diseño gráfico• Cálculo• Finanzas• Correo electrónico

Page 4: Presentacion Modelo de Procesos

Proceso (I)

• Son instrucciones de un programa (un programa en ejecución), que consume recursos tales como:

– Memoria

– CPU (Unidad Central de Procesamiento)

– Dispositivos de E/S

– Stack.

• Son entidades activas reconocidas por el SO, que tienen asociados un conjunto de atributos:

– Código del programa ejecutable

– Datos

– Stack

– Registros e identificador único.

Page 5: Presentacion Modelo de Procesos

Proceso (II)

• El SO es el encargado de crear y destruir los procesos.

• Los procesos pueden llamar y ser llamados por otros procesos.

Page 6: Presentacion Modelo de Procesos

¿Diferencia entre programa y proceso?

• Un programa es una entidad pasiva, cuando un programa es reconocido por el SO y tiene asignados recursos, éste se convierte en un proceso.

Page 7: Presentacion Modelo de Procesos

Hilos

• Comparten los recursos del proceso. Un proceso puede ser formado por uno o varios hilos.

• Permiten realizar varias actividades en paralelo.• Tiene estados de ejecución, listo y bloqueado.

Hilos a nivel de usuario– Se usan aplicaciones o bibliotecas de hilos para manejarse,

pero el kernel no sabe de la existencia de dichos hilos.

Hilos a nivel de Kernel– La gestión de los hilos es realizada por el Kernel.

Page 8: Presentacion Modelo de Procesos

Modelo de procesos (I)

• El sistema operativo para permitir la multiprogramación y la concurrencia requiere de un modelo de procesos que ofrezca el soporte necesario para proveerla.

– Multiprogramación: la CPU alterna de programa en programa, en un esquema de seudo paralelismo(Paralelismo virtual).

– Paralelismo real de hardware: Cuando se ejecutan las instrucciones de un programa con más de un procesador.

Page 9: Presentacion Modelo de Procesos

Modelo de procesos (II)

• El modelo de procesos sirve para aumentar el paralelismo en la ejecución. Está compuesto básicamente por PCB (Process Control Block), Tabla de Procesos, Estados y transiciones de los procesos.

Page 10: Presentacion Modelo de Procesos

PCB (Process Control Block) (I)

• Es una estructura de datos que sirve para llevar el control de los procesos y recursos asignados que cada uno de ellos tiene.

• Le sirve al sistema operativo para una descripción en tiempo real del proceso, durante el tiempo de vida de este.

• Le ayuda al sistema operativo para poder asignar y desasignar recursos a las procesos

Page 11: Presentacion Modelo de Procesos

PCB (Process Control Block) (II)

• La información que incluye el PCB puede cambiar entre sistemas operativos, pero básicamente se cuenta con:– Identificador del proceso (PID).– Estado del proceso.

• Listo• En espera• bloqueado.

– Contador de Programa: Dirección de la próxima instrucción a ejecutar.– Valores de registro de CPU. Se utilizan también en el cambio de contexto.– Espacio de direcciones de memoria.– Prioridad en caso de utilizarse dicho algoritmo para planificación de CPU.– Lista de recursos asignados (incluyendo descriptores de archivos y sockets

abiertos).– Estadísticas del proceso.– Datos del propietario (owner).– Permisos asignados.– Signals pendientes de ser servidos. (Almacenados en un mapa de bits)

Page 12: Presentacion Modelo de Procesos

PCB (Process Control Block) (III)

• La información que incluye el PCB también puede verse de esta forma:– Identificadores numéricos:

• Identificador del procesos en si • Identificador del proceso padre (quién lo creó) • Identificador del usuario.

– Información del manejo de memoria: • Registros base y límite• Tabla de páginas o de segmentos

– Información del estado del procesador:• Registros visibles al usuario • Registros de estado y control: pc, modo de ejecución, flags, etc. • Apuntadores del stack

– Información de control de proceso:• Información de estado y planificación: estado del proceso, prioridad, evento por el cual espera, etc.• Estructuración de datos: formación de anillos con otros procesos, apuntador de secuencia de listas,

apuntadores a los archivos, archivos abiertos.• Comunicación entre procesos• Privilegios del proceso• Administración de memoria• Utilización de recursos.

Page 13: Presentacion Modelo de Procesos

Tabla de procesos

• Es la estructura donde se mantienen los PCBsde los procesos usuarios. Aquí se encuentran registrados los procesos que ya fueron reconocidos por el sistema de operación, independientemente del estado en que se encuentren. Se actualiza a medida que se van creando procesos, eliminando procesos o se producen transiciones entre los estados.

Page 14: Presentacion Modelo de Procesos

Estados de un proceso (I)

• Representan el comportamiento del proceso en un momento dado.

– New: El proceso está siendo creado pero aún no ha sido admitido al pool de procesos ejecutables por el sistema de operación.

– Running: El proceso está ejecutando instrucciones. En un sistema con un solo procesador, sólo habrá un proceso en estado running

– Waiting o Blocked: El proceso espera por algún evento– Ready: El proceso está listo para ser ejecutado y espera por que se le

asigne tiempo de CPU.– Terminated o Exit: Ha finalizado su ejecución ya sea de forma normal

o anormal. En este estado los procesos permanecen mientras el sistema de operación desasigna sus recursos y extrae información necesaria para tareas de contabilidad

Page 15: Presentacion Modelo de Procesos

Estados de un proceso (II)

• Los 3 estados principales (corriendo, listo y esperando) proveen una forma sistemática de modelar el comportamiento, y muchos sistemas de operación utilizan solo estos 3 estados, hay sistemas de operación que añaden dos mas como lo es el caso de Unix:

– Waiting Suspend: el proceso está en memoria secundaria suspendido y esperando por un evento.

– Ready Suspend: el proceso está en memoria secundaria suspendido temporalmente, pero listo para ejecución, una vez que se reanude.

Page 16: Presentacion Modelo de Procesos

Estados de un proceso (III)

• Cuando un proceso está en un estado suspendido tiene las siguientes características:

– No está inmediatamente disponible para ejecución.– Puede o no estar esperando por un evento. Si está esperando

por un evento, la condición de bloqueado es independiente de la condición suspendido, y la ocurrencia del evento no habilita al proceso para ser ejecutado.

– Fue colocado en estado suspendido por un agente: por él mismo, el proceso padre o el sistema de operación.

– No puede ser removido de este estado hasta que un agente explícitamente ordene la reanudación y pase de nuevo a la cola Ready o Waiting.

Page 17: Presentacion Modelo de Procesos

Procesos Huérfanos y Zombies

• Procesos huérfanos:

– Cuando un proceso padre muere antes que el proceso hijo, este proceso queda huérfano y es adoptado por el proceso ``init''

• Procesos zombies:

– Un proceso que termina no puede abandonar el sistema hasta que su padre acepte su código de retorno. Si el proceso padre ya está muerto, es adoptado por el proceso ``init'' el cual siempre acepta los códigos de retorno de sus hijos. Sin embargo, si el proceso padre está vivo pero nunca ejecuta un wait(), el código de retorno del proceso nunca será aceptado y tal proceso se convierte en zombie.

– Un proceso zombie no tiene ni código, ni stack, ni datos, pero continúa habitando en la tabla de procesos (que es de tamaño fijo)

Page 18: Presentacion Modelo de Procesos

Transiciones de estado de los procesos

• New a Ready: el sistema de operación moverá un proceso del estado New al estado Ready cuando esté preparado para tomar un proceso adicional.

• Ready a Running: cuando es tiempo de seleccionar un nuevo proceso para correr, el sistema de operación selecciona uno de los procesos en el estado Ready (despachar).

• Running a Terminated: el proceso que estaba corriendo actualmente es terminado por el sistema de operación en forma normal o anormal.

• Running a Ready: Cuando se le agota el tiempo de CPU al proceso que está corriendo y ocurre la interrupción del timer, este proceso pasa a estado Ready a esperar una próxima oportunidad.

• Running a Waiting: un proceso se pone en estado de espera si requiere algo por lo cual debe esperar. Normalmente este requerimiento es realizado a través de llamadas al sistema (por operaciones de E/S, por ejemplo).

• Waiting a Ready: un proceso realiza esta transición cuando ocurre el evento por el cual estaba bloqueado.

• Ready a Exit: un proceso padre puede terminar un proceso hijo en cualquier momento, o si el padre termina, todos los procesos hijos asociados con el padre pueden terminar.

• Waiting a Exit: bajo las mismas condiciones de la transición anterior.

Page 19: Presentacion Modelo de Procesos

Modelo de 2 estados

Page 20: Presentacion Modelo de Procesos

Modelo de 3 estados

Page 21: Presentacion Modelo de Procesos

Modelo de 5 estados

Page 22: Presentacion Modelo de Procesos

Modelo de 7 estados

Page 23: Presentacion Modelo de Procesos

Referencias

• http://es.wikipedia.org/wiki/Programa_(computaci%C3%B3n)

• http://es.wikipedia.org/wiki/Software_de_sistema

• http://es.wikipedia.org/wiki/Software_de_aplicaci%C3%B3n

• http://so-wiki.wetpaint.com/page/Procesos

• http://ci.ldc.usb.ve/~spd/Docencia/ci-3821/Tema3/node1.html

• http://so-wiki.wetpaint.com/page/BCP%2C+Cambios+e+Interrupciones

• http://so-wiki.wetpaint.com/page/Estados+de+procesos

• http://ci.ldc.usb.ve/~spd/Docencia/ci-3821/Tema3/node2.html

Page 24: Presentacion Modelo de Procesos

Acerca del autor y la licencia

• Pedro Domingo

– elcopypaste.wordpress.com

[email protected]

• Licencia