2.1 - 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ísicos de un sistema informático, optimizando su uso y ofreciendo determinados servicios a los programas de aplicación. Un sistema operativo se encargará de aspectos como el uso compartido ordenado de los recursos entre diferentes usuarios o la protección de recursos, evitando que un usuario acceda a recursos para los que no está autorizado.
IMPLANTACIÓN DE SISTEMAS OPERATIVOS
UT.2 Introducción a los Sistemas Operativos
2.1 - Elementos y estructura del sistema operativo
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 propio 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 él, las instrucciones se ejecutan en un modo privilegiado, teniendo acceso directo a toda la memoria (incluidos los espacios de direcciones de todos 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.
IMPLANTACIÓN DE SISTEMAS OPERATIVOS
UT.2 Introducción a los Sistemas Operativos
2.1 - Elementos y estructura del sistema operativo
IMPLANTACIÓN DE SISTEMAS OPERATIVOS
UT.2 Introducción a los Sistemas Operativos
2.1 - Elementos y estructura del sistema operativo
Desde un punto de vista comercial, los sistemas operativos se
ofrecen como un software que incluye diferentes herramientas para proporcionar 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 estamos utilizando forman parte del concepto de software de aplicación. El verdadero sistema operativo se encuentra oculto bajo estas y otras herramientas, haciendo de intermediario entre ellas y el hardware del ordenador.
IMPLANTACIÓN DE SISTEMAS OPERATIVOS
UT.2 Introducción a los Sistemas Operativos
2.1 - Elementos y estructura del 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 subdividen 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 lo siguientes: 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 adelante estudiaremos las principales funciones que resuelve un sistema operativo.
IMPLANTACIÓN DE SISTEMAS OPERATIVOS
UT.2 Introducción a los Sistemas Operativos
2.1 - Elementos y estructura del sistema operativo
Estructura de un sistema operativo Ahora que ya sabemos que el sistema operativo se divide en distintos elementos, 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 diseño del sistema establecer qué componentes del mismo se ejecutan en modo núcleo y cuáles en modo usuario. El núcleo de un sistema operativo también suele recibir el nombre de kernel. En este sentido, los planteamientos que se aplican 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 detalles sobre cada uno de ellos.
IMPLANTACIÓN DE SISTEMAS OPERATIVOS
UT.2 Introducción a los Sistemas Operativos
2.1 - Elementos y estructura del sistema operativo
Estructura de un sistema operativo
IMPLANTACIÓN DE SISTEMAS OPERATIVOS
UT.2 Introducción a los Sistemas Operativos
2.1 - Elementos y estructura del sistema operativo
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 todos 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 tamaño que debería ser recompilado por completo ante cualquier modificación. Sin embargo, 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 ejecutándose en modo núcleo, lo que, comparado con un sistema con estructura de micronú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.
IMPLANTACIÓN DE SISTEMAS OPERATIVOS
UT.2 Introducción a los Sistemas Operativos
2.1 - Elementos y estructura del sistema operativo
Sistemas operativos con estructura monolítica
IMPLANTACIÓN DE SISTEMAS OPERATIVOS
UT.2 Introducción a los Sistemas Operativos
2.1 - Elementos y estructura del sistema operativo
Sistemas operativos con estructura de micronúcleo (microkernel) En este tipo de sistemas, el núcleo sólo contiene la implementación de servicios 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, Inter-Process Communication). En este tipo de arquitectura, el micronúcleo es el único componente que se ejecuta en modo privilegiado. El resto de las funciones del sistema, como los controladores de dispositivos (drivers), el sistema de archivos, la gestión de E/S, etc., se ejecutan 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 fiable). Además, los módulos se pueden programar compilar y cargar por separado. Sin embargo, pueden presentar dificultades en la sincronización de sus componentes, pueden ocasionar una mayor complejidad del código resultante y puede ofrecer un bajo rendimiento 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 nombrar AIX, AmigaOS, Minix, Symbian (aunque en algunos textos aparece como monolítico con carga dinámica de módulos) y NeXTStep (aunque a veces lo encontramos entre los sistemas con núcleo híbrido).
IMPLANTACIÓN DE SISTEMAS OPERATIVOS
UT.2 Introducción a los Sistemas Operativos
2.1 - Elementos y estructura del sistema operativo
Sistemas operativos con estructura micronúcleo
IMPLANTACIÓN DE SISTEMAS OPERATIVOS
UT.2 Introducción a los Sistemas Operativos
2.1 - Elementos y estructura del sistema operativo
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 sistemas 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.
IMPLANTACIÓN DE SISTEMAS OPERATIVOS
UT.2 Introducción a los Sistemas Operativos
2.5 - Clasificación de sistemas operativos
TIPOS DE SISTEMAS OPERATIVOS SEGÚN SU VISIÓN INTERNA Según el número de usuarios que soporta concurrentemente: Monousuario. Los sistemas operativos monousuario son aquéllos que soportan a un usuario a la vez, sin importar el número de procesadores que tenga la computadora o el número de procesos o tareas que el usuario pueda ejecutar en un mismo instante de tiempo. Las ordenadores personales en los años 80 y 90 se clasificaban en esta sección (MS-DOS, Windows 3.0, Windows 95/98/me). Multiusuario. Los sistemas operativos multiusuario son capaces de dar servicio a más de un usuario a la vez, ya sea por medio de varias terminales conectadas a la computadora o por medio de sesiones remotas en una red de comunicaciones. No importa el número de procesadores en la máquina ni el número de procesos que cada usuario puede ejecutar simultáneamente. De hecho prácticamente todos los sistemas operativos actuales soportan esta característica. No hay que confundir la capacidad de ser multisesión de un sistema operativo con el multiusuario, ya que un sistema Monousuario como lo era Windows 98 permitía tener varios usuarios con distintas sesiones diferentes pero no permitía que funcionaran a la vez.
IMPLANTACIÓN DE SISTEMAS OPERATIVOS
UT.2 Introducción a los Sistemas Operativos
2.5 - Clasificación de sistemas operativos
Monousuario Multiusuario
IMPLANTACIÓN DE SISTEMAS OPERATIVOS
UT.2 Introducción a los Sistemas Operativos
2.5 - Clasificación de sistemas operativos
TIPOS DE SISTEMAS OPERATIVOS SEGÚN SU VISIÓN INTERNA Según el número de tareas que puede ejecutar concurrentemente: Monotarea. Los sistemas monotarea son aquellos que sólo permiten una tarea a la vez por usuario. Puede darse el caso de un sistema multiusuario y monotarea, en el cual se admiten varios usuarios al mismo tiempo pero cada uno de ellos puede estar haciendo solo una tarea a la vez. Multitarea. Un sistema operativo multitarea es aquél que le permite al usuario estar realizando varias labores al mismo tiempo. Por ejemplo, puede estar editando el código fuente de un programa durante su depuración mientras compila otro programa, a la vez que está recibiendo correo electrónico en un proceso en background (segundo plano). Es común encontrar en ellos interfaces gráficas orientadas al uso de menús y el ratón, lo cual permite un rápido intercambio entre las tareas para el usuario, mejorando su productividad.
IMPLANTACIÓN DE SISTEMAS OPERATIVOS
UT.2 Introducción a los Sistemas Operativos
2.5 - Clasificación de sistemas operativos
IMPLANTACIÓN DE SISTEMAS OPERATIVOS
UT.2 Introducción a los Sistemas Operativos
2.5 - Clasificación de sistemas operativos
TIPOS DE SISTEMAS OPERATIVOS SEGÚN SU VISIÓN INTERNA Según el número de procesadores que puede gestionar: Uniproceso (Sistemas obsoletos). Un sistema operativo uniproceso 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. Por ejemplo Windows 98 es un sistema operativo Uniproceso. Multiproceso (Sistemas actuales). Un sistema operativo multiproceso es capaz de manejar más de un procesador en el sistema, distribuyendo la carga de trabajo entre todos los procesadores que existan en el sistema. Generalmente estos sistemas trabajan de dos formas: simétricamente o asimétricamente.
IMPLANTACIÓN DE SISTEMAS OPERATIVOS
UT.2 Introducción a los Sistemas Operativos
2.5 - Clasificación de sistemas operativos
TIPOS DE SISTEMAS OPERATIVOS SEGÚN SU VISIÓN INTERNA Cuando se trabaja de manera asimétrica, el sistema operativo selecciona a uno de los procesadores el cual jugará el papel de procesador maestro y servirá como pivote para distribuir la carga a los demás procesadores, que reciben el nombre de esclavos. El único procesador que realmente tiene acceso a todos los recursos del sistema es el maestro, que relega en los esclavos los trabajos que le van llegando. Es un sistema simple de construir y donde es muy fácil añadir más procesadores esclavos. Cuando se trabaja de manera simétrica, los procesos o partes de ellos (threads, hebras o hilos) son enviados indistintamente a cualquiera de los procesadores disponibles, teniendo una mejor distribución y equilibrio en la carga de trabajo bajo este esquema. Se dice que un thread (hilo) es la parte activa en memoria y corriendo de un proceso, lo cual puede consistir de un área de memoria, un conjunto de registros con valores específicos, la pila y otros valores de contexto. Es un sistema mucho más difícil de construir, y es también tremendamente complicado añadir más procesadores, pero tiene la gran ventaja de ser muchísimo más práctico, ya que cada procesador tiene acceso a todos los recursos y las cargas de trabajo se pueden dividir de forma mucho más rápida. IMPLANTACIÓN DE SISTEMAS OPERATIVOS UT.2 Introducción a los Sistemas Operativos
2.5 - Clasificación de sistemas operativos
TIPOS DE SISTEMAS OPERATIVOS SEGÚN SU VISIÓN INTERNA Resumen de los tipos de sistemas operativos según su visión interna:
IMPLANTACIÓN DE SISTEMAS OPERATIVOS
UT.2 Introducción a los Sistemas Operativos
2.5 - Clasificación de sistemas operativos
TIPOS DE SISTEMAS OPERATIVOS SEGÚN SU VISIÓN EXTERNA Esta clasificación se refiere a la visión externa del usuario, en cómo este usuario accede a los servicios. SISTEMAS OPERATIVOS DE ESCRITORIO Estos sistemas operativos se utilizan en los equipos personales, estaciones de trabajo, portátiles, etc. También se suelen conocer como sistemas operativos clientes. Windows 10 o Ubuntu Linux Desktop por ejemplo, es un sistema operativo de escritorio. Suelen ser sistemas operativos preparados para permitir un uso fácil por parte del usuario, destacan en multimedia, juegos, sonido, ofimática, etc.
IMPLANTACIÓN DE SISTEMAS OPERATIVOS
UT.2 Introducción a los Sistemas Operativos
2.5 - Clasificación de sistemas operativos
TIPOS DE SISTEMAS OPERATIVOS SEGÚN SU VISIÓN EXTERNA SISTEMAS OPERATIVOS EN RED Y SERVIDORES Los sistemas operativos de red se definen como aquellos que tiene la capacidad de interactuar con sistemas operativos en otras computadoras por medio de un medio de transmisión con el objeto de intercambiar información, transferir archivos, ejecutar comandos remotos y un sin fin de otras actividades. Lo importante es hacer ver que el usuario puede acceder a la información no solo de su máquina, sino a la de cualquier máquina de la red, y esto se consigue gracias a que utiliza un sistema operativo de red. Hoy en día todos los sistemas operativos de escritorio son sistemas operativos de red también, cosa que no ocurría anteriormente. Normalmente solemos llamar sistemas operativos en red a los sistemas operativos que funcionan como servidores en una red, como es el caso del Windows Server o Linux Server.
IMPLANTACIÓN DE SISTEMAS OPERATIVOS
UT.2 Introducción a los Sistemas Operativos
2.5 - Clasificación de sistemas operativos
TIPOS DE SISTEMAS OPERATIVOS SEGÚN SU VISIÓN EXTERNA SISTEMAS OPERATIVOS DISTRIBUIDOS Un sistema distribuido se define como una colección de equipos informáticos separados físicamente y conectados entre sí por una red de comunicaciones distribuida; cada máquina posee sus componentes de hardware y software de modo que el usuario percibe que existe un solo sistema (no necesita saber qué cosas están en qué máquinas). El usuario accede a los recursos remotos de la misma manera en que accede a recursos locales ya que no percibe que existan varios ordenadores, sino que solo es capaz de ver uno formado por todos los anteriores. Una ventaja fundamental de los sistemas distribuidos, es que permiten aumentar la potencia del sistema informático, de modo que 100 ordenadores trabajando en conjunto, permiten formar un único ordenador que sería 100 veces más potente que un ordenador convencional. Los sistemas distribuidos son muy confiables, ya que si un componente del sistema se descompone otro componente debe de ser capaz de reemplazarlo, esto se denomina Tolerancia a Fallos (Fault Tolerance).
IMPLANTACIÓN DE SISTEMAS OPERATIVOS
UT.2 Introducción a los Sistemas Operativos
2.5 - Clasificación de sistemas operativos
SISTEMAS OPERATIVOS DISTRIBUIDOS
SRV1 SRV2 SRV3 SRV4
IMPLANTACIÓN DE SISTEMAS OPERATIVOS
UT.2 Introducción a los Sistemas Operativos
2.5 - Clasificación de sistemas operativos
TIPOS DE SISTEMAS OPERATIVOS SEGÚN SU VISIÓN EXTERNA SISTEMAS OPERATIVOS DISTRIBUIDOS El tamaño de un sistema distribuido puede ser muy variado, ya sean decenas de hosts (red de área local), centenas de hosts (red de área metropolitana), y miles o millones de hosts (Internet); esto se denomina escalabilidad. De hecho, si un ordenador formando por un sistema distribuido se queda “corto” para las necesidades de la empresa, basta con instalar más. La computación distribuida ha sido diseñada para resolver problemas demasiado grandes para cualquier supercomputadora y mainframe, mientras se mantiene la flexibilidad de trabajar en múltiples problemas más pequeños. Esta forma de computación se conoce como grid (malla). Los grandes retos de cálculo de hoy en día, como el descubrimiento de medicamentos, simulación de terremotos, inundaciones y otras catástrofes naturales, modelización del clima/tiempo, grandes buscadores de internet, el programa SETI, etc. Son posibles gracias a estos sistemas operativos distribuidos que permiten utilizar la computación distribuida.
IMPLANTACIÓN DE SISTEMAS OPERATIVOS
UT.2 Introducción a los Sistemas Operativos
2.5 - Clasificación de sistemas operativos
TIPOS DE SISTEMAS OPERATIVOS SEGÚN SU VISIÓN EXTERNA SISTEMAS OPERATIVOS DISTRIBUIDOS El modelo de computación de ciclos redundantes, también conocido como computación zombi, es el empleado por aplicaciones como Seti@Home - Search for extraterrestrial intelligence (Búsqueda de inteligencia extraterrestre), consistente en que un servidor o grupo de servidores distribuyen trabajo de procesamiento a un grupo de computadoras voluntarias a ceder capacidad de procesamiento no utilizada. Básicamente, cuando dejamos nuestro ordenador encendido, pero sin utilizarlo, la capacidad de procesamiento se desperdicia por lo general en algún protector de pantalla, este tipo de procesamiento distribuido utiliza nuestra computadora cuando nosotros no la necesitamos, aprovechando al máximo la capacidad de procesamiento. La consola PS3 también cuenta con una iniciativa de este tipo. Otro método similar para crear sistemas de supercomputadoras es el clustering. Un cluster o racimo de computadoras consiste en un grupo de computadoras de relativo bajo costo conectadas entre sí mediante un sistema de red de alta velocidad (gigabit de fibra óptica por lo general) y un software que realiza la distribución de la carga de trabajo entre los equipos.
IMPLANTACIÓN DE SISTEMAS OPERATIVOS
UT.2 Introducción a los Sistemas Operativos
2.5 - Clasificación de sistemas operativos
TIPOS DE SISTEMAS OPERATIVOS SEGÚN SU VISIÓN EXTERNA SISTEMAS OPERATIVOS DISTRIBUIDOS Este tipo de sistemas cuentan con un centro de almacenamiento de datos único. Tienen la ventaja de ser sistemas redundantes, si falla un equipo se resiente un poco la potencia del clúster, pero los demás equipos hacen que no se note el fallo. En un clúster normalmente todos los equipos están ubicados en una misma red de área local, mientras que en un grid los equipos suelen estar distribuidos por todo el mundo. Ejemplo: Google. En 2010 usaba unos 450.000 ordenadores, distribuidos en varias sedes por todo el mundo y formando clúster en cada una de dichas sedes. Cada clúster de Google está formado por miles de ordenadores y en los momentos en que se detecta que el sistema llega al límite de su capacidad, se instalan cientos de ordenadores más en pocos minutos, aumentado así la potencia de cada clúster. Estos equipos normalmente con ordenadores x86 como los que solemos usar nosotros, corriendo versiones especiales de Linux, modificadas por la propia Google para que permitan la formación de estos clúster.
IMPLANTACIÓN DE SISTEMAS OPERATIVOS
UT.2 Introducción a los Sistemas Operativos
2.5 - Clasificación de sistemas operativos
TIPOS DE SISTEMAS OPERATIVOS SEGÚN SU VISIÓN EXTERNA SISTEMAS OPERATIVOS DISTRIBUIDOS Centro de datos de Google.