Tema 19 Gestión de procesos



Documentos relacionados
Sistemas Operativos Tema 5. Procesos José Miguel Santos Alexis Quesada Francisco Santana

Sistemas Operativos. Clase 2: Administración de procesos.

El modelo de Procesos

No hay un acuerdo universal sobre una definición de proceso, pero sí algunas definiciones aceptadas:

Conceptos de Planificación

6. Planificación. Los procesos tienden a tener ráfagas de ejecución (CPU-burst) y ráfagas de espera de operaciones de E/S (I/O burst).

Procesos y Threads Procesos y Threads. Concurrencia Concurrencia Ventajas Ventajas. Rendimiento Rendimiento (paralelismo) (paralelismo)

Sistemas Operativos. Sistemas Informáticos I.E.S. Virgen de la Paloma

Definición de Sistema Operativo

Sistemas Operativos. (Procesos)

Convivencia Gestión de Procesos

SISTEMAS OPERATIVOS GRUPO 3621 CLASE 05 DE OTUBRE DE 2011 DOCENTE:- ING. ANA LIDIA BARCENAS CORTES

Tema 2: Gestión de la CPU

Tarea 2. Descripción y Control de Procesos

Hilos Secciones Stallings:

Tema II. Descripción y control de procesos. UNED Manuel Fernández Barcell. Blog:

SISTEMAS OPERATIVOS: PROCESOS. Planificación de procesos

4.1 Dispositivos y manejadores de dispositivos: device drivers

Facultad de Ingeniería Industrial y de Sistemas v1.1 MA781U CONCEPTOS INICIALES CASOS DE USO

FUNDAMENTOS DE INFORMÁTICA. Principios Básicos de Sistemas Operativos. Definición de Sistema Operativo

Sistemas Operativos Scheduling de Procesos

SISTEMAS OPERATIVOS: Lección 4: Planificación de Procesos

Sistema Operativo. Material (parcialmente) tomado de: Servidores de Información it.uc3m.es

Preguntas de autoevaluación tema 3

Tema 6: Sistemas Operativos

Gestión de Procesos. Concepto. Concepto y criterios de planificación. Utilización del procesador:

ALGORITMOS DE PROGRAMACIÓN NO EXPULSIVOS

Definimos un Sistema Gestor de Bases de Datos o SGBD, también llamado DBMS (Data Base Management System) como una colección de datos relacionados entr

Introducción a la seguridad en redes IP

SISTEMAS OPERATIVOS SISTEMA DE ARCHIVOS

Capítulo 4 Memoria virtual

Manejo de Entrada-Salida. Arquitectura de Computadoras

Sistemas informáticos industriales. Sistemas Operativos

Algoritmos de planificación:

Sistemas Operativos I

Sistemas Operativos. Sistemas Operativos II ITS EMT CETP 2014 Prof. L. Carámbula

Sistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria

Tema 12: El sistema operativo y los procesos

Universisdad de Los Andes Facultad de Ingeniería Escuela de Sistemas

Procesos Definición y Estados

Seguridad e integridad de bases de datos USB

Sistemas Operativos. Procesos

Administración del Procesador

Introducción a los Sistemas Operativos S.O.

- Bajo que condiciones el algoritmo de planifiación de procesos FIFO (FCFS) resultaría en el tiempo de respuesta promedio más pequeño?

PROBLEMAS TEMA 1: Estructuras de interconexión de un computador

CENTRO ESCOLAR PRECIDENTE FRANCISCO I MADERO BACHILLERATO GENERAL ESTATAL

Tema 4: Gestión de Procesos

Ing. Carlos Bacalla Página 1 de 5

1 ( 3,5 puntos) Responda, justificando sus respuestas, a las siguientes cuestiones:

POWER PC. Indice ARQUITECTURA DE COMPUTADORES. Antonio del Amo Ruiz. 1. Introducción. 2. Tecnología RISC. 3. Arquitectura de la CPU Power PC

Sistemas Operativos. Iván Bernal, PhD 4. Escuela Politécnica Nacional I.

Capítulo 2. Sistemas Operativos. Elementos, estructura y funciones generales.

SISTEMAS DE ARCHIVOS. Conrado Perea

Sistemas Operativos Gestión de procesador

Sus socios en ISO Manual de Calidad

TEMA 2. ORGANIZACIONES DE FICHEROS Y ESTRUCTURAS DE ACCESO

Módulo 2: Cómo funcionan las computadoras

Manejo de Entrada-Salida. Arquitectura de Computadoras

6. Enumere tres ventajas de los ULT frente a los KLT.

