Identificación de un Sistema Operativo
Definición
Un sistema
operativo es un programa (software) encargado de poner en funcionamiento el ordenador, puesto que gestiona los procesos básicos del sistema. Así mismo
se encarga de gestionar para el usuario el hardware.
El sistema
operativo comienza a trabajar en cuanto se enciende el ordenador y es completamente
fundamental para que el usuario trabaje con él. Los sistemas operativos realizan
tareas básicas y, sin ellos, el
ordenador no funcionaría. Así, por ejemplo, el sistema operativo reconoce la
conexión del teclado, organiza y ordena los archivos, controla la impresora, la
pantalla, etc. Es como un policía de tráfico pues, se encarga
De que los
programas no interfieran entre ellos.
Sobre el
sistema operativo se instalan los programas que vaya a usar el usuario. Los programas,
también llamados aplicaciones son muy diversos.
Funciones del sistema
operativo
El sistema operativo cumple varias funciones:
Administración
del procesador: el
sistema operativo administra la distribución del procesador entre los distintos
programas por medio de un algoritmo de programación. El tipo de programador
depende completamente del sistema operativo, según el objetivo deseado.
Gestión
de la memoria de acceso aleatorio: el sistema operativo se encarga de gestionar el espacio
de memoria asignado para cada aplicación y para cada usuario, si resulta
pertinente. Cuando la memoria física es insuficiente, el sistema operativo
puede crear una zona de memoria en el disco duro, denominada "memoria
virtual". La memoria virtual permite ejecutar aplicaciones que requieren
una memoria superior a la memoria RAM disponible en el sistema. Sin embargo,
esta memoria es mucho más lenta.
Gestión
de entradas/salidas: el
sistema operativo permite unificar y controlar el acceso de los programas a los
recursos materiales a través de los drivers (también conocidos como
administradores periféricos o de entrada/salida).
Gestión
de ejecución de aplicaciones: el sistema operativo se encarga de que las aplicaciones
se ejecuten sin problemas asignándoles los recursos que éstas necesitan para
funcionar. Esto significa que si una aplicación no responde correctamente puede
"sucumbir".
Administración
de autorizaciones: el
sistema operativo se encarga de la seguridad en relación con la ejecución de
programas garantizando que los recursos sean utilizados sólo por programas y
usuarios que posean las autorizaciones correspondientes.
Gestión
de archivos: el
sistema operativo gestiona la lectura y escritura en el sistema de archivos, y
las autorizaciones de acceso a archivos de aplicaciones y usuarios.
Gestión
de la información: el
sistema operativo proporciona cierta cantidad de indicadores que pueden
utilizarse para diagnosticar el funcionamiento correcto del equipo.
Componentes del
sistema operativo
El sistema operativo está compuesto por un
conjunto de paquetes de software que pueden utilizarse para gestionar las
interacciones con el hardware. Estos elementos se incluyen por lo general en
este conjunto de software:
El
núcleo, que
representa las funciones básicas del sistema operativo, como por ejemplo, la
gestión de la memoria, de los procesos, de los archivos, de las
entradas/salidas principales y de las funciones de comunicación.
El
intérprete de comandos,
que posibilita la comunicación con el sistema operativo a través de un lenguaje
de control, permitiendo al usuario controlar los periféricos sin conocer las
características del hardware utilizado, la gestión de las direcciones físicas,
etcétera.
El
sistema de archivos,
que permite que los archivos se registren en una estructura arbórea.
Monousuario
En este tipo de sistema solo hay un único
usuario que trabaja con el ordenador y tiene disponibles todos los recursos del
sistema para el mismo. Si otro usuario quiere utilizar el sistema ha de esperar
a que termine el primero para utilizarlo.
Los ejemplos más claros de sistemas
operativos monousuarios pueden ser: DOS (Disk Operating System), Windows XP,
Windows 2000, etc.
Uniprocesador.
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. El ejemplo más típico de este
tipo de sistemas es el DOS y MacOS.
Sistemas Operativos de Red
Son
aquellos sistemas que mantienen a dos o más equipos unidos a través de algún medio
de comunicación (físico o no), con el objetivo primordial de poder compartir
los diferentes recursos de hardware y software.
También sistema operativo de red (Network
Operating System) es un componente software de una computadora que tiene como
objetivo coordinar y manejar las actividades de los recursos del ordenador en
una red de equipos. Consiste en un software que posibilita la comunicación de
un sistema informático con otros equipos en el ámbito de una red. Dependiendo
del fabricante del sistema operativo de red, tenemos que el software de red
para un equipo personal se puede añadir al propio sistema operativo del equipo
o integrarse con él. Netware de Novell es el ejemplo más familiar y famoso de
sistema operativo de red donde el software de red del equipo cliente se
incorpora en el sistema operativo del equipo. El equipo personal necesita ambos
sistema operativos para gestionar conjuntamente las funciones de red y las
funciones individuales.
Características
En general, se puede decir que un Sistema
Operativo tiene las siguientes características:
·
Conveniencia.
Un Sistema Operativo hace más conveniente el uso de una computadora.
·
Eficiencia.
Un Sistema Operativo permite que los recursos de la computadora se usen de la
manera más eficiente posible.
·
Habilidad para evolucionar. Un Sistema
Operativo deberá construirse de manera que permita el desarrollo, prueba o
introducción efectiva de nuevas funciones del sistema sin interferir con el
servicio. Encargado de administrar el hardware.
El Sistema Operativo se encarga de manejar de
una mejor manera los recursos de la computadora en cuanto a hardware se
refiere, esto es, asignar a cada proceso una parte del procesador para poder
compartir los recursos. Relacionar dispositivos (gestionar a través del
kernel). El Sistema Operativo se debe encargar de comunicar a los dispositivos periféricos,
cuando el usuario así lo requiera. Organizar datos para acceso rápido y seguro.
Manejar las comunicaciones en red. El Sistema Operativo permite al usuario
manejar con alta facilidad todo lo referente a la instalación y uso de las
redes de computadoras. Procesamiento por bytes de flujo a través del bus de
datos. Facilitar las entradas y salidas. Un Sistema Operativo debe hacerle
fácil al usuario el acceso y manejo de los dispositivos de Entrada /Salida de
la computadora.
Funciones
Funciones de los sistemas operativos.
·
Aceptar
todos los trabajos y conservarlos hasta su finalización.
·
Interpretación
de comandos: Interpreta los comandos que permiten al usuario comunicarse con el
ordenador.
·
Control
de recursos: Coordina y manipula el hardware de la computadora, como la
memoria, las impresoras, las unidades de disco, el teclado o el Mouse.
·
Manejo
de dispositivos de E/S: Organiza los archivos en diversos dispositivos de almacenamiento,
como discos flexibles, discos duros, discos compactos o cintas magnéticas.
·
Manejo
de errores: Gestiona los errores de hardware y la pérdida de datos.
·
Secuencia
de tareas: El sistema operativo debe administrar la manera en que se reparten
los procesos. Definir el orden. (Quien va primero y quien después).
·
Protección:
Evitar que las acciones de un usuario afecten el trabajo que está realizando
otro usuario.
·
Multiacceso:
Un usuario se puede conectar a otra máquina sin tener que estar cerca de ella.
·
Contabilidad
de recursos: establece el costo que se le cobra a un usuario por utilizar
determinados recursos
En un entorno de red podemos diferenciar
claramente dos componentes:
Ø Clientes.- Equipos normalmente configurados con
sistemas operativos mono puesto, que se conectan y validan al servidor para
poder empezar a trabajar en la red.
Ø Servidores.-
Equipos configurados con operativos de red
que proporcionan recursos a los clientes y el software de red del cliente permite
que estos recursos estén disponibles para los equipos clientes. La red del
sistema operativo del cliente están coordinados de forma que todos los elementos de la red
funcionen correctamente.
Multiprocesadores
La técnica de multiprocesamiento consiste en
hacer funcionar varios procesadores en forma paralela para obtener un poder de
cálculo mayor que el obtenido al usar un procesador de alta tecnología o al
aumentar la disponibilidad del sistema (en el caso de fallas del procesador).
Si el sistema informático cuenta con dos o
más procesadores, existen sistemas operativos capaces de gestionar varios
procesadores a la vez, de esta forma se aprovecha mejor la capacidad del equipo
en la ejecución de procesos entre varios procesadores.
Las siglas SMP (multiprocesamiento
simétrico o multiprocesador simétrico)
hacen referencia a la arquitectura en la que todos los procesadores acceden a
la misma memoria compartida.
·
MultiProceso Simetrico (SMP, Symetrical MultiProcessing): En el
cual el sistema operativo utiliza los procesadores por igual alternando el uso
de los mismos de forma simultánea.
·
MultiProceso Asimétrico (AMP, Asymetrical MultiProcessing): El
sistema reparte las tareas que están realizando los procesadores, determinando
que procesos ejecuta cada procesador.
Un sistema de multiprocesadores debe tener
capacidad para gestionar la repartición de memoria entre varios procesadores,
pero también debe distribuir la carga de trabajo.
Multitareas
Es la capacidad de un sistema operativo para
ejecutar varios procesos al mismo tiempo corriendo sobre un procesador o sobre
varios. Quienes hayan experimentado con sistemas MS-DOS durante la década del
80 recordarán su incapacidad para realizar este tipo de actividades, algo que
fue superado con los primeros Windows de Microsoft, aunque la multitarea era
común en otros sistemas operativos muchos años antes, tal es el caso de Unix y
derivados.
Las multitareas se dividen en nulas,
cooperativas, preferentes y reales.
- · Nulas:
Estamos
hablando de un sistema operativo que, a pesar de carecer de esta
característica, puede imitar del alguna forma el comportamiento en espacio de
usuario o utilizando algunos trucos. Tal como mencionamos MS-DOS es un ejemplo
típico en este sentido.
- · Cooperativo:
Los procesos que corren en el espacio de
usuario van cediendo el procesador al sistema operativo en intervalos
regulares, siendo un esquema complicado y un tanto arcaico porque si uno de los
procesos quedaría congelado sin ceder el procesador al sistema, todo el sistema
operativo quedaría congelado también. Encontraremos ejemplos de multitareas
cooperativas en los sistemas Microsoft Windows desde su inicio hasta la versión
95.
- · Preferente:
Se comportan de otra manera: en este caso es
el sistema operativo mismo el que administra el procesador o los procesadores,
mientras los procesos están esperando ejecutarse, repartiendo para cada uno un
tiempo de utilización. Siendo el resultado final prácticamente igual al que se
obtendría si estuviesen realmente corriendo al mismo tiempo, sin embargo cada
proceso utiliza el procesador durante períodos cortos de tiempo. Como ejemplos
podemos citar los sistemas de tipo Unix: GNU/Linux, FreeBSD, VMS, AmigaOS, y
también Windows NT.
- · Real:
Si el hardware posee más de un procesador,
entonces puede existir multitarea de tipo real, con cada proceso corriendo al
mismo tiempo en cada CPU.
Multiusuario
En los sistemas operativos antiguos, la idea
de multiusuario guarda el significado original de que éste puede utilizarse por
varios usuarios al mismo tiempo, permitiendo la ejecución concurrente de
programas de usuario. Aunque la idea original de tiempo compartido o el uso de
terminales tontas no es ya el más utilizado. Esto debido a que los ordenadores
modernos pueden tener múltiples procesadores, o proveer sus interfaces de
usuario a través de una red, o en casos especiales, ya ni siquiera existe un
solo ordenador físico proveyendo los servicios, sino una federación de
ordenadores en red o conectados por un bus de alta velocidad y actuando en
concierto para formar un cluster. Desde el principio del concepto, la
compartición de los recursos de procesamiento, almacenaje y periféricos
facilita la reducción de tiempo ocioso en el (o los) procesador(es), e
indirectamente implica reducción de los costos de energía y equipamiento para
resolver las necesidades de cómputo de los usuarios.
Ejemplos de sistemas operativos con
característica de multiusuario son VMS y Unix, así como sus múltiples
derivaciones y los sistemas tipo Unix como Linux, Free BSD y Mac OS X. En la
familia de los sistemas operativos Microsoft Windows, desde Windows 95 hasta la
versión Windows 2000, proveen soporte para ambientes personalizados por
usuario, pero no admiten la ejecución de múltiples sesiones de usuario mediante
el entorno gráfico.
Las
versiones de Windows 2000 server y Windows 2003 server ofrecen el servicio Terminal
Server el cual permite la ejecución remota de diferentes sesiones de usuario.
Marco teórico
Sistema multiusuario, es aquel que distintos
usuarios pueden trabajar a la vez en nuestro sistema. La palabra multiusuario
se refiere a un concepto de sistemas operativos, pero en ocasiones también
puede aplicarse a programas de ordenador de otro tipo. En general se le llama
multiusuario a la característica de un sistema operativo o programa que permite
proveer servicio y procesamiento a múltiples usuarios simultáneamente. En los
sistemas operativos antiguos, la idea de multiusuario guarda el significado original
de que éste puede utilizarse por varios usuarios al mismo tiempo, permitiendo la
ejecución concurrente de programas de usuario. Aunque la idea original de
tiempo compartido o el uso de terminales tontas no es ya el más utilizado.
Tipos de sistemas operativos
Los sistemas operativos pueden ser
clasificados de distintas formas o tipos:
A) Según la
administración de tareas:
- Monotarea: este tipo de sistemas operativos
son capaces de manejar un programa o realizar una sola tarea a la vez. Son los
más antiguos. Por ejemplo, si el usuario está escaneando, la computadora no
responderá a nuevas indicaciones ni comenzará un proceso nuevo.
- Multitarea: esta característica es propia
de los S.O. más avanzados y permiten ejecutar varios procesos a la vez, desde
uno o varios ordenadores, es decir que los pueden utilizar varios usuarios al
mismo tiempo. Esto se puede realizar por medio de sesiones remotas una red o
bien, a través de terminales conectadas a una computadora.
B) Según la
administración de usuarios:
- Monousuario: Sólo pueden responder a un
usuario por vez. De esta manera, cualquier usuario tiene acceso a los datos del
sistema. Existe un único usuario que puede realizar cualquier tipo de
operación.
- Multiusuario: esta característica es propia
de aquellos S.O. en los que varios usuarios pueden acceder a sus servicios y
procesamientos al mismo tiempo. De esta manera, satisfacen las necesidades de
varios usuarios que estén utilizando los mismos recursos, ya sea memoria,
programas, procesador, impresoras, scanner, entre otros.
Ejemplos:
Algunos ejemplos de sistemas operativos para
computadoras son: DOS; Windows 3.1, 95/98/Me, NT/2000, WindowsXP; Unix / Linux;
VMS; MAC/OS X
Para
dispositivos móviles los S.O. más populares son: Symbian, Palm OS, Android,
BlackBerry OS, Windows Mobile, iOS, entre otros.
Sistemas Operativos por su Estructura
Según, se deben observar dos tipos de requisitos cuando se
construye un sistema operativo, los cuales son:
Requisitos de usuario: Sistema fácil de usar y de aprender,
seguro, rápido y adecuado al uso al que se le quiere destinar.
Requisitos del software: Donde se engloban aspectos como el
mantenimiento, forma de operación, restricciones de uso, eficiencia, tolerancia
frente a los errores y flexibilidad.
A continuación se describen las distintas estructuras que
presentan los actuales sistemas operativos para satisfacer las necesidades que
de ellos se quieren obtener.
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.
Estructura Jerárquica.
A medida que fueron creciendo las necesidades de los usuarios
y se perfeccionaron los sistemas, se hizo necesaria una mayor organización del
software, del sistema operativo, donde una parte del sistema contenía subpartes
y esto organizado en forma de niveles.
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.
Se constituyó una estructura jerárquica o de niveles en los
sistemas operativos, el primero de los cuales fue denominado THE (Technische
Hogeschool, Eindhoven), de Dijkstra, que se utilizó con fines didácticos. Se
puede pensar también en estos sistemas como si fueran `multicapa'. Multics y
Unix caen en esa categoría.
En la estructura anterior se basan prácticamente la mayoría
de los sistemas operativos actuales. Otra forma de ver este tipo de sistema es
la denominada de anillos concéntricos o "rings".
En el sistema de anillos, cada uno tiene una apertura,
conocida como puerta o trampa (trap), por donde pueden entrar las llamadas de
las capas inferiores. De esta forma, las zonas más internas del sistema
operativo o núcleo del sistema estarán más protegidas de accesos indeseados
desde las capas más externas. Las capas más internas serán, por tanto, más
privilegiadas que las externas.
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. Estas
máquinas virtuales no son máquinas extendidas, sino una réplica de la máquina
real, de manera que en cada una de ellas se pueda ejecutar un sistema operativo
diferente, que será el que ofrezca la máquina extendida al usuario.
Cliente-Servidor (Microkernel).
El tipo más reciente de sistemas operativos es el denominado
Cliente-servidor, que puede ser ejecutado en la mayoría de las computadoras, ya
sean grandes o pequeñas.
Este sistema sirve para toda clase de aplicaciones por tanto,
es de propósito general y cumple con las mismas actividades que los sistemas
operativos convencionales.
El núcleo tiene como misión establecer la comunicación entre
los clientes y los servidores. Los procesos pueden ser tanto servidores como
clientes. Por ejemplo, un programa de aplicación normal es un cliente que llama
al servidor correspondiente para acceder a un archivo o realizar una operación
de entrada/salida sobre un dispositivo concreto. A su vez, un proceso cliente
puede actuar como servidor para otro." [Alcal92]. Este paradigma ofrece
gran flexibilidad en cuanto a los servicios posibles en el sistema final, ya
que el núcleo provee solamente funciones muy básicas de memoria,
entrada/salida, archivos y procesos, dejando a los servidores proveer la mayoría
que el usuario final o programador puede usar. Estos servidores deben tener
mecanismos de seguridad y protección que, a su vez, serán filtrados por el
núcleo que controla el hardware. Actualmente se está trabajando en una versión
de UNIX que contempla en su diseño este paradigma.
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 accesa a los servicios.
Bajo esta clasificación se pueden detectar dos tipos principales: sistemas
operativos de red y sistemas operativos distribuidos.
Sistema Operativo de Red.
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. El punto crucial de estos sistemas es que el usuario debe saber la
sintaxis de un conjunto de comandos o llamadas al sistema para ejecutar estas
operaciones, además de la ubicación de los recursos que desee acezar. Por
ejemplo, si un usuario en la computadora hidalgo necesita el archivo matriz.pas
que se localiza en el directorio /software/código en la computadora morelos
bajo el sistema operativo UNIX, dicho usuario podría copiarlo a través de la
red con los comandos siguientes: hidalgo% hidalgo% rcp
morelos:/software/codigo/matriz.pas. Hidalgo%. En este caso, el comando rcp que
significa "remote copy" trae el archivo indicado de la computadora
morelos y lo coloca en el directorio donde se ejecutó el mencionado comando. Lo
importante es hacer ver que el usuario puede accesar y compartir muchos
recursos.
El primer
Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola
68000, pasando posteriormente a procesadores Intel como Novell Netware.
Los Sistemas Operativos de red más ampliamente usados son:
Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX,
LANtastic.
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 accesa 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. Todo lo anterior es
el marco teórico de lo que se desearía tener como sistema operativo
distribuido, pero en la realidad no se ha conseguido crear uno del todo, por la
complejidad que suponen: distribuir los procesos en las varias unidades de
procesamiento, reintegrar sub-resultados, resolver problemas de concurrencia y
paralelismo, recuperarse de fallas de algunos recursos distribuidos y
consolidar la protección y seguridad entre los diferentes componentes del
sistema y los usuarios.
Los avances tecnológicos en las redes de área local y la
creación de microprocesadores de 32 y 64 bits lograron que computadoras más o
menos baratas tuvieran el suficiente poder en forma autónoma para desafiar en
cierto grado a los mainframes, y a la vez se dio la posibilidad de
intercomunicarlas, sugiriendo la oportunidad de partir procesos muy pesados en
cálculo en unidades más pequeñas y distribuirlas en los varios
microprocesadores para luego reunir los sub-resultados, creando así una máquina
virtual en la red que exceda en poder a un mainframe. El sistema integrador de
los microprocesadores que hacer ver a las varias memorias, procesadores, y
todos los demás recursos como una sola entidad en forma transparente se le
llama sistema operativo distribuido.
Las razones para crear o adoptar sistemas distribuidos se dan
por dos razones principales: por necesidad (debido a que los problemas a
resolver son inherentemente distribuidos) o porque se desea tener más
confiabilidad y disponibilidad de recursos. En el primer caso tenemos, por
ejemplo, el control de los cajeros automáticos en diferentes estados de la
república. Ahí no es posible ni eficiente mantener un control centralizado, es
más, no existe capacidad de cómputo y de entrada/salida para dar servicio a los
millones de operaciones por minuto. En el segundo caso, supóngase que se tienen
en una gran empresa varios grupos de trabajo, cada uno necesita almacenar
grandes cantidades de información en disco duro con una alta confiabilidad y
disponibilidad. La solución puede ser que para cada grupo de trabajo se asigne
una partición de disco duro en servidores diferentes, de manera que si uno de
los servidores falla, no se deje dar el servicio a todos, sino sólo a unos
cuantos y, más aún, se podría tener un sistema con discos en espejo ( mirror )
a través de la red, de manera que si un servidor se cae, el servidor en espejo
continúa trabajando y el usuario ni cuenta se da de estas fallas, es decir,
obtiene acceso a recursos en forma transparente.
Los sistemas distribuidos deben de ser muy confiables, ya que
si un componente del sistema se compone otro componente debe de ser capaz de
reemplazarlo.
Entre los diferentes Sistemas Operativos distribuidos que
existen tenemos los siguientes: Sprite, Solaris- MC, Mach, Chorus, Spring,
Amoeba, Taos, etc.
Referencias
No hay comentarios:
Publicar un comentario