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.
2.4.Gestión de almacenamiento. Sistemas de archivos
El sistema operativo necesita manejar una gran cantidad de información, para lo cual usa dispositivos de almacenamiento secundario. Por ello, es necesario que siga un modelo de gestión coherente y uniforme de la información.
Para un SO, el concepto básico de almacenamiento es el archivo. Un archivo es una unidad lógica que contiene información relacionada.
Entre las principales funciones del módulo de gestión de almacenamiento, destacan:
Realizar la traducción del sistema de direccionamiento lógico al sistema de direccionamiento físico en los dispositivos masivos.
Realizar la transferencia e intercambio de datos entre la memoria principal y la memoria secundaria.
Realizar tareas de mantenimiento sobre los dispositivos de memoria secundaria: controlar el estado, la asignación de memoria física y el espacio disponible de cada dispositivo.
Proporcionar mecanismos para proteger, compartir, recuperar y restaurar los datos almacenados en memoria secundaria.
2.5.Gestión de dispositivos de entrada/salida
Antes de abordar el tema de la gestión de dispositivos, hay que definir exactamente qué se entiende por un dispositivo de entrada/salida. Cuando se habla de un dispositivo de entrada/salida, se hace referencia a cualquier elemento que no sea ni la memoria ni el procesador.
El problema de un gestor de dispositivos de entrada/salida radica en la existencia de múltiples tipos de dispositivos distintos. Las principales características que definen un dispositivo son:
Velocidad. Existen dispositivos lentos, que transfieren unos cuantos caracteres por segundo. Pero también existen dispositivos muy rápidos, que mueven millones de caracteres por segundo, como por ejemplo los discos duros y los dispositivos de comunicaciones.
Unidad de transferencia. El dispositivo puede transferir bytes como el teclado o el ratón, o bien bloques como los discos.
Codificación de la información. La información que transmite un dispositivo puede ser muy diversa, incluso un mismo dispositivo puede adoptar distintos tipos de codificación en instantes diferentes.
Protocolo de comunicación. El lenguaje entre el dispositivo y la CPU depende del mismo y de las conexiones.
Operaciones. Existen dispositivos solo de entrada, solo de salida y de entrada/salida.
Читать дальше