Sistemas Operativos Clase 2: Administración de procesos. Administración de procesos Un concepto muy importante en el ambiente de diseño de todo sistema operativo, es el de proceso o tarea. De manera general, un proceso es un conjunto de instrucciones (programa) que se está ejecutando y que posee su propio espacio de memoria. Administración de procesos Es importante mencionar que un proceso no es un programa. El programa en sí es un elemento pasivo, que puede permanecer en memoria, en disco, o en algún otro lugar de almacenamiento. El proceso es un elemento activo, un programa en ejecución es un proceso. Es posible tener dos o más procesos independientes, aun cuando provengan del mismo programa. Administración de procesos En ocasiones, es común que un proceso “engendre” muchos procesos durante su ejecución; en este caso se dice que los procesos generan hijos o procesos hijos; al proceso generador se le conoce como proceso padre. Administración de procesos ¿Por qué son importantes los procesos en un sistema operativo? Algunas de las características que un SO debe satisfacer, están en función de la manera en que es capaz de manejar a los procesos; en ese sentido se tiene: • El SO debe ser capaz de intercalar la ejecución de un conjunto de procesos, de tal manera que maximice el uso del procesador. Administración de procesos • El SO debe asignar los recursos a los procesos, cumpliendo determinadas reglas que se fijan al inicio de toda ejecución. • La comunicación entres procesos es muy importante, y el soporte lo debe dar el SO. Administración de procesos • Un SO monoproceso solo permite que exista un proceso en cada instante. Si se quieren ejecutar varios procesos, hay que lanzar la ejecución de la primera y esperar a que termine antes de poder lanzar la siguiente. La ventaja de estos sistemas operativos es que son muy sencillos. • Un SO multiproceso permite que coexistan varios procesos a la vez. El SO se encarga de ir repartiendo el tiempo del procesador entre estos procesos, para que todos ellos vayan avanzando en su ejecución. Administración de procesos Nuestro interés se centra en los sistemas multiproceso o multitarea. La multitarea o multiproceso se basa en las tres características siguientes: • Paralelismo real entre E/S y procesador. • Alternancia en los procesos de fases de E/S y de procesamiento. • Memoria principal capaz de almacenar varios procesos. Administración de procesos Las ventajas de la multitarea son: • Facilita la programación, ya que permite dividir las aplicaciones en varios procesos, lo que beneficia a su modularidad. • Permite prestar un buen servicio, puesto que se puede atender a varios usuarios de forma eficiente, interactiva y simultánea. • Aprovecha los tiempos muertos que los procesos pasan esperando a que se completen sus operaciones de E/S. Administración de procesos Proceso nulo: el procesador no para de ejecutar nunca. Por lo que hay ocasiones en lo que el procesador no tiene nada que hacer. Para evitar lo anterior, los sistemas operativos incluyen el denominado proceso nulo. Este proceso consiste en un bucle infinito que no realiza ninguna operación útil. El objetivo de este proceso es “entretener” al procesador cuando no hay ninguna otra tarea. Otra solución es emplear la instrucción HALT. Administración de procesos Grado de multiprogramación: es el número de procesos activos que mantiene un sistema. Mientras más procesos activos haya en un sistema, mayor es la probabilidad de encontrar siempre un proceso en estado de listo para ejecutar, por lo que entrará a ejecutar menos veces el proceso nulo. Sin embargo, se tiene el inconveniente de que, a mayor grado de multiprogramación, se tienen mayores necesidades de memoria. Estados de un proceso La ejecución de varios procesos en un sistema, requiere que el SO asigne determinados estados de ejecución a un proceso. Los estados de un proceso, indican la situación en que se encuentra cada uno de los procesos; de esta manera el SO puede implementar mecanismos de asignación de CPU a cada uno de ellos. Estados de un proceso Los estados más comunes por lo que puede pasar un proceso son: • Nuevo: que es instante en que se esta creando. • Ejecución. • Espera: el proceso esta esperando a que suceda algún evento, por ejemplo un evento de I/O o una señal. • Listo: cuando el proceso esta a la espera de que se le asigne un procesador. • Terminado. Estados de un proceso Dependiendo del SO, pueden existir más estados de proceso; por ejemplo, en Linux existe lo que se conoce como zombi. Un proceso zombi es aquel que ya termino su ejecución, pero que el sistema aun registra. Información de un proceso Un proceso no sólo posee un estado, sino también posee información que debe ser considerada por el SO; esta información es: • Estado del procesador. • Imagen de memoria del proceso. • Tablas del SO. Información de un proceso Estado del procesador: representa el contenido de todos los registros del procesador. • • • • • Registros generales Contador de programa. Puntero de pila. Registro o registros de estado. Registros especiales. Información de un proceso Imagen de memoria: está formada por los espacios de memoria que está autorizado a utilizar. Las características son: • El proceso solamente puede tener información en su imagen de memoria y no fuera de ella • La imagen de memoria estará referida a memoria virtual o a memoria física. • Los procesos suelen necesitar asignación dinámica de memoria. Por tanto, la imagen de memoria de los mismos se deberá adaptar a estas necesidades. Información de un proceso Imagen de memoria: El SO puede asignar la memoria de varias maneras: • Proceso con un único segmento de tamaño variable. • Proceso con un número fijo de segmentos de tamaño variable. • Proceso con un número variable de segmentos de tamaño variable. Información de un proceso Tablas del sistema operativo: son todas aquellas que describen a los procesos y a los recursos del sistema. El SO mantiene un a serie de tablas con información sobre los procesos y los recursos, la mayoría de estas tablas no son completas, y su contenido depende de dos factores: eficiencia y necesidad de compartir información. Información de un proceso Tablas del sistema operativo: • Eficiencia: estas tablas se construyen con información básica, de tal manera que el contenido de esta información debe ser de tamaño fijo. • Compartir información: la información de estas tablas puede ser compartida por varios procesos; no es necesario que el tamaño de la información sea estática, ya que en principio no se requiere de acceso rápido. Fin de la clase 2