TEMA 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS

 

1.1 Definición de Sistema Operativo.

1.2 Evolución de los Sistemas Operativos.

1.3 Interfaces con el Sistema Operativo.

1.3.1 Las llamadas al sistema.

1.3.2 El intérprete de ordenes.

1.4 Llamadas al sistema y Protección.

1.5 Estructura de los Sistemas Operativos.

1.5.1 Sistemas monolíticos.

1.5.2 Modelo cliente-servidor.

1.6 Clasificación de los Sistemas Operativos.

1.6.1 Respecto al modo de trabajo del usuario.

1.6.2 Respecto al número de usuarios.

1.6.3 Respecto al propósito.

1.6.4 Al existir varios procesadores.

 

Un ordenador es una máquina que permite procesar la información de forma rápida y automática. Sin embargo, la utilización de un ordenador no es una tarea sencilla, ya que el modo en que podemos comunicarnos con él, es decir, su interfaz, es extraña y compleja al pensamiento humano. Se entiende por interfaz de un objeto la parte del objeto accesible desde su exterior, que nos permite utilizarlo y consultar su estado interno. Por ejemplo, un reloj digital presenta una interfaz constituida por una serie de botones que posibilitan modificar su comportamiento, cambiando la hora o programando una alarma, y una pantalla y un dispositivo sonoro por el que se puede consultar su estado actual (consultar la hora u oír la expiración de una alarma). Para usar un reloj digital no es preciso conocer su funcionamiento interno, sólo hay que saber utilizar su interfaz. La interfaz de un ordenador viene determinada por un conjunto, normalmente pequeño, de instrucciones máquina que permiten utilizar los dispositivos físicos o hardware (CPU, memoria y periféricos) de los que se compone. Si los usuarios de un ordenador tuvieran que utilizar el hardware a través de sus instrucciones máquina se escribirían muy pocos programas, y estos no podrían resolver tareas excesivamente complejas, pues el uso directo de los dispositivos físicos del ordenador mediante estas instrucciones es complejo, tedioso, y está lleno de detalles.

La solución que se ha ido adoptando con el tiempo para salvar esta complejidad es la de escribir capas o niveles de software. Una capa de software de nivel i es un conjunto de programas que trabajan directamente con la interfaz de su nivel inferior (i - 1), y presentan a su nivel superior (i + 1) una interfaz que permite utilizar el nivel i -1 de una forma más sencilla. Se dice que una capa software abstrae a su nivel superior de los detalles del nivel inferior, siendo, por tanto, un mecanismo de abstracción. Una capa de nivel i puede permitir a su capa superior utilizar las interfaces de sus niveles inferiores (i -1, i - 2, ...), o puede obligar a utilizar solamente la interfaz de la capa i, asegurándose así la utilización directa del nivel inferior. El sistema operativo es una de las capas de software más importantes de un sistema informático.

 

1.1 Definición de sistema operativo [STAL95] [TANE93] [BIC88]

 

Se puede definir un sistema operativo como un conjunto de programas que controlan directamente los recursos hardware o físicos de un ordenador ( CPU, memoria principal y periféricos ) proporcionando una máquina virtual más fácil de utilizar que el hardware subyacente. El sistema operativo es la capa de software más baja de un ordenador, como se refleja en la figura 1.1.

  

En esta figura se observa cómo el sistema operativo es la única capa que trabaja directamente con el hardware. Por encima del sistema operativo se encuentra un nivel formado por traductores, editores de texto e intérpretes de órdenes. Los dos primeros tipos de programas, junto con enlazadores y depuradores, son útiles para crear un nivel de abstracción cómodo para el desarrollo de programas, la utilidad de los intérpretes de órdenes se verá en un apartado posterior. La unión de los programas de las dos capas intermedias de la figura conforman el software de sistemas de un ordenador. Por último, está el nivel constituido por los programas de aplicación, estos programas no dan servicio a otros programas, su finalidad es resolver problemas concretos. Son los programas que suele ejecutar un usuario no informático. Pertenecen a esta capa los procesadores de texto, hojas de cálculo, agendas electrónicas, juegos, etc.

En general, puede decirse que los sistemas operativos realizan dos funciones:

  1. Constitución de una máquina virtual o extendida

El sistema operativo pone al servicio del usuario una máquina virtual cuyas características son distintas (y más fáciles de abordar) que las de la máquina real subyacente. Algunas áreas en las que es frecuente que la máquina virtual difiera de la máquina real que la soporta son:

 Entrada/salida (E/S).

La capacidad de E/S de un hardware básico puede que sea extremadamente compleja y que requiera sofisticados programas para su utilización. Un sistema operativo evita al usuario el problema de tener que comprender el funcionamiento de este hardware, poniendo a su alcance una máquina virtual mucho más sencilla de usar.

 Memoria.

Muchos sistemas operativos presentan la imagen de una máquina virtual cuya memoria difiere en tamaño de la de la máquina real subyacente. Así, por ejemplo, un sistema operativo puede emplear memoria secundaria (discos magnéticos) para crear la ilusión de una memoria principal mucho más extensa de la que se dispone en realidad. Alternativamente, puede repartir la memoria principal entre varios usuarios, de forma que cada uno de ellos "vea" una máquina virtual cuya memoria sea menor que la de la máquina real.

 Sistema de ficheros.

La mayoría de las máquinas virtuales incluyen un sistema de ficheros para el almacenamiento a largo plazo tanto de programas como de datos. El sistema de ficheros está basado en la capacidad de almacenamiento sobre cinta o disco de la máquina real. El sistema operativo, sin embargo, permite al usuario acceder a la información almacenada a través de nombres simbólicos en lugar de hacerlo a través de su posición física en el medio de almacenamiento.

 Protección y tratamiento de errores.

Desde el momento en que la mayoría de ordenadores son compartidos por un determinado número de usuarios, es esencial que cada uno de ellos esté protegido de los efectos de los errores o de la mala fe de los demás. Los ordenadores varían considerablemente por lo que respecta al grado de protección que proporciona su hardware básico, siendo misión del sistema operativo el constituir una máquina virtual en la que ningún usuario pueda afectar de manera negativa al trabajo de los demás.

 Interacción a nivel de programa.

Una máquina virtual puede posibilitar la interacción entre distintos programas de los usuarios de forma que, por ejemplo, la salida de uno de ellos se emplee como entrada de otro.

 

La naturaleza concreta de una máquina virtual dependerá de la aplicación particular a la que se dedique. Así, por ejemplo, las características de una máquina virtual que controle un sistema de tiempo real serán distintas de las de una máquina virtual que se utilice para el desarrollo de programas.

 

  2. Utilización compartida de recursos

Un sistema operativo debe lograr que se compartan los recursos de un ordenador entre un cierto número de usuarios que trabajen de forma simultánea. La finalidad de esto está en incrementar la disponibilidad del ordenador con respecto a sus usuarios y, al mismo tiempo, maximizar la utilización de recursos tales como procesadores centrales, memoria y dispositivos de E/S. La importancia de la utilización eficiente de estos recursos depende de su coste.

ENLACE al siguiente tema: DEFINICIÓN Y CONTROL DE PROCESO

** Fin de Definición de Sistema Operativo **