TEMA 2. El Sistema Operativo. Gestión de procesos PDF
Document Details
Uploaded by StrongerStrontium9701
IES Medina Azahara
Tags
Summary
Este documento proporciona una introducción a los sistemas operativos, incluyendo la gestión de procesos. Explica la evolución y clasificación de los sistemas operativos, así como la gestión de recursos del hardware. Se describe la comunicación entre procesos y los servicios del sistema operativo.
Full Transcript
TEMA 2. El Sistema Operativo. Gestión de procesos Índice de contenido Contenido Software de base de un sistema informático.................................................................................. 1 Evolución de los Sistemas Operativos....................................................
TEMA 2. El Sistema Operativo. Gestión de procesos Índice de contenido Contenido Software de base de un sistema informático.................................................................................. 1 Evolución de los Sistemas Operativos.......................................................................................... 2 Clasificación de Sistemas Operativos........................................................................................... 4 Sistema operativo. Elementos y estructura del sistemaoperativo.................................................... 6 Elementos de un sistema operativo........................................................................................... 7 Estructura de un sistema operativo........................................................................................... 8 Sistemas operativos con estructura monolítica..................................................................... 9 Sistemas operativos con estructura de micronúcleo.............................................................10 Sistemas operativos con estructura de núcleo híbrido..........................................................11 Gestión de procesos.....................................................................................................................13 ¿Cómo se ejecuta un proceso?.................................................................................................16 ¿Cómo se intercalan los procesos?...........................................................................................18 ¿Cuándo acaba un proceso?.....................................................................................................20 Planificación de procesos........................................................................................................21 Comunicación entre procesos..................................................................................................29 Procesos y servicios................................................................................................................29 Software de base de un sistema informático Como vimos en el capítulo anterior, el software de sistema, también llamado software de base, es el conjunto de software que se encarga de gestionar los recursos hardware del sistema informático, separando tanto a los usuarios finales como a los desarrolladores de software de sus características específicas. En particular, en su relación con la memoria, el almacenamiento externo, las impresoras, las comunicaciones y los dispositivos de comunicación con el usuario. Para lograrlo, incorpora una interfaz adecuada para el usuario final y un conjunto de funciones y procedimientos que pueden ser invocados por los programas de aplicación y que recibe el nombre de API (del inglés Application Programming Interface). Si no existiera el software de sistema, cada programador que, por ejemplo, es- tuviese escribiendo un programa que ofreciera datos impresos, tendría que escribir las instrucciones necesarias para controlar de forma precisa la impresora. Si, además, el objetivo fuese que el programa funcionara en ordenadores con diferentes modelos de impresora, tendría que repetir el trabajo para cada modelo concreto. Esto haría que el trabajo al que se enfrentara fuese ingente. Página 1 SISTEMAS OPERATIVOS MONOPUESTO TEMA 2. El Sistema Operativo. Gestión de procesos Sin embargo, el software de sistema hace que los programas de aplicaciones puedan manejar las impresoras de una forma genérica, con órdenes básicas y sencillas, y lo que es más importante, generales para cualquier modelo de impresora. Además, esta idea se aplica también al resto de los dispositivos: discos duros, dispositivos de almacenamiento USB, monitores, ratones, etc. Todas las órdenes de este tipo son las que forman el API. Aunque el elemento fundamental del software de sistema es el sistema operati- vo, también se incluyen en este nivel los controladores de dispositivo, las herramientas de diagnóstico y otras utilidades. En resumen El Sistema operativo es el software básico del ordenador. Gestiona todos los recursos hardware del sistema informático. La forma de comunicarse con el SO es mediante la interfaz de usuario. Puede ser en modo texto o gráfico. La mayoría de aparatos electrónicos que utilizan microprocesadores para funcionar, llevan incorporado un sistema operativo (teléfonos móviles, reproductores de DVD, computadoras, radios, enrutadores, etc.). En cuyo caso, son manejados mediante una Interfaz Gráfica de Usuario, un gestor de ventanas o un entorno de escritorio. Evolución de los Sistemas Operativos La evolución de los sistemas operativos ha ido siempre ligada a la evolución del hardware de los ordenadores. Si se diseñaban sistemas operativos más potentes es debido a que el hardware sobre el que van a funcionar también lo es. Página 2 SISTEMAS OPERATIVOS MONOPUESTO TEMA 2. El Sistema Operativo. Gestión de procesos a) Primera generación de sistemas operativos: No existían los sistemas operativos Los datos se guardaban en tarjetas perforadas En los años 40 existía una persona por cada ordenador que se encargaba de realizar las funciones que hoy realiza un sistema operativo. Esta persona recibía el nombre de operador. Su trabajo consistía en cargar en la memoria del ordenador los programas que habían hecho los programadores mediante unas tarjetas perforadas. Una vez cargadas estas tarjetas se cargaba también un programa llamado compilador que transformaba el lenguaje escrito por el programador en lenguaje máquina (0’s y 1’s) Si el programa estaba correcto se ejecutaba y si no se devolvía y había que crear nuevas tarjetas perforadas. Lenguaje máquina Hasta ahora el tratamiento de trabajos se realizaba en serie, es decir, se trataba un trabajo detrás de otro. b) Segunda generación de sistemas operativos: Aparecen las cintas magnéticas para guardar los datos. 1.- Procesamiento por lotes Como solución para optimizar el tiempo de montaje surgió la idea de agrupar los trabajos en lotes, en una misma cinta, de forma que se ejecutaran uno a continuación de otro sin perder apenas tiempo en la transición. Se realizaban en tres fases: a) En una máquina aparte se pasaban las tarjetas perforadas a cintas magnéticas sin quitarle tiempo a la máquina principal b) Cuando la cinta estaba llena, se pasaba a la máquina principal para ejecutar todos los trabajos en lote. c) Cuando terminaba, se pasaba la cinta con los resultados a otra máquina para imprimir estos resultados. Ejemplo de estos sistemas operativos: FMS c) Tercera generación de sistemas operativos: Los ordenadores se van haciendo más pequeños y más potentes. Aparecen los discos magnéticos. 1. Aparecen los Sistemas operativos de multiprogramación En un sistema multiprogramado la memoria principal alberga a más de un programa de usuario. La CPU ejecuta instrucciones de un programa, cuando el que se encuentra en ejecución realiza una operación de E/S; en lugar de esperar a que termine la operación de E/S, se pasa a ejecutar otro programa. Si éste realiza, Página 3 SISTEMAS OPERATIVOS MONOPUESTO TEMA 2. El Sistema Operativo. Gestión de procesos a su vez, otra operación de E/S, se mandan las órdenes oportunas al controlador, y pasa a ejecutarse otro. 2. Sistemas operativos de tiempo compartido Hay varios usuarios conectados a un mismo ordenador con terminales El sistema operativo se encarga de repartir el tiempo de la CPU entre los distintos usuarios, asignando de forma rotativa pequeños intervalos de tiempo. 3. Sistemas operativos multiprocesador. Al final de esta generación aparecen este tipo de S.O. Permite trabajar con máquinas que poseen más de un microprocesador. Ejemplo de estos sistemas operativos: Unix d) Cuarta generación de sistemas operativos: Auge de los ordenadores personales (finales años 70 y principios de 80) La casa Apple sacó el primer ordenador personal y dado el éxito que tuvo, las demás casas empezaron a sacar también más ordenadores personales creando un sistema operativo para cada uno de ellos, Apple el Mac OS, IBM el CP/M. Bill Gates crea el DOS en modo comando. Mac OS diseñaba un SO totalmente nuevo basado en una Interfaz Gráfica. Microsoft desarrolló un programa basado en el carácter intuitivo del interfaz gráfico del Macintosh, Windows. Ejemplos de estos sistemas operativos: MS-DOS, MAC, LINUX, NETWARE, WINDOWS. e) Quinta Generación de Sistemas Operativos Aparecen las redes de ordenadores (Sistemas Operativos en Red). Aparecen los sistemas distribuidos. Permite trabajar a varias máquinas conectadas en red. Clasificación de Sistemas Operativos En función del Tiempo de respuesta Por lotes o (batch) una vez introducida una tarea en el ordenador, el usuario no mantiene contacto alguno con ella hasta que finaliza su ejecución en la que se le proporcionan los resultados. Tiempo real o interactivos donde el usuario está en contacto con el equipo y necesita respuestas rápidas a las situaciones. Página 4 SISTEMAS OPERATIVOS MONOPUESTO TEMA 2. El Sistema Operativo. Gestión de procesos En función del número de tareas que administran Monotarea: Solamente permite ejecutar un proceso (aparte de los procesos del propio SO) en un momento dado. Una vez que empieza a ejecutar un proceso, continuará haciéndolo hasta su finalización y/o interrupción. Multitarea: Es capaz de ejecutar varios procesos al mismo tiempo. Este tipo de SO. normalmente asigna los recursos disponibles (CPU, memoria, periféricos) de forma alternada a los procesos que los solicitan, de manera que el usuario percibe que todos funcionan a la vez, de forma concurrente. En función del número de usuarios Monousuario: Si sólo permite ejecutar los programas de un usuario al mismo tiempo. Multiusuario: Si permite que varios usuarios ejecuten simultáneamente sus programas, accediendo a la vez a los recursos de la computadora. Normalmente estos sistemas operativos utilizan métodos de protección de datos, de manera que un programa no pueda usar o cambiar los datos de otro usuario. En función del número de procesadores Según el número de procesadores que sea capaz de controlar el sistema operativo nos podemos encontrar con dos tipos de sistemas operativos: Monoprocesador o monoprocesamiento: Un sistema operativo monoproceso es aquél que es capaz de manejar solamente un procesador de la computadora, de manera que si la computadora tuviese más de uno le sería inútil. El ejemplo más típico de este tipo de sistemas es el DOS y MacOS. Página 5 SISTEMAS OPERATIVOS MONOPUESTO TEMA 2. El Sistema Operativo. Gestión de procesos Multiprocesador o multiprocesamiento: están diseñados para trabajar con más de un procesador y pueden distribuir entre ellos su carga de trabajo. Dentro de los sistemas operativos con multiprocesamiento nos podemos encontrar dos tipos: o Asimétrico: Una CPU principal retiene el control global de la computadora, así como el de los otros procesadores. De esta manera hay un procesador que realiza la mayor parte del trabajo, mientras que el resto quedan destinados a tareas puntuales cuando el primero de los procesadores lo requiere o se satura. o Simétrico: En un sistema multiprocesamiento simétrico, no existe una CPU controladora única, sino que todos los procesadores contribuyen en la misma cantidad de trabajo al rendimiento del equipo. Las extensiones de Unix, que soportan multiproceso asimétrico ya están disponibles y las extensiones simétricas se están haciendo disponibles. En función de la administración de red Red: Coordina, gestiona y comparte los recursos de los diferentes equipos, equipos que se encuentran conectados configurando una red. Cada equipo de la red mantiene sus propio sistema operativo y su propio sistema de archivos. Ejemplos son Windows Server y Linux Server. Distribuido: los sistemas distribuyen los trabajos entre diferentes procesadores, que pueden estar en el mismo equipo o en equipos diferentes, algo que es transparente para el usuario. Sistema operativo. Elementos y estructura del sistema operativo Podríamos definir el concepto de Sistema Operativo como un programa, o un conjunto de programas que colaboran entre ellos para administrar los elementos físi- cos de un sistema informático, optimizando su uso y ofreciendo determinados servi- cios a los programas de aplicación. Un sistema operativo se encargará de aspec- tos como el uso compartido ordenado de los recur- sos entre diferentes usuarios o la protección de re- cursos, evitando que un usuario acceda a recursos para los que no está autorizado. Página 6 SISTEMAS OPERATIVOS MONOPUESTO TEMA 2. El Sistema Operativo. Gestión de procesos Para que esta protección sea posible, el sistema informático debe ser capaz de ejecutar instrucciones en dos niveles diferentes: En modo usuario: es el modo menos privilegiado de funcionamiento del sistema. En este modo no se permite el acceso directo al hardware. Las instrucciones que se ejecutan en este modo sólo pueden acceder a su pro- pio espacio de direcciones de memoria y utilizan el API del sistema para requerir los servicios del sistema operativo. Este es el modo de ejecución que utilizan todos los programas de aplicación que tengamos instalados En modo núcleo (también llamado modo kernel) o modo supervisor: En este modo, las instrucciones se ejecutan en un modo privilegiado, teniendo acceso directo a toda la memoria (incluidos los espacios de direcciones de to- dos los procesos que estén ejecutándose). También podrán acceder a todo el hardware disponible. En este modo sólo se ejecutan algunas partes del sistema operativo. Desde un punto de vista comercial, los sistemas operativos se ofrecen como un software que incluye diferentes herramientas para ofrecer funcionalidades básicas al usuario. Esto hace que el usuario piense en el navegador web o en el editor de textos como partes del sistema operativo. Sin embargo, esta creencia es errónea, ya que el navegador web, el procesador de textos e incluso la propia interfaz gráfica que esta- mos utilizando forman parte del concepto de software de aplicación. El verdadero sistema operativo se encuentra oculto bajo estas y otras herramientas, haciendo de in- termediario entre ellas y el hardware del ordenador. Elementos de un sistema operativo Como podemos imaginar, un sistema operativo es un programa muy complejo que debe estar muy bien organizado y estructurado internamente para llevar a cabo su trabajo de una forma muy eficiente. En este sentido, los sistemas operativos se subdi- viden en diferentes componentes que se encuentran especializados en aspectos muy concretos del mismo. Los elementos que constituyen la mayoría de los sistemas operativos son los siguientes: Página 7 SISTEMAS OPERATIVOS MONOPUESTO TEMA 2. El Sistema Operativo. Gestión de procesos Gestor de procesos. Gestor de memoria virtual. Gestor de almacenamiento secundario. Gestor de entrada y salida. Sistema de archivos. Sistemas de protección. Sistema de comunicaciones. Programas de sistema. Gestor de recursos. Como puede suponerse, cada uno de los elementos que componen el sistema operativo se encarga de una función particular. Más abajo estudiaremos las principales funciones que resuelve un sistema operativo. Estructura de un sistema operativo Ahora que ya sabemos que el sistema operativo se divide en distintos elemen- tos, podemos plantearnos el modo en el que dichos elementos se organizan dentro del sistema operativo para llevar a cabo su cometido. También será importante para el di- seño del sistema establecer qué componentes del mismo se ejecutan en modo núcleo y cuáles en modo usuario. En este sentido, los planteamientos que se apli- can en los sistemas operativos más conocidos son los siguientes: Monolítico. Micronúcleo. Núcleo híbrido. Y para comprender sus diferencias, a continuación vamos a incluir algunos de- talles sobre cada uno de ellos. Página 8 SISTEMAS OPERATIVOS MONOPUESTO TEMA 2. El Sistema Operativo. Gestión de procesos Sistemas operativos con estructura monolítica En este tipo de sistemas, el núcleo concentra la mayor parte de la funcionalidad del sistema operativo (sistema de archivos, gestión de memoria, etc), de modo que to- dos sus componentes principales se ejecutarán en modo núcleo. Aunque estos componentes se programen de forma separada se unen durante el proceso de compilación mediante un enlazador (linker). Para añadir flexibilidad a esta estructura, los sistemas operativos modernos que la utilizan (como es el caso de GNU/Linux) pueden cargar módulos ejecutables de forma dinámica, permitiéndole actuar, en cierto modo, como un micronúcleo. En una estructura monolítica pura tendríamos un núcleo complejo y de gran ta- maño que debería ser recompilado por completo ante cualquier modificación. Sin em- bargo, cuando se utiliza la carga dinámica de módulos, éstos pueden compilarse por separado y cargarse durante la ejecución del sistema. En cualquier caso, seguirán eje- cutándose en modo núcleo, lo que, comparado con un sistema con estructura de mi- cronúcleo, lo hace más rápido, pero más vulnerable a errores de programación. Como ejemplos de sistemas con estructura monolítica podemos nombrar Solaris, FreeBSD, OSX (versiones anteriores a la 9), GNU/Linux y las versiones de escritorio de Windows anteriores a XP. Página 9 SISTEMAS OPERATIVOS MONOPUESTO TEMA 2. El Sistema Operativo. Gestión de procesos Sistemas operativos con estructura de micronúcleo En este tipo de sistemas, el núcleo sólo contiene la implementación de servi- cios básicos como el soporte de acceso a memoria de bajo nivel, la administración de tareas y la comunicación entre procesos (también conocida como IPC, del inglés, In- ter-Process Communication). En este tipo de arquitectura, el micronúcleo es el único componente que se eje- cuta en modo privilegiado. El resto de las funciones del sistema, como los controla- dores de dispositivos (drivers), el sistema de archivos, la gestión de E/S, etc, se ejecu- tan en modo usuario. De esta forma, es más difícil que un error de programación en uno de los módulos afecten al funcionamiento del resto (haciendo que el sistema sea más fia- ble). Además, los módulos se pueden progra- mar compilar y cargar por separado. Sin embargo, pueden presentar dificul- tades en la sincronización de sus componentes, pueden ocasionar una mayor complejidad del código resultante y puede ofrecer un bajo ren- dimiento por las continuas llamadas entre módulos y los constantes cambios en el modo de ejecución. Como ejemplos de sistemas con estructura de micronúcleo podemos nom- brar AIX, AmigaOS, Minix, Symbian (aunque en algunos textos aparece como mono- lítico con carga dinámica de módulos) y NeXTStep (aunque a veces lo en- contramos entre los siste- mas con núcleo híbrido). Página 10 SISTEMAS OPERATIVOS MONOPUESTO TEMA 2. El Sistema Operativo. Gestión de procesos Sistemas operativos con estructura de núcleo híbrido Este tipo de arquitectura consiste básicamente en un esquema de micronúcleo que incluye algo de código complementario para hacerlo más rápido, aunque buena parte de las funciones del sistema operativo siguen ejecutándose en modo usuario. Se trata de una solución de compromiso que han adoptado muchos de los siste- mas operativos modernos, como las versiones de escritorio de Microsoft Windows, a partir de XP, y todas las versiones de Servidor. También se encuentra en esta categoría Mac OSX. Funciones del sistema operativo. Recursos. Como hemos visto más arriba, la estructura de un sistema operativo se divide en diferentes módulos que suelen estar especializados en funciones concretas. Aun- que antes hemos nombrado los módulos más comunes, en este apartado nos vamos a centrar únicamente en las funciones que realizan. En algunos casos existe una rela- ción directa entre un determinado módulo y una función concreta del sistema operati- Página 11 SISTEMAS OPERATIVOS MONOPUESTO TEMA 2. El Sistema Operativo. Gestión de procesos vo. Sin embargo, en otros casos, son varios los módulos que cooperan de algún modo para llevar a cabo una función específica. Gestión de procesos: encargada de la creación, planificación y destrucción de los procesos. Gestión de memoria: encargada de saber qué partes de la memoria está libre u ocupada y así como de la asignación y liberación de memoria. Gestión de E/S: facilita el manejo de los periféricos. Gestión de archivos y directorios: se encarga del manejo de archivos y directorios y de la administración del almacenamiento secundario. Comunicación y sincronización entre procesos: ofrece mecanismos para que los procesos se puedan comunicar y sincronizar. Seguridad y protección: garantiza la identidad de los usuarios y define lo que puede hacer cada uno de ellos con los recursos del sistema. A continuación incluiremos las principales funciones que lleva a cabo cualquier sistema operativo: Gestión de procesos. Gestión de memoria. Gestión de archivos. Gestión de Entrada/Salida (E/S). Estudiemos algunos detalles de cada una de ellas… Página 12 SISTEMAS OPERATIVOS MONOPUESTO TEMA 2. El Sistema Operativo. Gestión de procesos Gestión de procesos La idea fundamental que tenemos de un sistema informático consiste en un dispositivo que es capaz de ejecutar ordenes agrupa- das en forma de programas. Mientras un programa no se encuentre en ejecución, no será nada más que un archivo de datos en un me- dio de almacenamiento. En este sentido, podemos entender el con- cepto de proceso como un programa que se está ejecutando. Sin embargo, una defini- ción más académica sería así: Una unidad de actividad que ejecuta una secuencia ordenada de instrucciones, que dispone de una serie de recursos asignados por el sistema y que se encuentra en un estado particular. Otro matiz a tener en cuenta es que un programa, entendido como un archivo que contiene órdenes, reside en la memoria secundaria del ordenador, mientras que un proceso reside en la memoria principal. El sistema operativo el que determina qué proceso se debe ejecutar y cuánto tiempo debe estar ejecutándose, a todo esto se le denomina gestión de procesos. El SO es el responsable de: Crear y destruir los procesos. Parar y reanudar los procesos. Ofrecer mecanismos para que se comuniquen y sincronicen. Dependiendo de la situación en la que se encuentre un proceso podemos encontrarnos varios estados: Página 13 SISTEMAS OPERATIVOS MONOPUESTO TEMA 2. El Sistema Operativo. Gestión de procesos Nuevo (new): el proceso se está creando. Preparado (ready, listo): esperando que se le asigne a un procesador. En ejecución (running): el proceso está en la CPU ejecutando instrucciones. Bloqueado (waiting, en espera): proceso esperando a que ocurra un suceso (ej. terminación de E/S o recepción de una señal). Terminado (terminated): finalizó su ejecución, por tanto no ejecuta más instrucciones y el SO le retirará los recursos que consume. En el estado en ejecución solo puede haber un proceso, sin embargo, varios pueden estar listos o bloqueados. Los procesos no pueden pasar por ellos mismos de listos a ejecución, es el S.O. el que decide cuando se pasa de listo a ejecutado. Las posibles transiciones que se dan en los procesos son: De Nuevo Preparado. De ejecución bloqueado. Operación de E/S De ejecución listo. Esta acción se produce cuando el sistema operativo decide que otro proceso debe ocupar la CPU en ese momento (por ejemplo, un proceso que lleve mucho tiempo con la CPU). Requiere un cambio de contexto. De listo ejecución. Cuando el planificador decide asignarle la CPU a un proceso. De bloqueado listo. Se libera el recurso por el cual el proceso había entrado en bloqueado. Todo proceso tiene asociado un espacio de direcciones en la memoria princi- pal, donde se guardan las propias instrucciones del proceso y los datos que maneja. Además, el sistema dispondrá de una Tabla de procesos donde guarda la información Página 14 SISTEMAS OPERATIVOS MONOPUESTO TEMA 2. El Sistema Operativo. Gestión de procesos relevante de cada proceso. Esta información puede variar según el sistema operativo del que hablemos pero, en general, nos encontraremos estos datos: El identificador del proceso (PID, del inglés, Process IDentifier) El estado del proceso, es decir, si se está ejecutando, o no. Su prioridad con respecto al resto de los procesos del sistemas. La posición de memoria donde se encuentra. Etc. La estructura que guarda esta información se denomina Bloque de Control de Procesos (PCB) almacena toda la información que se necesita saber sobre el proceso Dada su importancia, normalmente, los sistemas operativos se diseñan en torno al modo en el que manejan los procesos, tratando de resolver de la mejor forma posi- ble las siguientes situaciones: Ofrecer a los procesos los recursos que necesiten, atendiendo a una es- trategia de asignación concreta (permisos, prioridad, evitar interbloqueos, etc.) Repartir el tiempo de ejecución del procesador entre varios procesos, de forma que esté ocupado el mayor tiempo posible, ofreciendo la sensación de Página 15 SISTEMAS OPERATIVOS MONOPUESTO TEMA 2. El Sistema Operativo. Gestión de procesos que los procesos se están ejecutando a la vez y permitiendo que todos ellos ten- gan un tiempo de respuesta adecuado. Facilitar la creación de procesos por parte del usuario y de otros proce- sos, y la comunicación entre distintos procesos. La creación de un proceso hijo por parte de un proceso padre se denomina pro- cess spawning. ¿Cómo se ejecuta un proceso? Como hemos dicho antes, para que un proceso se ejecute, su secuencia de ins- trucciones debe encontrarse en la memoria principal. Además, en todos los sistemas operativos modernos, se va intercalando la ejecución de distintos procesos, de forma que se alternan el uso del procesador. Para saber en qué posición de memoria se encuentra la siguiente instrucción que debe ejecutarse, el procesador dispone de un registro llamado Contador de pro- grama (en inglés, Program Counter, o PC), que irá cambiando de valor según pase el tiempo. La secuencia de valores que vaya teniendo el Contador de programa podrán apuntar a instrucciones de diferentes procesos. Página 16 SISTEMAS OPERATIVOS MONOPUESTO TEMA 2. El Sistema Operativo. Gestión de procesos El procesador ejecutará el có- digo perteneciente a un módulo del sistema operativo, llamado Distri- buidor (en inglés, Dispatcher), cada vez que un proceso haya consumido su tiempo (medido en ciclos de ins- trucción) o haya solicitado algún servicio por el que deba esperar (p. ej. una operación de E/S). Como recordarás del capítulo 1, podemos definir un ciclo de ins- trucción como tiempo que emplea el procesador en ejecutar una instruc- ción en lenguaje máquina y, de un modo simplificado, podríamos divi- dirlo en dos pasos: El ciclo de lectura (en inglés, fetch), que consiste en cargar una instrucción desde la memoria principal a los registros del procesador El ciclo de ejecución (en inglés, execute), que consiste en interpretar la instrucción (decodificarla) y ejecutarla, enviando las señales adecuadas a los componentes que deben realizar la operación que indica la instrucción. Por este motivo, también suele llamarse ciclo de fetch-and-execute o fetch-de- code-execute. Página 17 SISTEMAS OPERATIVOS MONOPUESTO TEMA 2. El Sistema Operativo. Gestión de procesos Llamamos multitarea o multiprogramación a la capacidad que tienen los siste- mas operativos actuales de alternar el uso del procesador entre distintos procesos. Dada la velocidad a la que funcionan los procesadores, el usuario tiene la sensación de que los procesos se ejecutan al mismo tiempo. Por otro lado, cuando en un sistema informático disponemos de varios procesa- dores (o incluso un único procesador con varios núcleos), pueden ejecutarse varios procesos al mismo tiempo. A esta técnica la llamamos multiproceso o multiprocesa- miento. Cuando todos los procesadores (o núcleos) actúan en igualdad de condicio- nes, hablamos de multiproceso simétrico o SMP (del inglés Symmetric Multi-Proces- sing). Cuando el sistema dispone de procesadores con funciones especializadas, ha- blamos de multiproceso asimétrico o AMP (del inglés, Asymmetric Multi-Processing). ¿Cómo se intercalan los procesos? Ya hemos dicho más arriba que el procesador ejecutará el código perteneciente a un módulo del sistema operativo, llamado Distribuidor, cada vez que un proceso haya consumido su tiempo o haya solicitado algún servicio por el que deba esperar. Así se evita que un proceso se apropie del procesador de forma indefinida. De la idea anterior, podemos deducir que un proceso en particular puede en- contrarse en tres situaciones diferentes: En ejecución: En este estado se encontrará el proceso que ocupa la aten- ción del procesador en ese momento. Si el ordenador dispone de varios proce- sadores, o varios núcleos, podrá existir un proceso en ejecución por cada uno de los núcleos presentes. Página 18 SISTEMAS OPERATIVOS MONOPUESTO TEMA 2. El Sistema Operativo. Gestión de procesos Preparado: En este estado se encuentran los procesos que no se están ejecutando, pero que podrían hacerlo en cualquier momento y sólo esperan su oportunidad para hacerlo. Bloqueado: En este estado estarán los procesos que han solicitado algún servicio del sistema operativo y están esperando una respuesta. Cada vez que se crea un nuevo proceso, este se sitúa en estado de Preparado. Cuando el proceso que se está ejecutando es interrumpido, el Distribuidor eli- ge un nuevo proceso entre los que se encuentran en estado Preparado. El estado del proceso elegido pasa a ser En ejecución mientras que el proceso que abandona la eje- cución pasará a estado Preparado (si ha consumido su tiempo) o Bloqueado (si ha realizado una petición al sistema). Los procesos que se encuentran en estado Preparado aguardan su turno en una cola. Página 19 SISTEMAS OPERATIVOS MONOPUESTO TEMA 2. El Sistema Operativo. Gestión de procesos Cuando se ejecuta el módulo del kernel que se encarga de parar la ejecución de un proceso y realizar los cambios necesarios para que se ejecute un proceso diferente, decimos que se ha producido un cambio de contexto. Un cambio de contexto lleva a cabo las siguientes acciones: 1. Guarda en la memoria principal el valor de los registros del procesador para el proceso que se estaba ejecutando. 2. Recupera el valor de los registros del procesador, desde la memoria prin- cipal, para el proceso que toma el relevo. El proceso elegido dependerá del Planificador del sistema operativo, que aplicará una determinada política para elegirlo (turno, prioridad, etc.). 3. Se ejecuta la instrucción indicada en el Contador de Programa, que for- ma parte del contexto que acabamos de recuperar y, por lo tanto, será la si- guiente del nuevo proceso. ¿Cuándo acaba un proceso? Todos los sistemas operativos deben tener un mecanismo para identificar cuan- do termina un proceso. Si se trata de un script o un proceso por lotes (batch) conclui- rá cuando acaben sus instrucciones o cuando se encuentre una orden de parada (Halt). Si es un proceso interactivo, será el usuario el que elija el momento de terminar. Además, un proceso puede verse interrumpido abruptamente por diversos mo- tivos. Entre ellos, podemos encontrar los siguientes: Sobrepasar el tiempo de ejecución asignado al proceso (tiempo real, de uso del procesador, etc.) o el tiempo máximo de espera ante un suceso. No disponer de memoria suficiente para satisfacer las solicitudes del proceso Que el proceso trate de acceder a posiciones de memoria o recursos del sistema que no tiene autorizados. Que una de sus instrucciones contenga un error aritmético o los datos no sean del tipo o tamaño adecuado. Que surja un error en una operación de entrada/salida (no existe un ar- chivo, se produce un error de lectura, etc.) Página 20 SISTEMAS OPERATIVOS MONOPUESTO TEMA 2. El Sistema Operativo. Gestión de procesos Que una instrucción del programa no exista en el juego de instrucciones o que sea una instrucción reservada al sistema operativo. Que el sistema operativo, el usuario o el proceso padre decida terminar- lo. También suelen terminar los procesos hijos cuando termina el proceso padre. Lógicamente, cuando un proceso termina, abandona su estado (En ejecución, Preparado, Bloqueado) y es eliminado de la cola o colas que dependan del Distribuidor. Planificación de procesos Una de las claves para que un sistema multiprogramado sea eficaz es la Plani- ficación de procesos, que consiste en ir asignando procesos al procesador (o procesa- dores / núcleos) a lo largo del tiempo, de forma que se cumplan los objetivos en va- rios aspectos: Rendimiento: Trata de maximizar el número de acciones que se comple- tan en un plazo de tiempo determinado. Tiempo de respuesta: El sistema debe responder a las solicitudes de los usuarios en un tiempo adecuado. Tiempo de retorno: El sistema debe ofrecer resultados de los procesos por lotes en un tiempo adecuado. Equidad: Todos los procesos deben ser considerados según sus caracte- rísticas. Eficiencia: Se debe aspirar a que el procesador esté activo constante- mente. Como cabe esperar, el módulo del sistema operativo que se encarga de esta ta- rea se denomina Planificador (en inglés, Scheduler). Según el diseño del sistema operativo, el Planificador utilizará unos criterios u otros para llevar a cabo su tarea. Estos criterios reciben el nombre de Algoritmos de Planificación (o también, Políticas de Planificación).. Estos algoritmos deben maximizar la utilización de la CPU, evitando que esté libre en algún momento, y minimizar el tiempo de retorno o respuesta del proceso (tiempo que pasa desde Página 21 SISTEMAS OPERATIVOS MONOPUESTO TEMA 2. El Sistema Operativo. Gestión de procesos que el proceso llega al sistema hasta que se obtienen los resultados). A continuación, nombramos los más importantes: Primero en llegar primero en ser servido, o FCFS (del inglés, First Come First Served): Se emplea en procesos por lotes (sin intervención del usuario) y es no apropiativo. Los procesos se van poniendo en cola según llegan y se les asigna el estado Preparado. Cuando es asignado al procesador, no lo abandona hasta que termina. Primero el más corto, o SJF (del inglés, Shortest Job First): Se emplea en procesos por lotes (sin intervención del usuario) y es no apropiativo. Los procesos se van poniendo en cola según llegan y se les asigna el estado Prepa- rado, pero el Planificador elige el que tiene un menor tiempo previsto de eje- cución. Existe una versión apropiativa de este algoritmo denominada Primero el de menor tiempo restante, o SRTN (del inglés, Shortest Remaining Time Next). Por turnos, o RR (del inglés, Round Robin): Se emplea en procesos in- teractivos (en los que interviene el usuario) y es apropiativo. Los procesos se van poniendo en cola según llegan y se les asigna el estado Preparado. El pro- cesador se irá asignando a cada proceso, por orden, durante una fracción de tiempo llamada “Quantum“, que es igual para todos. Si el proceso se acaba, se bloquea, o si se agota su tiempo, el procesador es liberado para el siguiente proceso de la lista. Planificación por prioridad: Se emplea en procesos interactivos (en los que interviene el usuario) y es apropiativo. A cada proceso se le asigna un nú- mero entero que representa su prioridad, de modo que, cuanto menor es el nú- mero, mayor es la prioridad. Para evitar que los procesos con una prioridad más elevada monopolicen el uso del procesador, la prioridad de los procesos puede ir reduciéndose cada vez que obtengan el uso del procesador. Planificación por reparto equitativo, o FSS (del inglés, Fair-share Scheduling) : Se emplea en procesos interactivos (en los que interviene el usuario) y es apropiativo. Se tiene en cuenta el número de usuarios que serán atendidos, de modo que el tiempo de ejecución se reparte entre ellos de forma equitativa. La ejecución del conjunto de procesos de cada usuario no sobrepa- Página 22 SISTEMAS OPERATIVOS MONOPUESTO TEMA 2. El Sistema Operativo. Gestión de procesos sará el tiempo asignado a dicho usuario. Planificación de Colas Múltiples, o MQS (del inglés, Multilevel Queue Schedulling): Se emplea tanto en procesos interactivos como no en procesos por lotes (en los que interviene el usuario) y es apropiativo. Consiste en fragmentar la cola de procesos en estado Preparado en varias colas más pequeñas, de modo que cada una puede estar administrada por un algoritmo de planificación diferente. Cada proceso será asignado a una determinada cola en función de sus características. Para ver el funcionamiento de los algoritmos utilizamos los denominados diagramas de Gantt o cronogramas, que sirven para organizar actividades. En cada algoritmo y para cada proceso debemos saber: Tiempo de llegada al sistema o instante de llegada o momento en que el proceso llega al sistema (TI). Tiempo de ejecución o tiempo que el proceso necesita para su ejecución total (TX). Para cada proceso vamos a obtener: Tiempo de respuesta o de retorno, tiempo que pasa desde que el proceso llega al sistema hasta que se obtienen los resultados (TR). Tiempo de espera, tiempo que el proceso pasa dentro del sistema (TE). TE = TR - TX Tiempo medio de espera y Tiempo medio de respuesta. Página 23 SISTEMAS OPERATIVOS MONOPUESTO TEMA 2. El Sistema Operativo. Gestión de procesos 1. ALGORITMO FIFO o FCFS: primero en entrar primero en salir. Utilizando FIFO los procesos se ejecutan en orden de llegada, el primero que llega se empieza a ejecutar y los demás deberán esperar. Es un algoritmo muy pobre en cuanto a su comportamiento. Tiempo Tiempo Instante Instante de Tiempo ejecución de de Proceso Llegada finalización espera CPU respuesta (Ii) (If) TR - Tx Tx If-Ii A 0 7 7 7 0 B 2 4 11 9 5 C 3 3 14 11 8 D 5 2 16 11 9 Total Tiempos 16 9,5 5,5 CPU Medios A I X X X X X X X B I E E E E E X X X X C I E E E E E E E E E E E D I E E E E E E E E E E E 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 X= Ejecución E= Espera I= Instante de llegada 2. ALGORITMO RR o ROUND-ROBIN: este algoritmo va dando tiempo de ejecución a cada proceso que esté en espera. Se debe establecer un tiempo o quantum (q) de espera, tras el cual el proceso abandona la CPU y da paso al siguiente (utilizando FIFO por orden de llegada a la cola y no al sistema). Si no hubiera procesos en espera el que está utilizando la CPU seguirá hasta que llegue alguno. Si un proceso comienza su ejecución en el mismo instante que un q finaliza, se supone que éste proceso llegó a la cola de procesos preparados antes de la finalización del quantum. Es un algoritmo expulsivo o expropiativo. Página 24 SISTEMAS OPERATIVOS MONOPUESTO TEMA 2. El Sistema Operativo. Gestión de procesos Para el caso anterior, cuatro procesos con sus correspondiente tiempos del llegada y de ejecución, calcula los tiempos de espera y respuesta de cada proceso y los tiempos medios, utilizando algoritmo RR con un quantum q=2. Tiempo Tiempo Instante Instante de de Tiempo ejecución de Proceso Llegada finalización respuesta espera CPU (Ii) (If) (T R) TR - Tx Tx If-Ii A 0 7 16 16 9 B 2 4 10 8 4 C 3 3 15 12 9 D 5 2 12 7 5 Total Tiempos 16 CPU Medios D I E E E E E X X C I E E E X X E E E E E E X B I X X E E E E X X A I X X E E X X E E E E E E X X E X 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 X= Ejecución E= Espera I= Instante de llegada TAREA SISTEMAS OPERATIVOS MONOPUESTO Para los siguientes procesos con el tiempo de llegada y el tiempo de ejecución necesario que se indica, calcula los tiempos de espera y respuesta de cada proceso y los tiempos medios, utilizando: 1. ALGORITMO FCFS. 2. ALGORITMO ROUND-ROBIN (q=1). Tiempo Tiempo Instante Instante de Tiempo ejecución de de Proceso Llegada finalización espera CPU respuesta (Ii) (If) TR - Tx Tx If-Ii A 0 3 B 1 5 C 4 2 D 5 6 E 8 4 Total Tiempos CPU Medios Página 25 SISTEMAS OPERATIVOS MONOPUESTO TEMA 2. El Sistema Operativo. Gestión de procesos 3. ALGORITMO SJF: primero el más corto. Este algoritmo coge el proceso más corto de los que están esperando para usar la CPU. En caso de igual tiempo, se aplica FIFO o FCFS. Favorece a los procesos que tarden menos tiempo en ejecutarse. Instante Tiempo Tiempo Instante de de Tiempo ejecución de Proceso Llegada finalizació respuest espera CPU (Ii) n a TR - Tx Tx (If) If-Ii A 0 7 7 7 0 B 2 4 16 14 10 C 3 3 12 9 6 D 5 2 9 4 2 Total Tiempos 16 8,5 4,5 CPU Medios A I X X X X X X X B I E E E E E E E E E E X X X X C I E E E E E E X X X D I E E X X 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 X= Ejecución E= Espera I= Instante de llegada 4. ALGORITMO SRTF: primero el tiempo restante más corto. Este algoritmo va seleccionando de los procesos que están en espera al que le quede menor tiempo para terminar. En caso de empate se utiliza FIFO o FCFS. Este algoritmo es expulsivo ya que si mientras se está ejecutando un proceso llega otro que le quede menos tiempo para acabar que el que está utilizando la CPU en este momento lo desplaza, es decir, se produce un cambio de contexto. Favorece a los procesos con menor tiempo de ejecución y mejora los tiempos medios en general. Sin embargo, perjudica a los que necesiten más tiempo. Página 26 SISTEMAS OPERATIVOS MONOPUESTO TEMA 2. El Sistema Operativo. Gestión de procesos Instante Tiempo Tiempo Instante de de Tiempo ejecución de Proceso Llegada finalizació respuest espera CPU (Ii) n a (T R) TR - Tx Tx (If) If-Ii A 0 7 16 16 9 B 2 4 6 4 0 C 3 3 11 8 5 D 5 2 8 3 1 Total Tiempos 16 7,75 3,75 CPU Medios D I E C I E E E E E B I A I E E E E E E E E E 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 X= Ejecución E= Espera I= Instante de llegada TAREA SISTEMAS OPERATIVOS MONOPUESTO Para los siguientes procesos con el tiempo de llegada y el tiempo de ejecución necesario que se indica, calcula los tiempos de espera y respuesta de cada proceso y los tiempos medios, utilizando: Instante Tiempo Tiempo Instante de de Tiempo ejecución de Proceso Llegada finalizació respuest espera CPU (Ii) n a TR - Tx Tx (If) If-Ii A 0 3 B 1 5 C 4 2 D 5 6 E 8 4 Total Tiempos CPU Medios 1. ALGORITMO SJF. 2. ALGORITMO SRTF. 5. ALGORITMO POR PRIORIDAD: A cada proceso se le asigna una prioridad. El orden de entrada en la CPU será según la prioridad y en caso de empate será FIFO. Este algoritmo puede ser expropiativo o no expropiativo. Se le puede cambiar la prioridad a los procesos a medida que llevan mucho tiempo esperando. La prioridad se suele asignar por un número entero, que Página 27 SISTEMAS OPERATIVOS MONOPUESTO TEMA 2. El Sistema Operativo. Gestión de procesos cuanto más bajo sea, el proceso será más prioritario. En el ejemplo, se aplica el algoritmo por prioridad expropiativo, es decir, si llega un proceso con la prioridad más alta el proceso en ejecución saldrá de la CPU. Prioridad Instante Tiempo Tiempo Instante de de Tiempo ejecución de Proceso Llegada finalizació respuest espera CPU (Ii) n a TR - Tx Tx (If) If-Ii A 0 7 3 14 14 7 B 2 4 2 9 7 3 C 3 3 1 6 3 0 D 5 2 4 16 9 7 Total Tiempos 16 CPU Medios A I X X E E E E E E E X X X X X B I X E E E X X X C I X X X D I E E E E E E E E E X X 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 X= Ejecución E= Espera I= Instante de llegada TAREA SISTEMAS OPERATIVOS MONOPUESTO Para los siguientes procesos con el tiempo de llegada y el tiempo de ejecución necesario que se indica, calcula los tiempos de espera y respuesta de cada proceso y los tiempos medios, utilizando: Prioridad Instante Tiempo Tiempo Instante de de Tiempo ejecución de Proceso Llegada finalizació respuest espera CPU (Ii) n a TR - Tx Tx (If) If-Ii A 0 3 5 B 1 5 4 C 4 2 1 D 5 6 2 E 8 4 3 Total Tiempos CPU Medios Página 28 SISTEMAS OPERATIVOS MONOPUESTO TEMA 2. El Sistema Operativo. Gestión de procesos Comunicación entre procesos En muchas ocasiones, un sistema operativo ejecuta varios procesos que deben comunicarse entre ellos para colaborar en un objetivo común. Para lograrlo, el siste- ma puede ofrecer una serie de funciones llamadas IPC (del inglés, Inter-Process Co- mmunication) que facilitan el envío de mensajes entre los procesos para comunicarse y sincronizarse. Otra forma que tienen los procesos de comunicarse entre sí es compartiendo determinadas zonas de memoria. Cuando los procesos que necesitan comunicarse están en ordenadores diferen- tes, se utiliza RPC (del inglés, Remote Procedure Call). Sin embargo, quien programa dichos procesos no tendrá que preocuparse de su ubicación física y de los aspectos que deriven de esa circunstancia. Para ellos, no habrá diferencia con la comunicación con procedimientos locales. Es decir, será el sistema operativo quien se encargue de resolver los problemas que se deriven de esta situación. Procesos y servicios En los sistemas operativos existe un tipo de proceso con características particu- lares a los que suele llamarse Servicios. Este tipo de procesos suele ejecutarse en se- gundo plano, es decir, sin que el usuario tenga constancia directa de su presencia y, normalmente, esperan un tipo de suceso para ofrecer un determinado servicio al usua- rio. Por ejemplo, el servicio de impresión se en- carga de administrar todas las solicitudes de los di- ferentes programas para usar la impresora. Normal- mente, no tendremos constancia de que se está eje- cutando. Salvo que se produzca algún incidente, lo único que comprobamos es que el trabajo de impre- sión se realiza correctamente, incluso cuando varios programas traten de imprimir un documento al mis- mo tiempo. Es muy común que un servicio no ofrezca información sobre su funcionamiento a través de la pantalla, sino que suelen utilizarse archivos de registro donde realizan anotaciones (conocidos como archivos “log”, cuya traducción, más o Página 29 SISTEMAS OPERATIVOS MONOPUESTO TEMA 2. El Sistema Operativo. Gestión de procesos menos literal al español, puede ser “anotar”). Información obtenida de http://somebooks.es/?p=6644 Licencia Creative Commons: http://creativecommons.org/licenses/by-nc-nd/3.0/deed.es Página 30 SISTEMAS OPERATIVOS MONOPUESTO