Gestión de los procesos
Como se ha comentado anteriormente, un proceso es un conjunto de instrucciones que se ejecutan dentro de la CPU. Estado de los procesos Todos los procesos tienen un indicador que define la situación en que se encuentran con respecto a su funcionamiento. Existen, como míni- mo, tres estados diferentes: – Activo o en ejecución: proceso que está asignado para ejecu- tarse en el procesador. – Bloqueado: proceso que ha interrumpido su ejecución y que se encuentra a la espera de que termine la operación que le ha dejado bloqueado. – Preparado: proceso que se encuentra disponible para ejecu- tarse. Durante la vida de un proceso se producen cambios entre sus distintos estados. En el siguiente diagrama se muestran las transiciones permi- tidas entre ellos. • Bloqueo: cuando un proceso se está ejecutando y produce una lla- mada al sistema, debe bloquearse para evitar consumir CPU. Es lo que ocurre, por ejemplo, cuando requiere información y pide que se lean datos; en este caso, debe esperar a que se complete esa operación. • Apropiación: cuando un proceso se encuentra en ejecución y el gestor de procesos indica que debe detenerse, tiene que salir de la CPU hasta que pueda volver a estar activo. • Asignación: cuando un proceso entra a ejecutarse en la CPU. • Fin de bloqueo: cuando un proceso está esperando a que acabe Sistemas operativos monopuesto 53 la operación por la cual ha pasado a estar en el estado de bloqueo para continuar con su ejecución. En Unix existen más estados para los procesos que los que se han explicado anteriormente. En este diagrama se pueden observar las transiciones entre ellos. Además, cabe destacar que tenemos varios estados nuevos: • Nuevo: proceso que aún no ha sido elegido para iniciar su procesamiento. • Terminado: proceso que ha finalizado su ejecución. • Zombie: proceso que ha finalizado su ejecución pero que no ha liberado los recursos que ha utilizado. El sistema operativo tiene que agrupar la información de todos los pro- cesos del sistema, la cual se refiere al identificador del proceso, estado, prioridad, recursos y permisos asignados, etcétera. Además, se encuen- tra en el bloque de control del proceso (BCP), que se crea a la vez que el proceso. Cuando este es eliminado, se borra también toda la información. Prioridad y planificación En un sistema complejo, un buen criterio de planificación debe tener en cuenta muchos aspectos, algunos de ellos contrarios. Por ejemplo, sería deseable que todos los procesos obtuvieran el procesador en cuanto lo necesitaran, pero el tiempo del procesador es limitado y todo criterio que favorezca a un tipo de proceso perjudicará a otros. De la misma forma, es necesario que siempre haya trabajo preparado para cada dispositivo de cara a aumentar el aprovechamiento del equipo. Esto obliga a aumentar el número de procesos en espera, lo que incrementa el tiempo que los procesos están inactivos por falta de algún recurso. Admitido Planificado Interrupción Llamada al sistema de excepción Llamada al sistema de E/S o espera para evento Finaliza la operacióh u ocurre el evento Tema 3. Gestión de los recursos y de la memoria 54 Necesitamos encontrar un equilibrio entre esperas y recursos, el cual varía según la finalidad del equipo. Por ejemplo, en los sistemas de tiempo real los procesos deben obtener los recursos rápidamente, para lo que hay que tener varias unidades de cada uno; así será más probable que haya alguno disponible, aunque estarán más tiempo sin usarse y se aprovecharán menos. Por otro lado, en otros tipos de sistemas tienen preferencia la economía y el aprovechamiento de los recursos. Los aspectos principales para tener en cuenta para diseñar un méto- do de planificación son: • Imparcialidad: el planificador tiene que asegurar que cada proce- so tenga la fracción de tiempo de procesador que le corresponde. • Repetitividad: es de esperar que, con cargas de trabajo similares, se presenten comportamientos similares. • Predecibilidad: el tiempo de procesamiento de un trabajo y el coste de ejecutarlo serán iguales, más o menos, con cualquier car- ga de trabajo del equipo. • Eficiencia: el planificador debe procurar que el procesador y los demás recursos del equipo estén trabajando el mayor tiempo po- sible. • Productividad: se expresa mediante la cantidad de trabajo que se realiza por unidad de tiempo. • Economía: el objetivo es reducir los gastos añadidos al mínimo. • Equilibrio: se procura equilibrar el aprovechamiento de los recur- sos manteniendo ocupados todos los componentes del equipo. • Recursos críticos: se debe dar preferencia a aquellos procesos que están ocupando recursos críticos, para que terminen lo antes posible y los liberen. • Degradación progresiva: la respuesta del sistema debe presentar una degradación lo más uniforme posible al incrementarse la car- ga de trabajo. • Tiempos aceptables: el grado de satisfacción que tienen los usua- rios respecto al sistema depende del tiempo que deben esperar. Asimismo, necesitamos referencias numéricas para comparar objetiva- mente los métodos de planificación. Esto lleva al establecimiento de una serie de parámetros e índices que se basan en características de tiempo: • Tiempo de ejecución (t): es el tiempo de servicio que necesita un proceso. Sistemas operativos monopuesto 55 • Tiempo de terminación o de retorno (T): es el tiempo que trans- curre entre la hora de llegada del trabajo al ordenador y su hora de finalización. Mide el tiempo que un proceso está presente en el equipo y la fórmula para calcularlo es: T = Ht – Hn. • Tiempo de respuesta: es el tiempo que transcurre desde que se solicita algo hasta que se obtiene. • Tiempo de espera (w): es el tiempo que transcurre entre la hora de llegada del proceso y la hora en que empieza a ejecutarse, es decir, es el tiempo que el proceso tiene que esperar hasta que pasa por primera vez al estado de preparado. La fórmula para calcularlo es: W = Hc – Hn. • Tiempo perdido (M): es la diferencia del tiempo de ejecución al tiempo de finalización. La fórmula para calcularlo es: M = T – t. • Índice de penalización (P): es el cociente entre el tiempo de fi- nalización y el tiempo de ejecución. La fórmula para calcularlo es: P = T/t. • Índice de respuesta (R): es el inverso al anterior. La fórmula para calcularo es: R = t/T. • Tiempo del sistema: es el tiempo que consume el sistema ope- rativo en ejecutar los métodos de planificación establecidos, los cuales incluyen la comunicación de un proceso a otro. • Tiempo de inactividad: es el tiempo que el procesador permane- ce desocupado cuando no hay procesos preparados para ejecutar. Los métodos de planificación de procesos se clasifican como: • No apropiativos: si, una vez asignado el procesador a un proceso, ya no se le puede quitar. Los inconvenientes son el coste en pérdi- das de tiempo al cambiar de proceso y la coordinación del acceso a datos compartidos. Además, hay que evitar que las estructuras de datos del núcleo puedan quedar inconsistentes por los cambios de contexto. • Apropiativos: si, una vez asignado el procesador a un proceso, se le puede retirar. Esto genera un problema de desaprovechamiento de la CPU. Tema 3. Gestión de los recursos y de la memoria 56 Métodos no apropiativos FCFS (First Come First Served): se le asigna un recurso al primer proceso que llega. Es el procedimiento más sencillo y se emplea en las dos pla- nificaciones: – De trabajos: se ejecutan en el orden de llegada. – De procesos: se añade al final de la cola y se ejecutan según el orden de incorporación. Ventajas Inconvenientes Fácil de programar Los índices de funcionamiento no son buenos Necesita pocos recursos Consume muy poco tiempo de procesador Imaginemos que tenemos varios trabajos, con los tiempos de ejecución que se indican en la siguiente tabla. Tarea A 0 3 B 1 5 C 3 2 D 9 5 E 12 5 Hn t Si cada tarea se inicia cuando acaba la anterior, obtendríamos el siguiente resultado: Tarea A 0 3 B 1 5 C 3 2 D 9 5 E 12 5 0 3 3 0 1,0 3 8 7 2 1,4 8 10 7 5 3,5 10 15 6 1 1,2 15 20 8 3 1,6 6,2 2,2 1,74 Valores medios Hn Hc T t Ht M P Sistemas operativos monopuesto 57 Los valores medios pueden parecer aceptables, pero, si miramos con detenimiento, el índice de penalización del proceso C resulta exagerado. Eso sucede porque todo trabajo corto que llega poco después de uno largo tiene un índice de penalización grande. Este método se utiliza poco, pero es frecuente encontrarlo combinado con otros. SJN (Shortested Job Next). Para su ejecución, selecciona el trabajo que necesita menos tiempo de entre todos los que estén listos para ejecutarse. Existen distintas soluciones a las desventajas que presentan estos métodos. El usuario debe incluir una estimación del tiempo de ejecu- ción. Pero surge otro problema, pues también tendrán que poner como tiempo estimado el menor valor que se permita para que sus trabajos salgan favorecidos. El sistema operativo calcula las estimaciones mediante aproximaciones sucesivas en las diversas ejecuciones. Se empieza con una estimación inicial del tiempo y se ejecuta el trabajo, lo que permite obtener una evaluación certera del tiempo. Imaginemos que tenemos varios trabajos, con los tiempos de ejecución que se indican en la siguiente tabla. Tarea Hn t P 0 100 Q 0 10 R 0 1 Si la siguiente tarea a ejecutar es la más corta, tendríamos: Tarea Hn Hc Ht t T M P P 0 100 Q 0 10 R 0 1 Valores medios 41,0 4,0 1,07 11 111 111 11 1,11 1 11 11 1 1,10 0 1 1 0 1 Como se aprecia, el valor medio del tiempo de terminación mejora considerablemente al adelantar los procesos cortos, aunque en perjuicio de los largos. Además, se reducen los valores medios, aunque el propietario del trabajo largo no esté de acuerdo. El problema principal de este procedimiento es que necesita conocer con antelación el tiempo de ejecución de cada proceso, lo que no es posible en muchas ocasiones. Tema 3. Gestión de los recursos y de la memoria 58 Métodos apropiativos SRT: combina las ventajas de los procedimientos apropiativos con las del SJN. El procesador se adjunta al proceso más corto en cada momen- to, pero como el tiempo que falta para terminar solo disminuye para el proceso activo, solo puede ocurrir una apropiación si llega un proceso nuevo que necesite menos tiempo del que le falta al actual. Este método reduce las conmutaciones improductivas, las que no se deben a lectura/escritura. Además, tiende a mantener la cola de proce- sos preparados lo más corta posible, por lo que reduce el valor medio del tiempo de espera. Imaginemos que tenemos varios trabajos, con los tiempos de ejecución que se indican en la siguiente tabla. Tarea Hn t H 0 6 I 1 1 J 2 3 Si la siguiente tarea a ejecutar es la más corta, tendríamos: Tarea Hn Hc Ht t T M P Valores medios 4,67 1,33 1,22 0 0 10 4 1,67 1 2 1 0 1,0 5 10 2 5 3 0 1,0 H 0 6 I 1 1 J 2 3 El índice de penalización y el tiempo perdido son menores que en el SJN, excepto para los proce- sos más largos, que se ven perjudicados. Sistemas operativos monopuesto 59