Sistemas Operativos. S.O. Estructura Básica. S.O. Como Administrador de Recursos. Multiprogramación. Multiprogramación y Procesos

Participantes: Avila Aida Betancourt Sioly Briceño Susana Rojas Alejandro

Sistemas Operativos Procesos Descripción y Control

CONFIGURACIÓN DE IMPRESORAS

Introducción a los Sistemas Operativos

Facultad de Ingeniería Industrial y de Sistemas v2.0 MA781U PLANIFICACION DE PROCESOS

Práctica final. Emilia Cruz Fernández Martínez

Tema 1: Introducción a los Sistemas Operativos

Sistemas Operativos. Dr. Luis Gerardo de la Fraga. Departamento de Computación Cinvestav

06. GESTIÓN DE PROCESOS Y RECURSOS

2/6 1. OBJETO Y ALCANCE Definir el procedimiento establecido por la División de Mantenimiento para el establecimiento y seguimiento de contratos de ma

NUEVAS TECNOLOGÍAS APLICADAS A LA GESTIÓN (E66) 5º INGENIERÍA EN INFORMÁTICA. Tema 5. Estructura Lógica de la Memoria.

Conceptos básicos de bases de datos

Diagrama a bloques de una computadora

Unidad 2: Gestión de Procesos

Fundamentos de los Sistemas Opera2vos. Tema 2. Procesos Planificación de CPU José Miguel Santos Alexis Quesada Francisco Santana

INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO HUAYCÁN (Decreto Supremo No ED y Resolución Directoral No ED)

Unidad 2: Gestión de Procesos

ENTRADA-SALIDA. 2. Dispositivos de Carácter: Envía o recibe un flujo de caracteres No es direccionable, no tiene operación de búsqueda

Unidad de Control y Evaluación de la Gestión Pública Encuesta para la evaluación del Control Interno Institucional

ARQUITECTURA, FUNCIONES Y ELEMENTOS DEL SISTEMA OPERATIVO INFORMÁTICO PEDRO MILENA JACOBO RUYMÁN

Manipulación de procesos

Unidad de Promoción y Desarrollo Guadiana OBJETIVO GENERAL

Estructura de los sistemas de cómputo

Tema 2. Administración de procesos

Concurrencia y distribución

FUNDAMENTOS DE LOS SISTEMAS OPERATIVOS

Estructura del Computador

Concurrencia de Procesos

TEMA I EL SISTEMA SAP R/3

SESIÓN 3 WINDOWS. I. CONTENIDOS 1. Iniciación a Windows. 2. Escritorio. 3. Panel de control.

Introducción a los sistemas operativos. Ing Esp Pedro Alberto Arias Quintero

Planificación de Monoprocesadores.

Tema 6 Organización y gestión de la memoria

PROCESOS E HILOS - Hilo

Software de administración de la impresora

Sistemas Operativos II Febrero 2007 Nombre:

Transcripción:

Tema 19 Gestión de procesos Índice 1 Introducción... 1 2 Componentes de un proceso... 2 3 Modos de ejecución de un proceso... 2 3.1 Estados de un proceso...3 4 Gestión de Procesos... 4 4.1 Creación y terminación de los procesos...4 4.2 Cambio de proceso...4 4.3 Planificación y expedición de los procesos...5 4.3.1 Algoritmos de planificación a corto plazo...5 4.4 Comunicación entre procesos y gestión de la concurrencia...7 5 Procesos e hilos... 8 1 Introducción Todos los sistemas operativos - de aquí en adelante SO - de multiprogramación, desde los SO Windows hasta los SO Unix, están construidos en torno al concepto de proceso. Un proceso es una entidad que puede ser asignada a un procesador y ejecutada por él. Un programa al ejecutarse puede dar lugar a un proceso o a varios. Los requisitos principales que debe cumplir un SO a la hora de gestionar la ejecución de los procesos son: El SO debe intercalar la ejecución de un conjunto de procesos para maximizar la utilización de los procesadores, ofreciendo a su vez un tiempo de respuesta razonable. El SO debe asignar los recursos a los procesos conforme a una política específica (p.e: prioridades) y evitar los interbloqueos. El SO debe dar soporte a la comunicación entre procesos y a la creación de procesos por parte de los usuarios. Los SO pueden ejecutar un conjunto de procesos de dos formas según sus requisitos: Por multiprogramación por lotes. Los procesos se ejecutan sin interrupción por el procesador, sólo se sustituye el proceso que se ejecuta cuando se detiene en espera de algún suceso (p.e una operación de E/S). Con este sistema se consigue maximizar la utilización del procesador. Por tiempo compartido. En sistema interactivos, donde el objetivo es minimizar el tiempo de respuesta. A cada proceso se le asigna un tiempo máximo de ejecución seguida por el procesador Quantum-, si llega al tiempo máximo, el Página 1 de 8

