La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Tema 3 Gestión de Procesos Elaborado por: Profa: Katiuska Núñez

Presentaciones similares


Presentación del tema: "Tema 3 Gestión de Procesos Elaborado por: Profa: Katiuska Núñez"— Transcripción de la presentación:

1 Tema 3 Gestión de Procesos Elaborado por: Profa: Katiuska Núñez
Universidad Bolivariana de Venezuela P. F. G en Informática para la Gestión Social U. C. Sistemas Operativos Tema 3 Gestión de Procesos Elaborado por: Profa: Katiuska Núñez

2 PROCESOS DEFINICIONES 1. Un proceso es un programa en ejecución.
2. Un proceso consiste en el conjunto formado por: Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador. Su estado de ejecución en un momento dado, esto es, los valores de los registros de la CPU para dicho programa. Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos (espacio de direcciones propio). Otra información que permite al sistema operativo su planificación. 3. Es una instancia de un programa que está siendo ejecutada. 4. Un mismo programa se puede ejecutar varias veces a la vez, dando lugar a varios procesos.

3 PROCESOS DEFINICIONES 5. Es la unidad de concurrencia básica.
6. Esta definición varía ligeramente en el caso de sistemas operativos multihilo, donde un proceso consta de uno o más hilos (Threads), la memoria de trabajo (compartida por todos los hilos) y la información de planificación. Un proceso simple tiene un hilo de ejecución. Los procesos son creados y destruidos por el sistema operativo ¿Cuál es la diferencia entre un programa y un proceso? La diferencia es que un proceso es una actividad de cierto tipo que contiene un programa, entradas salidas y estados. ¿Hay diferencias entre un proceso y un hilo?

4 ESTADOS Y TRANSICIONES DE LOS PROCESOS
El principal trabajo del procesador es ejecutar las instrucciones de máquina que se encuentran en memoria principal. Estas instrucciones se encuentran en forma de programas. Para que un programa pueda ser ejecutado, el sistema operativo crea un nuevo proceso, y el procesador ejecuta una tras otra las instrucciones del mismo. En un entorno de multiprogramación, el procesador intercalará la ejecución de instrucciones de varios programas que se encuentran en memoria. El sistema operativo es el responsable de determinar las pautas de intercalado y asignación de recursos a cada proceso. ¿Por qué múltiples procesos?

5 ESTADOS Y TRANSICIONES DE LOS PROCESOS
Modelo de dos estados Es necesario que el sistema operativo pueda seguirle la pista a los procesos, conociendo su estado y el lugar que ocupa en memoria. Además los procesos que no se están ejecutando deben guardarse en algún tipo de cola mientras esperan su turno para ejecutar. p1 CPU Entrada Salir Expedir Pausar

6 ESTADOS Y TRANSICIONES DE LOS PROCESOS
La creación de procesos Un proceso puede crear varios procesos nuevos, a través de una llamada al sistema de crear proceso, durante el curso de ejecución. El proceso creador se denomina proceso padre, y los nuevos procesos son los hijos de ese proceso. Cada uno de estos procesos nuevos puede a su vez crear otros procesos, formando un árbol de procesos. Cuando un proceso crea un proceso nuevo, hay dos posibilidades en términos de ejecución: El padre sigue ejecutándose de forma concurrente con sus hijos. El padre espera hasta que algunos de sus hijos, o todos, han terminado. También hay dos posibilidades en términos del espacio de direcciones del nuevo proceso: El proceso hijo es un duplicado del proceso padre. Se carga un programa en el proceso hijo.

7 BLOQUE DE CONTROL DE PROCESOS
La terminación de procesos Un proceso acaba cuando termina de ejecutar su último enunciado y le pide al S.O que lo elimine utilizando la llamada al sistema salir (exit o Halt). En este momento, el proceso podría devolver datos(salidas) a su proceso padre (por medio de la llamada al sistema esperar). El S.O liberará los recursos del proceso, incluidos la memoria física y virtual, archivos abiertos y buffers de E/S. Hay otras circunstancias por la que un proceso puede terminar, esta puede ser por la llamada al sistema abortar. Un padre podría terminar la ejecución de uno de sus hijos por diversas razones, como: El hijo ha excedido en la utilización de algunos de los recursos que se le asignaron. La tarea que se asignó al hijo ya no es necesaria. El padre va a salir, y el sistema operativo no permite que un hijo continúe si su padre termina.

