Ismaeli Yesenia Monsalvo
Abreu 15.152.623
Sistemas Operativos
Un sistema operativo es un programa
destinado a permitir la comunicación del usuario
con un computador
y gestionar sus recursos de una forma eficaz. Comienza a trabajar cuando se
enciende el computador, y gestiona el hardware
de la máquina desde los niveles más básicos.
A finales de los 40's el uso de computadoras estaba
restringido a aquellas empresas o instituciones que podían pagar su alto
precio, y no existían los sistemas operativos.
La
importancia de los sistemas operativos nace históricamente desde los 50's,
cuando se hizo evidente que el operar una computadora por medio de tableros enchufables en la primera generación y luego por medio del
trabajo en lote en la segunda generación se podía mejorar notoriamente, pues el
operador realizaba siempre una secuencia de pasos repetitivos, lo cual es una
de las características contempladas en la definición de lo que es un programa.
Es decir, se comenzó a ver que las tareas mismas del operador podían plasmarse
en un programa, el cual a través del tiempo y por su enorme complejidad se le
llamó "Sistema Operativo". Así, tenemos entre los primeros sistemas
operativos al Fortran Monitor System
( FMS ) e IBSYS .
Posteriormente, en la tercera generación de computadoras nace uno de los
primeros sistemas operativos con la filosofía de administrar una familia de
computadoras: el OS/360 de IBM. Fue este un proyecto tan novedoso y ambicioso
que enfrentó por primera vez una serie de problemas conflictivos debido a que
anteriormente las computadoras eran creadas para dos propósitos en general: el
comercial y el científico. Así, al tratar de crear un solo sistema operativo
para computadoras que podían dedicarse a un propósito, al otro o ambos, puso en
evidencia la problemática del trabajo en equipos de análisis, diseño e
implantación de sistemas grandes. El resultado fue un sistema del cual uno de
sus mismos diseñadores patentizó su opinión en la portada de un libro: una
horda de bestias prehistóricas atascadas en un foso de brea.
Surge también en la tercera generación de computadoras el concepto de la
multiprogramación, porque debido al alto costo de las computadoras era
necesario idear un esquema de trabajo que mantuviese a la unidad central de
procesamiento más tiempo ocupada, así como el encolado (spooling ) de trabajos para
su lectura hacia los lugares libres de memoria o la escritura de resultados.
Sin embargo, se puede afirmar que los sistemas durante la tercera generación
siguieron siendo básicamente sistemas de lote.
En la cuarta generación la electrónica avanza hacia la integración a
gran escala, pudiendo crear circuitos con miles de transistores en un
centímetro cuadrado de silicón y ya es posible hablar de las computadoras
personales y las estaciones de trabajo. Surgen los conceptos de interfaces
amigables intentando así atraer al público en general al uso de las
computadoras como herramientas cotidianas. Se hacen populares el MS-DOS y UNIX
en estas máquinas. También es común encontrar clones de computadoras personales
y una multitud de empresas pequeñas ensamblándolas por todo el mundo.
Para
mediados de los 80's, comienza el auge de las redes de computadoras y la
necesidad de sistemas operativos en red y sistemas operativos distribuidos. La
red mundial Internet se va haciendo accesible a toda clase de instituciones y
se comienzan a dar muchas soluciones ( y problemas )
al querer hacer convivir recursos residentes en computadoras con sistemas
operativos diferentes. Para los 90's el paradigma de la programación orientada
a objetos cobra auge, así como el manejo de objetos desde los sistemas
operativos. Las aplicaciones intentan crearse para ser ejecutadas en una
plataforma específica y poder ver sus resultados en la pantalla o monitor de
otra diferente (por ejemplo, ejecutar una simulación en una máquina con UNIX y
ver los resultados en otra con DOS ). Los niveles de
interacción se van haciendo cada vez más profundos.
Los sistemas operativos, en su condición de capa software
que posibilita y simplifica el manejo de la computadora, desempeñan una serie
de funciones básicas esenciales para la gestión del equipo. Entre las más
destacables, cada una ejercida por un componente interno (módulo en núcleos
monolíticos y servidor
en microkernels), podemos reseñar las siguientes:
· Proporcionar
comodidad en el uso de un computador.
· Gestionar
de manera eficiente los recursos del equipo, ejecutando servicios para los
procesos (programas)
· Brindar
una interfaz al usuario, ejecutando instrucciones
(comandos).
· Permitir
que los cambios debidos al desarrollo del propio SO se puedan realizar sin interferir
con los servicios que ya se prestaban (evolutividad).
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).
Según
[Alcal92], 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.
Es la
estructura de los primeros sistemas operativos constituídos
fundamentalmente por un solo programa compuesto de un conjunto de rutinas
entrelazadas de tal forma que cada una puede llamar a cualquier otra.
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 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 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.
Esta
clasificación es la más comúnmente usada y conocida desde el punto de vista del
usuario final.
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.
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.
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.
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. 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.
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.
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.
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 los
servicios. Bajo esta clasificación se pueden detectar dos tipos principales:
sistemas operativos de red y sistemas operativos distribuídos.
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.
Los sistemas
operativos distribuídos 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 simplementa
los usa como si todos ellos fuesen locales a su lugar de trabajo habitual.