Tema 6: Sistemas Operativos Un computador sin software es algo sencillamente inútil salvo, quizás, como elemento decorativo. Un sistema operativo constituye, probablemente, la parte más importante del conjunto de software que acompaña a cualquier computador moderno. El sistema operativo controla todos los recursos del computador y ofrece la base sobre la cual pueden escribirse y ejecutarse el resto de programas de aplicación.

6.1 Definición de Sistema Operativo Aquí se describe aquella parte del "software" de un ordenador que transforma el "hardware" en algo útil: el sistema operativo. Para los fines de este capítulo es importante considerar un ordenador como un conjunto de recursos. Estos pueden ser de tipo físico, lógico o una mezcla de ambos. Tomados como un todo, estos recursos proporcionan facilidades para el tratamiento y la entrada/salida de datos, así como para otros aspectos del funcionamiento de un sistema informático. Un Sistema Operativo es un conjunto de programas y funciones que controlan el funcionamiento del hardware ocultando sus detalles, ofreciendo al usuario una vía sencilla y flexible de acceso a la computadora. Una computadora es una máquina que posee un conjunto de elementos que denominamos recursos, que deben ser racionalmente distribuidos y utilizados, Para obtener de ellos el mejor rendimiento. Estos recursos son los siguientes: •

El procesador: donde se ejecutan las instrucciones y, por ello, deben controlarse los programas que se ejecuten y su secuencia.



La memoria principal: todo programa que se ejecute en una computadora, así como cualquier dato que se desee procesar, debe estar en la memoria interna, por tanto, es necesario regular su uso y ocupación.



La entrada/salida: todos los programas necesitan realizar operaciones de entrada y salida sobre sus unidades periféricas para el control y direccionamiento de las mismas.



La información: los datos, sus tipos, tamaños y métodos de representación tienen que estar perfectamente controlados para evitar operaciones erróneas o falsas interpretaciones.

Tema 6. Sistemas Operativos.

Página 1

Desde el punto de vista del control de los recursos de una computadora, se puede decir que un sistema operativo es el administrador de los recursos ofrecidos por el hardware para alcanzar un rendimiento eficaz de los mismos.

6.2 Tareas de los Sistemas operativos Si todo programador de aplicaciones tuviera que controlar todos los componentes de la estructura interna del computador cuando hace sus programas, muy probablemente, no existirían tantos programas en el mercado. Por poner un ejemplo, emplear la instrucción escribir archivo es mucho más simple que tener que preocuparse por mover las cabezas lectoras del disco hasta una posición adecuada, esperar que se estabilicen, dirigir la información desde la memoria e ir escribiendo la información en el disco. Conviene al programador de aplicaciones (o al mismo usuario) desentenderse de los complejos detalles del hardware. La idea fundamental para conseguirlo consiste en ocultar los detalles del hardware puro con software (el sistema operativo) especialmente diseñado para permitir un uso más fácil y racional de todas las partes del sistema. Del mismo modo, el sistema operativo presenta un interfaz simple entre el programador o usuario y otros aspectos del hardware, como son el manejo de interrupciones, relojes, gestión de memoria y otras características de bajo nivel. Según este enfoque, el sistema operativo tiene la misión de presentar al usuario una máquina virtual que sea más fácil de programar que el hardware puro y, por lo tanto, aumente la efectividad del computador al evitar la necesidad de trabajar a bajo nivel. Por consiguiente, puede considerarse un sistema operativo como un interfaz adecuado entre el usuario y el hardware. Un sistema operativo también tiene la función de controlar y administrar de forma ordenada el uso de todos los recursos del computador. Esta función se hace especialmente necesaria cuando un computador está siendo compartido por varios usuarios simultáneamente; en este caso, la necesidad de distribuir convenientemente el tiempo de trabajo de la UCP, los espacios de memoria y los periféricos es evidente. Desde este punto de vista, la tarea del sistema operativo es llevar el control de quién está utilizando cada recurso y dirimir los posibles conflictos entre varios procesos o usuarios que intenten acceder a la vez a un mismo recurso.

Tema 6. Sistemas Operativos.

Página 2

En general, un sistema operativo debe poder desempeñar al menos las siguientes funciones: •

Facilitar la comunicación hombre-máquina.



Gestionar los recursos: procesador(es), memoria(s) y periféricos, facilitando su manejo al usuario.



Gestionar la información (los archivos) contenida en los periféricos de almacenamiento y la organización de esa información (en directorios).



Controlar la ejecución de aplicaciones.