8 ESTADOS Y TRANSICIONES DE LOS PROCESOS
Operaciones con procesos: Crear un proceso Destruir un proceso Suspender un proceso Reanudar un proceso Cambiar la prioridad de un proceso Bloquear un proceso Despertar un proceso Despachar un proceso La creación de un proceso implica varias operaciones, incluyendo: Dar nombre al proceso Registrarlo en la lista de sistema de procesos conocidos Determinar la prioridad inicial del proceso Crear el PCB Asignar recursos iniciales S.O localizar toda la información clave sobre el proceso.

9 ESTADOS Y TRANSICIONES DE LOS PROCESOS
Modelo de cinco estados El modelo anterior de dos estados funcionaría bien con una cola FIFO y planificación por turno rotatorio para los procesos que no están en ejecución, si los procesos estuvieran siempre listos para ejecutar. En la realidad, los procesos utilizan datos para operar con ellos, y puede suceder que no se encuentren listos, o que se deba esperar algún suceso antes de continuar, como una operación de Entrada/Salida. Es por esto que se necesita un estado donde los procesos permanezcan bloqueados esperando hasta que puedan proseguir. Se divide entonces al estado No ejecución en dos estados: Listo y Bloqueado. Se agregan además un estado Nuevo y otro Terminado.

10 ESTADOS Y TRANSICIONES DE LOS PROCESOS
Modelo de cinco estados Los cinco estados de este diagrama son los siguientes: Ejecución: el proceso está actualmente en ejecución. Listo: el proceso está listo para ser ejecutado, sólo está esperando que el planificador así lo disponga. Bloqueado: el proceso no puede ejecutar hasta que no se produzca cierto suceso, como una operación de Entrada/Salida. Nuevo: El proceso recién fue creado y todavía no fue admitido por el sistema operativo. En general los procesos que se encuentran en este estado todavía no fueron cargados en la memoria principal. Terminado: El proceso fue expulsado del grupo de procesos ejecutables, ya sea porque terminó o por algún fallo, como un error de protección, aritmético, etc.

11 ESTADOS Y TRANSICIONES DE LOS PROCESOS
Transiciones de estados Cuando un proceso pasa de un estado a otro se dice que hace una transición de estado, estas transiciones se describen a continuación.

12 ESTADOS Y TRANSICIONES DE LOS PROCESOS
Ocurre suceso Modelo de cinco estados

13 ESTADOS Y TRANSICIONES DE LOS PROCESOS
En este modelo los estados Bloqueado y Listo tienen ambos una cola de espera. Cuando un nuevo proceso es admitido por el sistema operativo, se sitúa en la cola de listos. A falta de un esquema de prioridades ésta puede ser una cola FIFO. Los procesos suspendidos son mantenidos en una cola de bloqueados. Cuando se da un suceso se pasan a la cola de listos los procesos que esperaban por ese suceso. Si existe un esquema con diferentes niveles de prioridad de procesos es conveniente mantener varias colas de procesos listos, una para cada nivel de prioridad, lo que ayuda a determinar cuál es el proceso que más conviene ejecutar a continuación.

14 ESTADOS Y TRANSICIONES DE LOS PROCESOS
¿Por qué razón se implementa el estado Bloqueado? La razón era poder hacer que los procesos se puedan mantener esperando algún suceso, por ejemplo una Entrada/Salida. Sin embargo, al ser mucho más lentas estas operaciones, puede suceder en nuestro modelo de cinco estados que todos los procesos en memoria estén esperando en el estado Bloqueado y que no haya más memoria disponible para nuevos procesos. Una solución es el intercambio. El intercambio se lleva a cabo moviendo una parte de un proceso o un proceso completo desde la memoria principal al disco, quedando en el estado Suspendido. Después del intercambio, se puede aceptar un nuevo proceso o traer a memoria un proceso suspendido anteriormente.

15 ESTADOS Y TRANSICIONES DE LOS PROCESOS
El problema que se presenta ahora es que puede ser que si se decide traer a memoria un proceso que está en el estado Suspendido, el mismo todavía se encuentre bloqueado. Sólo convendría traerlo cuando ya está listo para ejecutar, esto implica que ya aconteció el suceso que estaba esperando cuando se bloqueó. Para tener esta diferenciación entre procesos suspendidos, ya sean listos como bloqueados, se utilizan cuatro estados: Listo, Bloqueado, Bloqueado y suspendido y Listo y suspendido.

16 ESTADOS Y TRANSICIONES DE LOS PROCESOS
Suspendido