SO asigna el procesador a otro proceso. Las ordenes al SO vienen dadas en el terminal. 2 Componentes de un proceso Se puede considerar que un proceso está formado por cuatro partes diferentes, que son: El código del programa a ejecutar. Es el conjunto de instrucciones a ejecutar por el procesador. Los datos del usuario: Es la parte modificable del espacio de memoria del usuario. Donde se almacenan las variables del programa, las estructuras de datos... La pila del sistema. Cada proceso tiene una o más pilas FIFO asociadas a él. En las pilas se utilizan para almacenar los parámetros de llamada a subrutinas y las direcciones de retorno El uso de una pila permite la llamada recursiva de subrutinas. El contexto de ejecución incluye la información que necesita el SO para administrar el proceso y la información que necesita el procesador para ejecutarlo correctamente. En el contexto de ejecución se guardan datos como el contenido de los registros del procesador, el contador del programa, la prioridad del proceso... La colección de código de programa, datos, pila y contexto de ejecución puede llamarse imagen del proceso. Para que un proceso pueda ejecutarse al menos parte de la imagen del proceso debe estar ubicada en memoria principal. Además el SO mantiene la información de los recursos asignados a un proceso, como por ejemplo archivos o dispositivos de E/S. 3 Modos de ejecución de un proceso La mayoría de los procesadores dan soporte, como mínimo, a dos modos de ejecución como mínimo: El modo usuario en el cual se tienen menos privilegios y ciertas instrucciones no pueden ejecutarse, por ejemplo instrucciones que modifiquen los registros del control del procesador, el modo del sistema en el cual se tienen todos los privilegios. La razón por la que se usan dos modos de ejecución es proteger al SO de las injerencias de los programas de usuario, tanto casuales como maliciosas. En el modo del sistema, un proceso tiene el control completo del procesador y de todas sus instrucciones, registros o memoria. Este nivel de control no es necesario ni conveniente para los programas de usuario, porque sino podrían colgar el sistema e incluso tomar el control del ordenador. En el caso de que un proceso de usuario tenga que realizar operaciones que necesiten privilegios, realiza una llamada a una primitiva del SO. De esta forma, el SO lo sustituye en el procesador y se ejecuta la primitiva en modo sistema. Página 2 de 8

3.1 Estados de un proceso Durante la ejecución de un proceso este puede pasar por varias fases diferentes. Los estados de un sistema multiprogramado de tiempo compartido y memoria virtual se puede explicar utilizando un modelo de 7 estados: Admitir Nuevo Listo Expedir Ejecutado Time-out Activar Admitir Listo - Suspendido Suspender Ocurre Suceso Espera Suceso Liberar Terminado Activar Suspendido - Bloqueado Suspender Bloqueado Nuevo: El proceso acaba de crearse y todavía no está admitido por el SO en el grupo de procesos ejecutables. Listo: El proceso queda preparado para ser ejecutado, en cuanto se le de la oportunidad. La imagen del proceso, parte de ella se encuentra en memoria principal. Listo Suspendido: El proceso está disponible para ser ejecutado, pero no está en memoria principal por motivos de espacio. Cuándo el SO lo crea conveniente lo trasladará a la memoria principal y pasará al estado de Listo. Ejecutado: El proceso está asignado a un procesador y se está ejecutando. Deja de ejecutarse por cualquiera de estos motivos: El proceso finaliza normalmente o por un error del programa, el proceso queda en espera de un suceso o consume el tiempo máximo asignado Quantum. Bloqueado: El proceso está a la espera de que ocurra un suceso. Si el suceso se produce pasa al estado de listo para ejecución. Bloqueado suspendido: Durante la espera de un proceso a que ocurra un suceso, puede que el SO necesite ocupar el espacio en memoria principal del proceso y por ello es mandado a memoria secundaria. Terminado: El proceso a finalizado, y está a la espera que el SO liberé sus recursos. Página 3 de 8