6.2.1 Programas de control Los programas de control constituyen la parte del sistema operativo dedicada a coordinar el funcionamiento de todos los recursos y elementos de la computadora, es decir, el procesador, la memoria, las operaciones de entrada y salida, la información y en definitiva todo el entorno del sistema, incluidos los periféricos. En general, un sistema operativo tiene englobados estos programas en un conjunto llamado núcleo (kernel) que se divide en los siguientes grupos: Gestión del procesador: Los programas del grupo de gestión del procesador son los encargados de la preparación de los programas de usuario para su ejecución, así como de la asignación de tiempos en el procesador. Sus principales funciones son: •

Preparación de programas. Su misión es transferir los programas ejecutables de usuario desde la memoria externa a la memoria principal a partir de una determinada dirección de memoria, por medio de un programa que se denomina cargador.



Planificación del procesador. Controla la utilización del procesador por parte de los diferentes procesos que se encuentren en el sistema en cada momento. Hay diferentes políticas de asignación del tiempo a cada uno de los procesos.



Asignación de periféricos. Este grupo de programas transforma las solicitudes simbólicas de periférico en asignaciones físicas, concretando el periférico a utilizar.



Relanzamiento de programas. Si durante la ejecución de un programa se produce alguna interrupción, por solicitud externa o porque se le acaba el tiempo de CPU

Tema 6. Sistemas Operativos.

Página 3

asignado, es necesario que haya un grupo de programas del sistema operativo encargado de establecer un punto de control en el instante de la interrupción para que se pueda reproducir el estado que tenía el proceso cuando se vuelve a reactivar. Para ello se reestablecen los valores de cada elemento en el momento de la interrupción, hasta conseguir el estado de la ejecución del programa. Gestión de memoria: Un sistema operativo contiene un conjunto de programas cuya misión es la de asignar y controlar el almacenamiento en la memoria principal y secundaria de la computadora. •

Gestión de memoria principal. Hay muchos métodos de asignación y control de la memoria principal, dependiendo de si el sistema operativo es multiprogramado (varios programas en ejecución simultáneamente) o monoprogramado. Los programas que controlan y gestionan la memoria principal asignan los espacios que deben ocupar los programas y los datos, estableciendo zonas de seguridad para que no se produzcan colisiones.



Gestión de memoria secundaria. Tienen como misión hacer ver al usuario el tratamiento de la información almacenada en la memoria externa, desde el punto de vista lógico ocultándole la realidad física.



Por otra parte, un sistema puede mantener en un mismo instante un gran número de usuarios y procesos, y éstos pueden estar solicitando y manejando continuamente archivos en memoria externa, en ocasiones compartiéndolos, y por ello es necesario que el sistema operativo asegure el correcto funcionamiento del almacenamiento secundario.

Gestión de Entrada/Salida: El control de las operaciones de entrada y salida facilita el uso de los distintos dispositivos externos que forman parte del sistema informático. Los programas de gestión tienen como misión gestionar las operaciones que realice cada proceso sobre un dispositivo externo, ocultando las peculiaridades del mismo. Gestión de datos: Los programas del grupo de gestión de datos controlan y coordinan las operaciones relativas al movimiento de datos e informaciones en la computadora, como transferencia y tratamiento de archivos de datos. Estos programas realizan las siguientes funciones: Tema 6. Sistemas Operativos.

Página 4



Control de periféricos. Cuando hay una petición de entrada/salida se comprueba si el periférico está desocupado, se realiza la conexión y luego se pasa el control al programa que se está ejecutando para que se inicie la operación. Cuando el periférico solicitado está ocupado, la petición se coloca en una cola para ser atendido más tarde. Normalmente existe una cola para cada uno de los periféricos.



Control de transferencia de la información. Consiste en comprobar que el total de caracteres transmitidos en cada bloque entre la memoria principal y los periféricos coincide con el especificado previamente según las características físicas de los soportes utilizados. Cuando no existe coincidencia, toma el control del proceso un programa especial de corrección o recuperación de caracteres que informa al usuario del error y/o cancela la ejecución del programa.



Tratamiento de cada bloque de información. Cuando un bloque de información se almacena en la memoria central, interviene un nuevo programa del sistema operativo que descompone cada bloque de información en las unidades lógicas descritas en el programa que se está ejecutando. Cuando se realiza la operación inversa, extraer información de la memoria central, el programa se encarga de agrupar las informaciones componiendo el bloque físico para que pueda ser transferido al periférico correspondiente.



Apertura y cierre de archivos. Un archivo se conecta a un programa cuando se abre, quedando asignado al mismo mediante un canal de datos. Esta vía se mantiene hasta que se cierra el archivo, bien por el programa o por el propio sistema operativo.



Acceso a los archivos. Este grupo de programas transforma las direcciones lógicas que figuran en el programa en ejecución en las correspondientes direcciones físicas sobre el soporte (en el caso de un disco magnético sería indicar cilindro, pista, sector, bloque).