17 ESTRUCTURAS DE CONTROL DEL SO
Tablas de memoria: Se emplean para saber que uso reciben la memoria principal y secundaria. También para obtener cualquier otro tipo de información, relacionada con la memoria. Tablas de archivos: Almacenan toda la información que contiene un fichero o archivo. su posición en la memoria secundaria, estado actual y otros atributos. Tablas de dispositivos de E/S: Almacenan toda la información sobre los periféricos o dispositivos de E/S. Tablas de procesos: Se utilizan para gestionar toda la información que utiliza el Sistema Operativo al manejar los distintos procesos. Estructuras de Control de Procesos: Cada proceso del Sistema Operativo esta representado por un conjunto de estructuras, que forman la llamada “imagen del proceso”.

18 ESTRUCTURAS DE CONTROL DEL SO
Tablas de Memoria Imagen del proceso Tablas de E/S Proceso 1 Colección de programa, datos, pila y atributos (PCB). Tablas de archivos Tablas de Pocesos Imagen del proceso Proceso n

19 BLOQUE DE CONTROL DE PROCESOS
El bloque de control de procesos es la estructura de datos central y más importante de un sistema operativo. Cada bloque de control de Proceso contiene toda la información de un proceso necesaria para el SO. Los bloques son leidos y/o modificados por casi todos los módulos de un SO. incluyendo aquellos que tienen que ver con la planificación, la asignación de recursos, el tratamiento de interrupciones y el análisis y supervisión del rendimiento.

20 BLOQUE DE CONTROL DE PROCESOS
Es la manifestación para el sistema operativo de que existe un proceso, es decir cada proceso es representado por su PCB. El PCB es una estructura de datos que contiene cierta información importante acerca del proceso. Almacena: Estado actual del proceso Identificación unívoca del proceso Prioridad del proceso Apuntadores a la zona de memoria asignada a cada proceso Apuntadores a los archivos abiertos Apuntadores para asignar recursos Área de salvaguarda de registros Un apuntador al siguiente PCB En Linux el PCB se conoce como task_struct El PCB es un almacenamiento central de información que permite al S.O localizar toda la información clave sobre el proceso.

21 CONTROL DE PROCESOS Modo de Ejecución:
La mayoria de los procesadores dan soporte para dos modos de ejecución cuando mínimo. Modo usuario: el CPU podrá ejecutar sólo las instrucciones del juego restringido de las aplicaciones. Es el modo menos privilegiado. Los programas de usuario se ejecuta en este modo. Modo del sistema (supervisor, control o núcleo): la CPU debe poder ejecutar el juego completo de instrucciones. Modo con mayor privilegio. La razón por lo cual se usan los dos modos es para proteger al sistema operativo y a las tablas importantes del mismo, tales como bloques de control de procesos, etc. ¿Cómo conoce el procesador en qué modo va a ejecutar? ¿Cómo se cambia de modo?

22 CONTROL DE PROCESOS A continuación se mencionan los pasos que entran en juego en la creación de los procesos: 1. Asignar un único identificador al nuevo proceso. 2. Asignar espacio para el proceso. 3. Debe inicializarse el bloque de control del proceso. 4. Se deben establecer los enlaces apropiados. 5. Puede haber otras estructuras de datos que crear o ampliar.

23 MANEJO DE INTERRUPCIONES
A nivel físico, una interrupción se solicita activando una señal que llega a la unidad de control del CPU. El agente generador o solicitante de la interrupción ha de activar la mencionada señal cuando necesite que se le atienda, es decir, que se ejecute un programa que le atienda. Ante la solicitud de una interrupción, siempre y cuando esté habilitado ese tipo de interrupción, la unidad de control realiza un ciclo de aceptación de interrupción. Este ciclo se lleva a cabo en cuanto termina la ejecución de la instrucción máquina que se esté ejecutando y consiste en las siguientes operaciones: Salva algunos registros del procesador, como son el de estado (PSW) y el contador de programa (PC). Eleva el nivel de ejecución del procesador, pasándolo a núcleo. Carga un nuevo valor en el contador de programa, por lo que pasa a ejecutar otro programa.

24 MANEJO DE INTERRUPCIONES
El SO ocupa una posición intermedia entre los programas de aplicación y el hardware. No se limita a utilizar el hardware a petición de las aplicaciones ya que hay situaciones en las que es el hardware el que necesita que se ejecute código del SO. En tales situaciones el hardware debe poder llamar al sistema, pudiendo deberse estas llamadas a dos condiciones: Algún dispositivo de E/S necesita atención. Se ha producido una situación de error al intentar ejecutar una instrucción del programa (normalmente de la aplicación). En ambos casos, la acción realizada no está ordenada por el programa de aplicación, es decir, no figura en el programa. Según los dos casos anteriores se pueden distinguir dos clases de interrrupciones: las interrupciones y la excepciones:

25 MANEJO DE INTERRUPCIONES
Interrupción: señal que envía un dispositivo de E/S a la CPU para indicar que la operación de la que se estaba ocupando, ya ha terminado. Excepción: una situación de error detectada por la CPU mientras ejecutaba una instrucción, que requiere tratamiento por parte del SO. Tratamiento de las interrupciones Una interrupción se trata en todo caso, después de terminar la ejecución de la instrucción en curso. El tratamiento depende de cuál sea el dispositivo de E/S que ha causado la interrupción, ante la cual debe poder identificar el dispositivo que lo ha causado.

26 MANEJO DE INTERRUPCIONES
Tratamiento de las interrupciones En una interrupción ordinaria, el control se transfiere primero al gestor de interrupciones, quien lleva a cabo algunas tareas básicas y, después, se salta a la rutina del sistema operativo que se ocupa del tipo de interrupción que se ha producido. Algunos ejemplos de estas interrupciones son: - Interrupción de reloj: Un reloj es un dispositivo que genera interrupciones periódicamente. Ante una interrupción de este tipo, un sistema operativo de tiempo compartido, entre otras cosas, determina si el proceso en ejecución ha alcanzado el máximo tiempo de ejecución que se le concedió. Si es así, el proceso pasará a estado listo, y se asignará la CPU a otro proceso.

27 MANEJO DE INTERRUPCIONES
Tratamiento de las interrupciones - Interrupción de E/S: El sistema operativo determina exactamente qué acción de E/S ha ocurrido. Si se trata de un evento o suceso por el que esperaban uno o más procesos, entonces el sistema operativo traslada todos los procesos bloqueados en dicho evento al estado listo, y determina si reanuda la ejecución del proceso interrumpido o pasa a otro de mayor prioridad. - Falta de memoria: Un proceso hace una referencia a una dirección que no se encuentra en memoria y que debe traerse de memoria secundaria (esta posibilidad se estudiará en el módulo de gestión de la memoria). Después de hacer la solicitud de E/S para traer esa o esas direcciones de memoria, el sistema operativo lleva a cabo un cambio de contexto para reanudar la ejecución de otro proceso; el proceso que cometió la falta de memoria se pasa al estado bloqueado. Después de que las direcciones aludidas se carguen en memoria, dicho proceso se pondrá en estado listo.

28 MANEJO DE INTERRUPCIONES
Ciclo de instrucciones con interrupciones

29 TRATAMIENTO SIMPLE DE UNA INTERRUPCION

30 MANEJO DE INTERRUPCIONES
Importancia de las interrupciones El mecanismo de tratamiento de las interrupciones permite al SO utilizar la CPU en servicio de una aplicación, mientras otra permanece a la espera de que concluya una operación en un dispositivo de E/S. El hardware se encarga de avisar al SO cuando el dispositivo de E/S ha terminado y el SO puede intervenir entonces, si es conveniente, para hacer que el programa que estaba esperando por el dispositivo, se continúe ejecutando. En ciertos intervalos de tiempo puede convenir no aceptar señales de interrupción. Por ello las interrupciones pueden inhibirse por programa (aunque esto no deben poder hacerlo las mismas).

31 MANEJO DE INTERRUPCIONES
Excepciones Cuando la CPU intenta ejecutar una instrucción incorrectamente construida, la unidad de control lanza una excepción para permitir al SO ejecutar el tratamiento adecuado. Al contrario que en una interrupción, la instrucción en curso es abortada. Las excepciones al igual que las interrupciones deben estar identificadas. Clases de excepciones Las instrucciones de un programa pueden estar mal construidas por diversas razones: El código de operación puede ser incorrecto. Se intenta realizar alguna operación no definida, como dividir por cero. La instrucción puede no estar permitida en el modo de ejecución actual. La dirección de algún operando puede ser incorrecta o se intenta violar alguno de sus permisos de uso.

