Sistemas Operativos
niki_12325 de Abril de 2013
4.452 Palabras (18 Páginas)241 Visitas
Sistemas Operativos - Fundamntos
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. En su lugar, el programador debía tener un
conocimiento y contacto profundo con el hardware, y en el infortunado caso de que su programa fallara, debía
examinar los valores de los registros y paneles de luces indicadoras del estado de la computadora para
determinar la causa del fallo y poder corregir su programa, además de enfrentarse nuevamente a los
procedimientos de apartar tiempo del sistema y poner a punto los compiladores, ligadores, etc; para volver a
correr su programa, es decir, enfrentaba el problema del procesamiento serial ( serial processing ) [Stal92].
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 [Tan92].
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.
2. 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).
2.1 Sistemas Operativos por su Estructura
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.
2.1.1 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 (Ver
Fig. 2). 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.
2.1.2 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 (Ver Fig.
3). Se puede pensar también en estos sistemas como si fueran `multicapa'. Multics y Unix caen en esa
categoría. [Feld93].
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" (Ver Fig. 4).
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.
2.1.3 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 (Ver Fig. 5).
2.1.4 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
...