Está en la página 1de 7

Funciones de los sistemas operativos

Uno de los propósitos o funciones del sistema operativo es gestionar el núcleo, los
recursos de localización y el hardware de nuestra máquina. La mayoría de los
aparatos electrónicos en el mercado que cuentan con un microprocesador, tienen un
sistema operativo.

 Como maquina extendida

El sistema operativo como maquina extendida se encarga de presentar una


interfaz agradable para el programador u operador por medio de archivos,
ocultando las peculiaridades del hardware como las interrupciones,
administración de memoria, temporizadores y otras funciones de bajo nivel.

 Como gestor de recursos

El Sistema Operativo como gestor de recursos tiene como funcion administrar:


 La CPU o microprocesador (Unidad Central de Proceso).
 Los dispositivos de E/S (entrada y salida)
 La memoria principal (o de acceso directo).
 Los discos (o memoria secundaria).
 Los procesos (o programas en ejecución).
 ...
 y en general todos los recursos del sistema.
También existen otras funciones como:
 Gestión de la memoria principal
 Gestión del almacenamiento secundario
 Gestión del sistema de entrada y salida
 Registro del sistema de archivos
 Seguridad
 Comunicación entre elementos y aplicaciones
 Informar del estado del sistema
 Administración de usuarios

Estructura de los sistemas operativos

 Sistemas monolíticos
Este tipo de organización es, con diferencia, la más común. El sistema operativo
se escribe como una colección de procedimientos, cada uno de los cuales puede
llamar a los demás cada vez que así lo requiera. Cuando se usa esta técnica,
cada procedimiento del sistema tiene una interfaz bien definida en términos de
parámetros y resultados, y cada uno de ellos es libre de llamar a cualquier otro,
si éste último proporciona un cálculo útil para el primero
El sistema operativo examina entonces los parámetros de la llamada para
determinar cuál de ellas se desea realizar. A continuación, el sistema operativo
analiza una tabla que contiene en la entrada k un apuntador al procedimiento que
implementa la k-ésima llamada al sistema. Esta operación, identifica el
procedimiento de servicio, al cual se llama. Por último, la llamada al sistema termina
y el control vuelve al programa del usuario.
Esta organización sugiere una estructura básica del sistema operativo:
 Un programa principal que llama al procedimiento del servicio solicitado.
 Un conjunto de procedimientos de servicio que lleva a cabo las llamadas al
sistema.
 Un conjunto de procedimientos de utilidades que ayudan a los
procedimientos de servicio.

Este Sistema monolítico es utilizado por Linux y FreeBSD, y por varios derivados
de UNIX.

 Sistemas por capas


En ella se ordena el sistema operativo como una jerarquía de estratos o capas.
Cada capa se integra empleando únicamente aquellas acciones que le brindan el
nivel instantáneamente inferior. Se utilizan métodos modulares y de diseño top-
down. La limpieza y comprobación del sistema es mucho más simple. La mayor
complicación está en establecer las capas. Los procedimientos al tener que
pasar por varias capas, resultan menos eficientes u óptimos.
Una práctica común es ubicar los procesos y componentes de entrada/salida en
los dos primeros niveles, para acelerar su ejecución. Lo relevante en esta
arquitectura es que se necesitan realizar restricciones en cuanto a las llamadas
al sistema que puedan ejecutar los procesos de determinados niveles. Por
ejemplo, se ha de evitar que un proceso pueda efectuar una llamada al sistema
que requiera la atención de un componente de menor privilegio o tal vez evitar
que los programas de aplicación hagan llamadas directamente sobre el núcleo.
Así puede obligarse a utilizar como mediadores a otros niveles. Se puede pensar
en estos sistemas como si fueran multicapa. Multics y UNIX estan en esta
categoria.
 Máquinas virtuales

La definición de una máquina virtual es diseñar sobre un equipo real distintas


máquinas virtuales en las que puedan avanzar sistemas operativos diferentes al
mismo tiempo. Es un software que simula un sistema de computación y puede
ejecutar programas como si fuese una computadora real. Este software en un
principio fue definido como "un duplicado eficiente y aislado de una máquina física".
Una característica esencial de las máquinas virtuales es que los procesos que
ejecutan están limitados por los recursos y abstracciones proporcionados por ellas.
Estos procesos no pueden escaparse de esta "computadora virtual".
Uno de los usos domésticos más extendidos de las máquinas virtuales es ejecutar
sistemas operativos para "probarlos". De esta forma podemos ejecutar un sistema
operativo que queramos probar (GNU/Linux, por ejemplo) desde nuestro sistema
operativo habitual (Mac OS X, por ejemplo) sin necesidad de instalarlo directamente
en nuestra computadora y sin miedo a que se desconfigure el sistema operativo
primario.
 Exokernels

Exokernel es un tipo de sistema operativo desarrollado en el Instituto de Tecnología


de Massachusetts (MIT) que busca proporcionar administración de recursos de
hardware a nivel de aplicación.

La arquitectura exokernel está diseñada para separar la protección de recursos de


la administración para facilitar la personalización específica de la aplicación. Los
exokernel son típicamente pequeños en tamaño debido a su operatividad limitada.
Algunas de las características de los sistemas operativos exokernel incluyen:

• Mejor soporte para el control de aplicaciones

• Separa la seguridad de la administración

• Las abstracciones se transfieren de forma segura a un sistema operativo de


biblioteca que no es de confianza

• Proporciona una interfaz de bajo nivel

• Los sistemas operativos de biblioteca ofrecen portabilidad y compatibilidad


 Modelo Cliente servidor
Una tendencia de los sistemas operativos modernos es la de trasladar el código
a capas superiores, y eliminar la mayor parte posible del sistema operativo para
mantener un núcleo mínimo. El punto de vista usual es el implantar la mayoría
de las funciones del sistema operativo como procesos de usuario. Para solicitar
un servicio, como la lectura de un bloque de cierto fichero, un proceso de usuario
(denominado en este caso proceso cliente) envía la solicitud a un proceso
servidor, que realiza el trabajo y devuelve la respuesta.
En este modelo, lo único que hace el núcleo es controlar la comunicación entre los
clientes y los servidores. Al separar el sistema operativo en partes, cada una de
ellas controla una faceta del sistema, como el servicio a ficheros, servicio a
procesos, servicio a terminales o servicio a la memoria; cada parte es pequeña y
controlable. Además, puesto que todos los servidores se ejecutan como procesos
en modo usuario, y no en modo núcleo, no tienen acceso directo al hardware. En
consecuencia, si hay un error en el servidor de ficheros éste puede fallar, pero esto
no afectará en general a toda la máquina.
Otra de las ventajas del modelo cliente-servidor es su capacidad de adaptación para
su uso en sistemas distribuidos. Si un cliente se comunica con un servidor mediante
mensajes, el cliente no necesita saber si el mensaje se gestiona de forma local, en
su máquina, o si se envía por medio de una red a un servidor en una máquina
remota. En lo que respecta al cliente, lo mismo ocurre en ambos casos: se envió
una solicitud y se recibió una respuesta.

También podría gustarte