32 MANEJO DE INTERRUPCIONES
Importancia de las excepciones El mecanismo de tratamiento de las excepciones es esencial para impedir, junto a los modos de ejecución de la CPU y los mecanismos de protección de la memoria, que las aplicaciones realicen operaciones que no les están permitidas. En cualquier caso, el tratamiento específico de una excepción lo realiza el SO. Como en el caso de las interrupciones, el hardware se limita a dejar el control al SO, y éste es el que trata la situación como convenga. Es bastante frecuente que el tratamiento de una excepción no retorne al programa que se estaba ejecutando cuando se produjo la excepción, sino que el SO aborte la ejecución de ese programa. Este factor depende de la pericia del programador para controlar la excepción adecuadamente.

33 NÚCLEO DEL SISTEMA OPERATIVO
El núcleo del sistema operativo, también llamado kernel (núcleo) es aquella parte de un sistema operativo que interactúa de forma directa con el hardware de una máquina. Entre las funciones principales del kernel se encuentran: La gestión de procesos. - Creación y terminación de los procesos - Planificación y expedición de los procesos - Cambios de los procesos - Sincronización de procesos y soporte para la comunicación entre procesos - Gestión de los bloques de control de procesos La gestión de memoria - Asignación de espacio de direcciones a los procesos. - Intercambio - Gestión de Páginas y segmentos.

34 NÚCLEO DEL SISTEMA OPERATIVO
La administración del sistema de archivos. La administración de servicios de entrada/salida. - Gestión de buffers. - Asignación de canales de E/S y dispositivos a los procesos La asignación de recursos entre los usuarios. Tratamiento de interrupciones. Supervisión La manipulación del hardware se realiza por medio de controladores de dispositivo, que conocen la forma de comunicarse directamente con el hardware de la máquina. El software por su parte puede comunicarse con el kernel por medio de llamadas al sistema, las cuales le indican al kernel que realice tareas como abrir y escribir un archivo, ejecutar un programa, finalizar un proceso u obtener la fecha y hora del sistema.

35 NÚCLEO DEL SISTEMA OPERATIVO
Núcleo monolítico Estos sistemas tienen un núcleo grande y complejo, que engloba todos los servicios del sistema. Está programado de forma no modular, y tiene un rendimiento mayor que un micronúcleo. Sin embargo, cualquier cambio a realizar en cualquier servicio requiere la recompilación del núcleo y el reinicio del sistema para aplicar los nuevos cambios. Se ejecutan en el espacio de memoria del núcleo mismo. No emplea un sistema de mensajes.

36 NÚCLEO DEL SISTEMA OPERATIVO
Núcleo monolítico Un sistema operativo con núcleo monolítico concentra todas las funcionalidades posibles (planificación, sistema de archivos, redes, controladores de dispositivos, gestión de memoria, etc) dentro de un gran programa. El mismo puede tener un tamaño considerable. Un error en una rutina puede propagarse a todo el núcleo. Todos sus componentes se encuentran integrados en un único programa que ejecuta en un único espacio de direcciones. En este tipo de sistemas, todas las funciones que ofrece el sistema operativo se ejecutan en modo supervisor. Ejemplos: UNIX y Linux

37 NÚCLEO DEL SISTEMA OPERATIVO
Microkernel (Micronúcleo)‏ Las partes funcionales están divididas en unidades separadas con mecanismos de comunicación estrictos entre ellos. Es un tipo de núcleo de un sistema operativo que provee un conjunto deprimitivas o llamadas al sistema mínimas, para implementar servicios básicos como espacios de direcciones, comunicación entre procesos y planificación básica. Todos los otros servicios (gestión de memoria, sistema de archivos, operaciones de E/S, etc.), que en general son provistos por el núcleo, se ejecutan como procesos servidores en espacio de usuario. En un principio pretendía ser una solución a la creciente complejidad de los sistemas operativos. Las principales ventajas de su utilización son la reducción de la complejidad, la descentralización de los fallos (un fallo en una parte del sistema no lo colapsaría por completo) y la facilitación para crear y depurar controladores de dispositivos.

38 NÚCLEO DEL SISTEMA OPERATIVO
Microkernel (Micronúcleo)‏ Por otro lado, sus principales dificultades son la complejidad en la sincronización de todos los módulos que componen el micronúcleo y su acceso a la memoria, la Integración con las aplicaciones. Esto mejora la tolerancia a fallos y eleva la portabilidad entre plataformas de hardware, según los defensores de esta tendencia. Sus detractores le achacan, fundamentalmente, mayor complejidad en el código, menor rendimiento, o limitaciones en diversas funciones. Ejemplos: Minix, Hurd


Descargar ppt "Tema 3 Gestión de Procesos Elaborado por: Profa: Katiuska Núñez"

Presentaciones similares


Anuncios Google