Introducción
Un sistema operativo es un programa que actúa como
intermediario entre el usuario y el hardware de un computador y su propósito es
proporcionar un entorno en el cual el usuario pueda ejecutar programas. El
objetivo principal de un sistema operativo es lograr que el sistema de
computación se use de manera cómoda, y el objetivo secundario es que el
hardware del computador se emplee de manera eficiente.
Un sistema Operativo (SO) es en sí mismo un
programa de computadora. Sin embargo, es un programa muy especial, quizá el más
complejo e importante en una computadora. El SO despierta a la computadora y
hace que reconozca a la CPU, la memoria, el teclado, el sistema de vídeo y las
unidades de disco. Además, proporciona la facilidad para que los usuarios se
comuniquen con la computadora y sirve de plataforma a partir de la cual se
corran programas de aplicación.
CAPAS DE UN SISTEMA OPERATIVO
Los sistemas operativos implementan una multitud
de servicios y funciones como la gestión de entrada y salida, la cuenta y
control de los programas, la gestión de la memoria, entre otros, lo cual genera
una complejidad que los diseñadores deben ocultar pues las operaciones del
sistema operativo deben ser transparentes al usuario, lo cual lleva ocultar todos los detalles de información y
de las estructuras de datos empaquetando las funciones en módulos.
La ocultación de los detalles es una estrategia
que ha funcionado construyendo una jerarquía de niveles de abstracción, de modo
que cada nivel proporciona un conjunto específico de funciones primitivas que
podrán usar las funciones de la capa superior.
En la imagen con que iniciamos este post, podemos
ver un modelo general de un sistema operativo por capas, analizaremos cada una,
comenzando por la más interna:
Capa 1.
Núcleo
El núcleo o kernel gestiona todos los procesos, es
el encargado de llevar la cuenta de todos los procesos activos y de la
planificación de los mismos, al seleccionar cuál de ellos ocupara tiempo del
procesador, esta capa es muy importante, dado que define el rendimiento del
sistema, prueba de ello es el rendimiento que obtuvo Windows XP, al ser creado
sobre la base de un núcleo UNIX que fue adquirido a la compañía Santa Cruz
Operations.
Capa 2. Manejo
de Memoria
Este nivel administra la memoria principal o
memoria RAM, se encarga de asignar los bloques de memoria a los procesos y de
liberarlos cuando los procesos han terminado, así también se encarga de retirar
algunos procesos de la memoria y almacenar una imagen de ellos en el disco
duro, con la finalidad de simular que existe más memoria de la que realmente
existe de forma física, el cual es un proceso que denominamos memoria virtual.
Capa 3.
Entrada y salida básica
Proporciona funciones primitivas para la gestión
de la memoria secundaria, es decir, se encarga de proveer las primitivas
necesarias para la localización, escritura y lectura de bloques de datos en el
disco duro, sin llegar a proporcionar muchos detalles, cabe señalar que en esta
capa la información almacenada no se representa como archivos, la cual es una
implementación de una capa superior.
Capa 4.
Sistema de archivos.
Esta capa proporciona las funciones necesarias
para almacenar la información en archivos, se apoya en las primitivas de la
capa de entrada y salida; y la decisión de que procesos hacen uso de memoria se
ubican en esta capa.
Capa 5.
Interfaz de Usuario
En esta ultima capa se ubica la interfaz visible
para el usuario, ya sea como una línea de comando o como una GUI (Interfaz
Gráfica de Usuario), con la cual el usuario comunica y que esta capa traduce al
conjunto de primitivas de las capas anteriores.
TIPOS DE SISTEMAS OPERATIVOS
En esta sección se describirán las características
que clasifican a los sistemas operativos, básicamente se cubrirán tres clasificaciones:
sistemas operativos por su estructura (visión interna), sistemas operativos por
los servicios que ofrecen y, finalmente, sistemas operativos por la forma en
que ofrecen sus servicios (visión externa).
Sistemas Operativos por su Estructura
- Estructura Monolítica
Es la estructura de los primeros sistemas
operativos constituidos fundamentalmente por un solo programa compuesto de un
conjunto de rutinas entrelazadas de tal forma que cada una puede llamar a
cualquier otra. Las características fundamentales de este tipo de
estructura son:
- Construcción del programa final a base de módulos compilados separadamente que se unen a través del ligador.
- Buena definición de parámetros de enlace entre las distintas rutinas existentes, que puede provocar mucho acoplamiento.
- Carecen de protecciones y privilegios al entrar a rutinas que manejan diferentes aspectos de los recursos de la computadora, como memoria, disco, etc.
Generalmente están hechos a medida, por lo que son
eficientes y rápidos en su ejecución y gestión, pero por lo mismo carecen de
flexibilidad para soportar diferentes ambientes de trabajo o tipos de
aplicaciones.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq-VBQGdea8x54F5T5M-ZOi58b9RxyafnoVlkWoAe7YQA5Wu3i3vszD8c29s4wykr0tyg4nkWmvkyxbztvkrZ9TYsfEo9oG_Yv2OPak_KpgLO1lDWMPm2jqPfNFKtjlNnDMtEDZp7FKBQ/s200/emonolitica.gif)
- · Estructura jerárquica.
Se dividió el sistema operativo en pequeñas partes, de tal forma que
cada una de ellas estuviera perfectamente definida y con un claro interface con
el resto de elementos.
- Máquina Virtual.
Se trata de un tipo de sistemas operativos que
presentan una interface a cada proceso, mostrando una máquina que parece
idéntica a la máquina real subyacente. Estos sistemas operativos separan dos
conceptos que suelen estar unidos en el resto de sistemas: la multiprogramación
y la máquina extendida. El objetivo de los sistemas operativos de máquina
virtual es el de integrar distintos sistemas operativos dando la sensación de
ser varias máquinas diferentes.
El núcleo de estos sistemas operativos se denomina monitor virtual y
tiene como misión llevar a cabo la multiprogramación, presentando a los niveles
superiores tantas máquinas virtuales como se soliciten.
Sistemas Operativos por Servicios
Esta clasificación es la más comúnmente usada y
conocida desde el punto de vista del usuario final. Esta clasificación se
comprende fácilmente con el cuadro sinóptico que a continuación se muestra.
- Monousuarios
Los sistemas operativos monousuarios 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 computadoras personales
típicamente se han clasificado en este renglón.
- Multiusuarios
Los sistemas operativos multiusuarios 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.
- Monotareas
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.
- Multitareas
- Uniproceso
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.
- Multiproceso
Un sistema operativo multiproceso se refiere al
número de procesadores del sistema, que es más de uno y éste es capaz de
usarlos todos para distribuir su carga de trabajo. Generalmente estos sistemas
trabajan de dos formas: simétrica o asimétricamente. 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. Cuando se
trabaja de manera simétrica, los procesos o partes de ellos (threads) son
enviados indistintamente a cualesquiera de los procesadores disponibles,
teniendo, teóricamente, una mejor distribución y equilibrio en la carga de
trabajo bajo este esquema.
Sistemas Operativos por la Forma de Ofrecer sus Servicios
Esta clasificación también se refiere a una visión
externa, que en este caso se refiere a la del usuario, el cómo accede a los
servicios. Bajo esta clasificación se pueden detectar dos tipos principales:
sistemas operativos de red y sistemas operativos distribuidos.
- Sistemas Operativos de Red
- Sistemas Operativos Distribuidos
Los sistemas operativos distribuidos abarcan los
servicios de los de red, logrando integrar recursos (impresoras, unidades de
respaldo, memoria, procesos, unidades centrales de proceso) en una sola máquina
virtual que el usuario accede en forma transparente. Es decir, ahora el usuario
ya no necesita saber la ubicación de los recursos, sino que los conoce por
nombre y simplemente los usa como si todos ellos fuesen locales a su lugar de
trabajo habitual.
Realizado por:
Millán Josnira
Thomas Yudith
Quinán Gleisy
Zabala Ariana