Gestión del sistema: Este grupo de programas es el verdadero motor del sistema operativo ya que se encarga de la coordinación y supervisión del funcionamiento del resto de programas, por ello se le denomina supervisor. Sus tareas son: •

Protección de memoria. Fijan unos límites para evitar que los datos de un programa puedan ser accedidos desde otro.

Tema 6. Sistemas Operativos.

Página 5



Errores en la memoria. Detectan errores en los datos que se encuentran en memoria para averiguar dónde se produjo el error y reenviar el dato.



Errores de programas. Cuando la unidad lógica detecta que se intenta realizar desde algún programa una operación errónea, se debe diagnosticar el error y transferir el control a este grupo de programas que cancelarán el programa de usuario y enviarán los mensajes correspondientes para informar sobre el error.

6.3 Entornos multiprogramados En este punto se tratará sobre la gestión y administración del tiempo de la CPU en sistemas de multiprogramación y tiempo compartido. El aspecto más importante de la planificación de trabajo es la capacidad de multiprogramación. Las operaciones descritas previamente para procesos de E/S tienen sus limitaciones. Un usuario, no puede en general mantener la CPU o los dispositivos de E/S ocupados todo el tiempo. La multiprogramación es un método para incrementar el empleo de CPU, disponiendo en todo momento de algo que la CPU pueda ejecutar. La idea es la siguiente: el sistema operativo toma uno de los trabajos y empieza a ejecutarlo, eventualmente el trabajo tendrá que esperar por algún motivo, como por ejemplo para montar una cinta magnética, en un sistema sin multiprogramación la CPU quedaría inactiva. Los sistemas operativos multiprogramados son bastante sofisticados. Tener varios trabajos dispuestos para su ejecución, supone mantenerlos simultáneamente en memoria, y tener varios programas en memoria al mismo tiempo requiere una gestión de la memoria. Además, si hay varios trabajos dispuestos para ejecución al mismo tiempo, hay que tomar alguna decisión para elegir entre ellos, mediante una planificación adecuada de la CPU. La multiprogramación es el tema central de los sistemas operativos modernos. Los aspectos fundamentales a considerar son: Gestión de la memoria La memoria total del ordenador se ha de compartir de forma adecuada entre todos los programas y datos que en cierto momento tenga cada usuario del equipo.

Tema 6. Sistemas Operativos.

Página 6

Planificación de la CPU Entre todas las tareas demandadas por los usuarios es posible establecer preferencias, lo cual implica que la CPU se planifique dando más tiempo a algunos tipos de trabajos o a los usuarios en función de unos niveles de privilegios establecidos previamente. Control de concurrencia El sistema operativo ha de gestionar adecuadamente todos los recursos del ordenador y ordenar la concurrencia de demandas de una forma adecuada. Por ejemplo si varios usuarios solicitan al mismo tiempo el acceso a un disco, se habrá de gestionar de forma correcta esta concurrencia para evitar bloqueos o situaciones impredecibles. Protección En un sistema donde acceden muchos usuarios es lógico que exista un sistema de protección que permita asegurar que a los trabajos de uno no pueden acceder los otros usuarios, ya sea por motivos de seguridad (por ejemplo para evitar pérdidas de información accidentales) o de confidencialidad.

Hay tres tipos básicos de multiprogramación:

6.3.1 Multiprogramación clásica El planificador da el turno a un trabajo P1. Cuando P1 tiene que realizar una operación de E/S da el turno a otro programa P2 hasta que éste necesita realizar una operación de E/S, pasándose a ejecutar P3 y así sucesivamente. Cuando P1 acaba su E/S, el periférico se lo comunica a la CPU por medio de una interrupción para poder volver a asignarle CPU en cuanto le llegue el turno.

6.3.2 Tratamiento paralelo La multiprogramación clásica tiene el inconveniente de que un proceso con mucho cálculo y poca E/S puede monopolizar la CPU hasta que acabe su ejecución. Para evitar esto, se asigna un intervalo fijo de tiempo (quantum) a cada proceso (normalmente del orden de décimas de segundo). Cuando finaliza el quantum de un proceso, el planificador pasa el control al siguiente, y así sucesivamente. Tema 6. Sistemas Operativos.

Página 7

Este sistema se lleva a cabo por medio de un circuito contador activado por el reloj de la CPU, que cuando llega a un valor determinado provoca una interrupción que avisa al planificador para que dé el turno a otro trabajo.

6.3.3 Tiempo compartido El tratamiento paralelo sigue teniendo tiempos muertos, bien porque en el transcurso de un quantum se produce una E/S o porque al asignarle su quantum el proceso esté realizando alguna E/S. El tipo de planificación de tiempo compartido aprovecha estos tiempos muertos. Para asignar CPU a un programa Pj, interrumpiendo el que se esté ejecutando en ese momento Pi, tiene que cumplirse una de las siguientes condiciones: •