4 Gestión de Procesos 4.1 Creación y terminación de los procesos Cuando el SO decide crear un nuevo proceso sigue este proceder: 1. Le asigna un identificador único al proceso. 2. Se le asigna espacio de memoria al proceso. La imagen de proceso (programa, datos, pila, bloque de control) debe ser almacenado en memoria. 3. Se inicializan los datos del bloque de control de procesos. El contador de programa, los punteros de las pilas, prioridad... 4. El SO actualiza sus estructuras de gestión de procesos, y coloca el proceso en la lista de procesos listos para ejecutar. Para terminar un proceso finalizado, se realiza lo contrario. Se liberan los recursos asignados al proceso (archivos en uso, la memoria de la imagen del proceso...) y el SO actualiza sus estructuras de gestión de procesos. 4.2 Cambio de proceso En cierto momento, un proceso que se está ejecutando se interrumpe, y el SO debe poner otro proceso en estado de ejecución y pasar el control a dicho proceso. Cuando el SO da el control a un proceso depende del procesador para volver a recuperarlo. Los motivos por el cual un proceso deja de ejecutarse son varios: Por una interrupción. Las interrupciones son señales de aviso que llegan al procesador y le indican que debe pasar el control al SO. Una interrupción de reloj el proceso a consumido su Quantum-, una interrupción de E/S donde el SO toma el control para decidir que hacer o por un fallo de memoria, por el cual el SO debe tomar el control traer el bloque de memoria ausente en la memoria principal. Por un cepo. Una instrucción en curso ha producido un error o una condición excepcional. El SO debe tomar el control para tratarlo adecuadamente. Una llamada del supervisor. El proceso que está ejecutándose, realiza una llamada a una función del SO y este toma el control para responder a la petición. El cambio de procesos lo realiza el procesador, cuando un proceso debe ser sustituido, se realiza el cambio de contexto para que se ejecute el SO. Primero guarda el contexto de ejecución del proceso saliente (PC, valor de los registros del procesador, PSW...) en memoria, y se carga el del SO. El SO mueve el proceso saliente a la cola de procesos suspendidos, selecciona el siguiente proceso a ejecutarse y carga el contexto de ejecución del nuevo proceso, que a continuación toma el control del procesador y se ejecuta. Página 4 de 8

4.3 Planificación y expedición de los procesos La planificación del procesador consiste en asignar los procesos al procesador o los procesadores para que sean ejecutados en algún momento, de forma que se cumplan los objetivos del sistema tales como el tiempo de respuesta, la productividad y la eficiencia del procesador. En la mayoría de sistemas, la actividad de planificación se divide en tres funciones independientes: largo plazo: Decisión de que proceso se añade a la reserva de procesos a ejecutar. De este modo, se controla el grado de multiprogramación. medio plazo: Decisión de que procesos se trasladan desde la memoria secundaria a la principal. Un proceso para ser ejecutado, necesita que al menos una parte del mismo este en memoria principal. corto: Decisión sobre que proceso disponible se ejecutará en el procesador. Se carga su información de contexto en los registros del procesador, para que comiencen a ejecutar sus instrucciones. La planificación está relacionada con el diagrama de transición de los estados de un proceso. largo plazo Nuevo largo plazo Listo - Suspendido medio plazo Listo corto plazo Ejecutado Suspendido - Bloqueado medio plazo Bloqueado Terminado 4.3.1 Algoritmos de planificación a corto plazo Los algoritmos de planificación determinan a que proceso se le asigna el procesador entre la lista de procesos en estado de listos para ejecución. Los algoritmos de planificación deben asignar los procesos de forma justa, previsible, maximizando la productividad y velocidad de respuesta del sistema y evitando la inanición de algún proceso. Cumplir con todos estos principios es imposible, por ello, hay varias políticas diferentes: Página 5 de 8

1. FIFO Firs in, First out-. El primer proceso en solicitar el procesador es el primero en recibirlo. Es una política fácil de implementar, predecible y no apropiativa, pero con muchos inconvenientes: a. Es injusta. Los procesos con pocas y rápidas operaciones de E/S salen beneficiarios sobre el resto de procesos. b. Tiene un rendimiento pobre. c. No es apropiada para sistemas de tiempo compartido. 2. Shortest job first Se asigna el procesador al proceso que lo utilizará durante el menor espacio de tiempo. Se consigue minimizar el tiempo de espera de los procesos. Es una técnica no apropiativa. Los procesos cortos esperan muy poco y los largos sólo esperan a los cortos. Inconvenientes: a. Difícil de implementar y de predecir. b. Injusto con los procesos largos, puede producir inanición. 3. Shortest Remain Time Next Se asigna el procesador al proceso que le quede menos tiempo para finalizar. Es una variante apropiativa de la anterior. Minimiza el tiempo medio necesario para finalizar un proceso. Inconvenientes, los mismos que el anterior: a. Difícil de implementar y de predecir. b. Injusto con los procesos largos, puede producir inanición. 4. Prioridades Cada proceso tiene un índice de prioridad. Los procesos prioritarios tienen acceso al procesador antes de los no prioritarios. Puede ser apropiativo o no apropiativo. Tiene el inconveniente de que puede provocar la inanición de los procesos con menor prioridad. Este inconveniente se puede solucionar, haciendo que el SO aumente la prioridad de los procesos en función del tiempo de espera. 5. Round Robin Esta técnica se combina con cualquiera de las otras técnicas de planificación anteriores en los SO interactivos. Consiste en asignar un tiempo máximo Quantum- de ejecución a cada proceso. De esta forma, el SO asegura una velocidad de respuesta adecuada para la interacción con usuarios. Esta técnica produce una sobrecarga al sistema que le resta productividad. Es una política de asignación justa con todos los procesos. Posibles problemas del Round-Robin: a. Si el Quantum es muy pequeño, se produce una gran sobrecarga del SO. El procesador está más tiempo gestionando procesos que realizando labores productivas. b. Si el Quantum es demasiado grande, la velocidad de respuesta del SO es demasiado lenta. El sistema deja de ser práctico para los usuarios. Página 6 de 8

