Читать книгу Desarrollo y optimización de componentes software para tareas administrativas de sistemas. IFCT0609 - José Luis Villada Romero - Страница 16
2.3.Ejecución de programas y gestión de procesos
ОглавлениеEl sistema operativo guarda información de cada proceso, de forma que es posible identificar sus características y todos los recursos que tiene asignados.
De toda la información que es mantenida por el sistema operativo, existe una parte muy importante, conocida como Bloque de Control del Proceso (BCP) que contiene, entre mucha otra información, el valor de cada registro del proceso.
En el sistema operativo existen dos tipos de procesos que se pueden generar: procesos de usuario (los que son creados por el usuario) y procesos de sistema (que forman parte del sistema operativo).
Las funciones más importantes que debe llevar a cabo el módulo de gestión de procesos son:
Intercalar la ejecución de procesos para optimizar el uso del procesador.
Dar soporte a la comunicación entre procesos.
Proporcionar mecanismos para la creación y terminación de procesos.
Proporcionar un mecanismo de asignación de recursos a los procesos.
De todas estas funciones se encarga el planificador de procesos del sistema operativo.
El objetivo de los sistemas multitarea es mantener múltiples programas en ejecución simultáneamente, pero como la CPU solo puede ejecutar un programa cada vez, hay que decidir quién se ejecuta en cada momento. A este mecanismo se le denomina planificación (scheduling).
Hoy en día, todos los sistemas operativos importantes se consideran SS. OO. de tiempo compartido. Se usa una fracción de tiempo denominada quantum, que representa el tiempo máximo que un proceso puede tener asignada la CPU. Tras este tiempo, el planificador asignará la CPU a otro proceso.
El proceso puede pasar por varios estados desde que se crea hasta que se destruye.
Cuando el sistema operativo ejecuta un programa, crea un proceso con estado “nuevo”. En este estado, el proceso no ha sido admitido todavía por el SO. En general, estos procesos no han sido cargados aún en memoria principal. Cuando el SO acepta el proceso, cambia su estado a “listo”. Ahora el proceso está preparado para ser ejecutado, solo espera a que el planificador de corto plazo lo disponga. Cuando el planificador asigna la CPU a un proceso, este pasa al estado de “ejecución”. Solo hay en cada momento un proceso en este estado. Si el proceso realiza una operación que requiere el acceso a un dispositivo de Entrada/Salida, como por ejemplo el disco duro, el proceso pasa al estado “bloqueado” hasta que el dispositivo termina de realizar la operación solicitada por el proceso. Mientras, el procesador se mantiene ocupado con otros procesos. Cuando la operación de Entrada/Salida acaba, el proceso pasa al estado de “listo” de nuevo para que el planificador lo tenga en cuenta. En condiciones normales, un proceso termina cuando se ejecuta su última instrucción. En este caso, el SO libera todos los recursos asignados y todos los datos del proceso.
Aplicación práctica
Una aplicación informática es ejecutada en un sistema operativo. La aplicación realiza una lectura en el disco duro del sistema. Finalmente, el usuario cierra la aplicación. Describa la secuencia de estados en los que se encuentra el proceso de la aplicación en cada momento desde que se inicia hasta que finaliza.
SOLUCIÓN
La aplicación es ejecutada. Se crea el proceso. El estado del proceso es NUEVO.
Después, el proceso es inicializado y preparado para la ejecución. El estado del proceso es LISTO.
El proceso consigue el acceso al procesador y empieza la ejecución. El estado del proceso es EJECUTANDO.
El proceso realiza una petición de E/S al disco para obtener un dato. El proceso permanece en suspensión hasta que el dispositivo entrega la información. El estado del proceso es BLOQUEADO.
El disco duro devuelve los datos. El procesador está ejecutando otro proceso. El estado del proceso pasa a LISTO.
El sistema operativo vuelve a asignar el procesador al proceso y vuelve a ejecutarse. El estado pasa a EJECUTANDO.
Finalmente, el usuario cierra la aplicación. El proceso termina la ejecución liberando todos los recursos. El estado pasa ha FINALIZADO.