El programa Pi agote su quantum, o bien



El programa Pi entre en ejecución de una instrucción de E/S.

Pj será el siguiente programa en la cola de CPU y que esté listo para ejecución.

6.4 Tipos de Sistemas Operativos Los sistemas operativos pueden ser clasificados de muy distintas formas, entre ellas:

6.4.1 En función de la utilización de los recursos del ordenador. •

Sistemas Monoprogramados: Son los que sólo permiten la ejecución de un programa en el sistema, se instalan en la memoria y permanecen hasta que termine su ejecución.



Estos sistemas sólo permiten que un programa este usando tanto el microprocesador como la memoria en un momento determinado, y otro programa no podrá usarlos hasta que el anterior termine lo que está haciendo.



Sistemas Multiprogramados: Son aquellos que se basan en las técnicas de multiprogramación que se han descrito en el punto anterior.



Sistemas Multiprocesamiento: Sistemas que disponen de varios procesadores.

6.4.2 En función de la interactividad con el usuario. Depende del tipo de trabajo y los objetivos que debe cumplir cada sistema para dar el mejor servicio al usuario, se clasifican en:

Tema 6. Sistemas Operativos.

Página 8



Procesamiento por lotes (batch): Cada programa realiza un conjunto de pasos secuenciales relacionados entre sí. No existe posibilidad de intervención del usuario en la ejecución y no hay restricciones de tiempo en los procesos.



Tiempo compartido: En este tipo de sistema, el control lo tiene el usuario registrando su entrada y obteniendo todo el tiempo la CPU hasta que sale del sistema y entra otro usuario, pero para permitir que otro usuario pueda hacer uso también de la CPU, el sistema operativo cada cierto tiempo atenderá a cada usuario que tenga conectado, siendo así de tiempo compartido.



Tiempo real: El sistema puede responder a ciertos eventos en cualquier instante, independientemente del proceso que esté ejecutando en cada momento. Este tipo de sistemas operativos se utilizan principalmente en el control de instalaciones industriales o donde se hace necesario en control en tiempo real de determinadas funciones o circunstancias: sistemas médicos, controladores aéreos, etc.

6.4.3 En función del número de usuarios. Según la cantidad de usuarios que utilicen el sistema operativo, se clasifican en: •

Monousuario: Son sistemas muy simples que sólo aceptan la conexión de un usuario al mismo tiempo, dichos sistemas se pueden basar en técnicas de multiprogramación, y facilitar al usuario la ejecución de varios programas simultáneamente.



Multiusuario: Se basan siempre en la multiprogramación, permiten varios usuarios conectados a la vez, suelen utilizar técnicas de tiempo compartido o de tiempo real.

6.4.4 En función del tipo de aplicaciones. Según el tipo de aplicación que se pueda ejecutar: •

De propósito general: Cuando la instalación puede ser de cualquier tipo (monousuario, multiusuario, tiempo compartido, tiempo real, etc..) siempre que no requiera procedimientos especiales para ejecutar determinados programas.



De propósito especifico: Cuando tienen componentes específicos para ejecutar una determinada aplicación, este tipo de sistemas operativos normalmente no suelen ser de difusión conocida y esta centrados en determinadas empresas o

Tema 6. Sistemas Operativos.

Página 9

gobiernos dada la especialidad del programa a ejecutar y la dedicación de todos los recursos del ordenador a dicho programa.

6.5 Evolución de los Sistemas Operativos. La evolución de los sistemas operativos va ligada a la evolución de las computadoras. Se distinguen varias generaciones. •

1ª Generación: Comprende los años desde 1945 al 1955 y en este periodo de tiempo se puede decir que existieran sistemas operativos tal como se conocen en la actualidad, sino que el programador debía hacerse cada una de las rutinas que necesitara (lectura de memoria, proceso del microprocesador, lectura de datos, etc.).



2ª Generación: Comprende los años desde 1955 al 1965 y en este periodo de tiempo aparece lo que se denomina proceso por lotes (batch). En realidad lo que hacía era poner una serie de instrucciones en memoria y el sistema iba ejecutando una tras otras instrucciones de forma automática sin que fuera necesario que el programador diera la orden.



3ª Generación: Comprende los años desde 1965 al 1980 y en este periodo de tiempo fue donde se dio el gran salto, debido a la aparición de los circuitos integrados, que consiguieron disminuir considerablemente el tamaño de las computadoras, y acercarlas a la población en general. También apareció la multiprogramación, que permite la ejecución simultánea de varios programas a la vez.



4ª Generación: Comprende los años desde 1980 hasta la actualidad y en este periodo de tiempo aparecen los sistemas operativos de red que dan nuevas oportunidades al máximo aprovechamiento del ordenador y su equipamiento.

Tema 6. Sistemas Operativos.

Página 10