4.4 Comunicación entre procesos y gestión de la concurrencia Un ordenador puede ejecutar varios procesos de forma simultánea. En ocasiones, los procesos interactúan entre ellos, intercambiando información. La comunicación se puede realizar de dos maneras diferentes: Mediante la compartición de recursos: Los procesos tiene un conocimiento indirecto de los otros. La comunicación se produce accediendo a un mismo espacio de almacenamiento, sea un fichero o memoria compartida. La programación de los procesos debe estar preparada para garantizar su exclusión mutua y la consistencia de las operaciones, por ejemplo la técnica de los semáforos. Hay SO que proporcionan mecanismos de comunicación que gestionan la concurrencia, como por ejemplo los pipeline de Unix. Mediante el envío de mensajes: Los procesos no comparten nada y pueden estar en ordenadores diferentes. No hay problemas de acceso concurrente a un mismo recurso. La programación de los procesos debe asegurar la correcta sincronización del envío de mensajes. Los SO también proporcionan mecanismos de comunicación, donde la sincronización es automática. Por ejemplo, primitivas de comunicación vía TCP/IP. En ambos casos, una mala gestión de las comunicaciones puede provocar problemas como: El interbloqueo entre procesos, cuando dos o más procesos están bloqueados pendientes entre si. Por ejemplo, el proceso A esta pendiente que el proceso B le envíe un mensaje. A su vez, el proceso B está pendiente que sea el proceso A que el envíe un mensaje. Los dos procesos quedan paralizados. La inanición de procesos, el proceso B está bloqueado pendiente de que el proceso A le conteste un mensaje. Pero el proceso A está ocupado respondiendo a mensajes de más prioridad que llegan continuamente. El proceso B tendrá un bajo rendimiento. Página 7 de 8

5 Procesos e hilos El concepto de proceso va ligado a dos características siguientes: Unidad de propiedad de los recursos: Un proceso tiene asignado un espacio en memoria para almacenar la imagen del proceso y se le asignan otros recusos, como canales de E/S o archivos. Unidad de expedición: Un proceso es ejecutado por el procesador, y su ejecución puede ser intercalada con otros procesos. Por ello, se almacena la información de contexto del proceso (PC, PSW...). Los SO actuales desligan estas dos características, e identifican con la unidad de expedición a la entidad hilo, o proceso ligero, y a la unidad de propiedad al proceso o tarea. De esta forma, un proceso puede tener varios hilos de ejecución, que son asignados individualmente por el SO al procesador. Los hilos de un proceso comparten el código del proceso, el campo asignado para el almacenamiento dinámico de memoria (heap) y los recursos asignados al procesador. El uso de hilos en un SO proporciona las siguientes ventajas: Rendimiento: Es más rápido crear hilos de un proceso existente, que crear nuevos procesos. También se tarda menos en alternar en el procesador dos hilos de un mismo proceso que dos procesos. Al compartir campos de la imagen del proceso, se ahorra en memoria. Por tanto, es más eficiente implementar, cuando se pueda, una aplicación como un conjunto de hilos que como un conjunto de procesos. Al compartir memoria y archivos, la comunicación entre hilos es más fácil que entre procesos. Facilita la organización de los programas. Los programas que realizan varias actividades diferentes y simultáneas, son más fáciles de diseñar e implementar con hilos. Por ejemplo: Una hoja de cálculo. Se puede diseñar como dos hilos: Uno se ocupa del interfaz y de la comunicación con el usuario y el otro de ejecutar los comandos recibidos y realizar las actividades de fondo. Página 8 de 8