Anda di halaman 1dari 4

IS-344

Sistemas Operativos
Ingeniera de Sistemas

Captulo I

SISTEMAS OPERATIVOS

1. Introduccin
Toda computadora tiene de forma general dos elementos: hardware (aseguramiento tcnico) y software
(aseguramiento de programas). El sistema funciona con la interrelacin de estos elementos. Podemos decir que
el software hace til al hardware.
Con su software una computadora puede almacenar, procesar, recuperar y distribuir informacin. El software
de computadora puede dividirse a grandes rangos de dos tipos: Programas de sistema, que controlan la
operacin de la computadora misma, y programas de aplicacin, que realizan las tareas reales que el usuario
desea. El programa de sistema ms fundamental es el sistema operativo, que controla todos los recursos de la
computadora y establece la base sobre la que pueden escribirse los programas de aplicacin.
Un sistema de computadora moderno consiste en uno o ms procesadores, memoria principal, discos,
impresoras, interfaces de red y otros dispositivos de entrada/salida. A todas luces, se trata de un sistema
complejo. Escribir programas que sigan la pista a todos estos componentes y los usen correctamente, es una
tarea en extremo difcil.
Hace muchos aos se hizo muy evidente que debera encontrase alguna forma de proteger a los programadores
de la complejidad del hardware. La solucin que ha evolucionado gradualmente consiste en poner en capa de
software encima del hardware solo, que se encargue de administrar todas las partes del sistema y presente al
usuario una interfaz o maquina virtual que sea ms fcil de entender y programar. Esta capa de Software es el
Sistema Operativo.

Usuario final

Gestor de Bases de Datos


Sistema Bancario
Navegador Web

Programas de aplicacin
Intrprete de rdenes
Editores
Compiladores
Depuradores

Programas de utilidades
Programador

Sistema Operativo

Software

Programas de
sistema

Lenguaje de mquina
Microprogramacin
Dispositivos fsicos

Diseador del
SO

Hardware

Fig 1. Capas en las que se pueden dividir los componentes de un computador


2. Definicin de Sistema Operativo como mquina extendida y administrador de recursos
Intentar dar una definicin formal del concepto de sistema operativo no resulta una tarea sencilla y resulta
ms conveniente hacerlo despus de ver las funciones que cumplimenta. Todo sistema operativo cumple dos
funciones principales:
2.1 El SO como mquina ampliada o virtual.
La arquitectura (repertorio de instrucciones, organizacin de la memoria, E/S y estructura del bus) de la
mayora de los ordenadores al nivel del lenguaje mquina es primitiva y muy difcil de programar. Sin entrar en
los detalles reales, debe quedar claro que es probable que el programador medio no quiera involucrarse
demasiado ntimamente con los pormenores de la programacin del hardware. En vez de eso, lo que el
programador quiere es trabajar con una abstraccin de alto nivel sencilla.

UNSCH/QECM

Pgina 1 de 4

Sistemas Operativos
Ingeniera de Sistemas

IS-344
Captulo I

Por ejemplo, en el caso de los discos, una abstraccin tpica sera que el disco contiene una coleccin de
ficheros con nombre. Cada fichero puede abrirse para lectura o escritura, para luego leer o escribir en l,
debiendo finalmente cerrarse. Los detalles de si la grabacin debe realizarse por modulacin de frecuencia
modificada o si el motor est encendido o apagado, no deben aparecer en la abstraccin que se presenta al
usuario. El programa que oculta al programador la verdad acerca del hardware y presenta una visin bonita y
sencilla de ficheros con nombre que se pueden leer y en los que se puede escribir, es por supuesto, el sistema
operativo.
As como el sistema operativo separa al programador del hardware del disco y presenta una interfaz sencilla
orientada hacia los ficheros, tambin oculta muchos otros asuntos desagradables relacionados con las
interrupciones, timers, gestin de memoria y otras caractersticas de bajo nivel.
Desde esta perspectiva, la funcin del sistema operativo es presentar al usuario el equivalente de una mquina
extendida o mquina virtual que es ms fcil de programar que el hardware subyacente. La forma en la que el
sistema operativo logra este objetivo es una larga historia, que estudiaremos a lo largo del curso. En pocas
palabras, el sistema operativo presta una variedad de servicios que los programas pueden obtener empleando
instrucciones especiales que se conocen como llamadas al sistema. Examinaremos algunas de las ms comunes
en siguientes captulos.
2.2 El SO como administrador de recursos.
Los ordenadores modernos constan de procesadores, memorias, timers, discos, ratones, interfaces de red,
impresoras y una amplia gama de otros dispositivos. Segn esta perspectiva alternativa, la tarea del sistema
operativo consiste en asegurar un reparto ordenado y controlado de los procesadores, memorias y dispositivos
de E/S, entre los diversos programas que compiten por obtenerlos.
Imaginemos qu sucedera si tres programas que se ejecutan en algn ordenador trataran de imprimir sus
salidas al mismo tiempo por la misma impresora. Las primeras lneas del listado podran provenir del programa
1, dos o tres siguientes del programa 2, luego algunas del programa 3, y as. El resultado sera un caos. El
sistema operativo puede imponer orden en el caos potencial colocando en bferes de disco todas las salidas
dirigidas a la impresora. Al terminar un programa, el sistema operativo podr copiar sus salidas del fichero en
disco donde las almacen, a la impresora, y mientras tanto otro programa puede seguir generando ms salidas,
sin ser consciente de que no se estn enviando (todava) a la impresora.
Cuando un ordenador (o red de ordenadores) tiene mltiples usuarios, la necesidad de administrar y proteger la
memoria, los dispositivos de E/S y los dems recursos es an mayor, ya que en otro caso los usuarios podran
interferirse entre s. Es comn que los usuarios tengan que compartir no solo el hardware, sino tambin la
informacin (ficheros, bases de datos, etctera). En pocas palabras, esta perspectiva del sistema operativo
dice que su tarea primordial es mantenerse al tanto de quin est utilizando cada recurso, conceder recursos
solicitados, contabilizar el uso de los recursos y resolver los conflictos que se presenten entre las solicitudes de
los diferentes programas y usuarios.
La administracin de los recursos incluye la multiplexacin de los recursos de dos formas: en el tiempo y en el
espacio. Cuando un recurso se multiplexa en el tiempo, eso significa que varios programas o usuarios se turnan
para usarlo. Primero uno de ellos usa el recurso, luego otro, y as. Por ejemplo, si slo hay una CPU y varios
programas quieren ejecutarse, el sistema operativo asignar primero la CPU a un programa; luego, cuando
considere que ya se ha ejecutado durante suficiente tiempo, le quitar la CPU y se la asignar a otro programa,
luego a otro, y en algn momento al primero otra vez. La determinacin de cmo se multiplexa el recurso en el
tiempo quin sigue y durante cuanto tiempo es tarea del sistema operativo.
El otro tipo de multiplexacin es en el espacio. En lugar de que los clientes se turnen, cada uno recibe una
parte del recurso. Por ejemplo, la memoria principal normalmente se reparte entre los programas que estn en
ejecucin, de forma que todos estn residentes al mismo tiempo (por ejemplo para poder turnarse en el uso de
la CPU). Suponiendo que haya suficiente memoria para contener varios programas, suele ser ms eficiente
tener varios programas en la memoria a la vez, que asignarle toda la memoria a uno de ellos, sobre todo si
cada programa slo necesita una pequea fraccin del total de la memoria. Desde luego, esto hace surgir
problemas de equidad, proteccin, etctera, y corresponde al sistema operativo resolverlos.
3. Origen y aspectos importantes de la evolucin de los SO
No es posible analizar la evolucin o desarrollo histrico de los sistemas operativos sin tener en cuenta el
avance de la arquitectura de computadoras. Los sistemas operativos fueron creados para facilitar y ampliar las
posibilidades de uso del hardware, pero estos a su vez pusieron en evidencia la necesidad de cambios en los
equipos para facilitar su actividad y brindar mayores posibilidades.
Primera etapa
Se caracteriza por la no existencia de sistema operativo alguno. Solo exista el hardware.
UNSCH/QECM

Pgina 2 de 4

Sistemas Operativos
Ingeniera de Sistemas

IS-344
Captulo I

El programador era a su vez el operador y el uso se realizaba por reservacin de tiempo de maquina. Esta etapa
se caracteriz por una explotacin no eficiente de los equipos y la no existencia de facilidades para el trabajo.
Con el paso del tiempo aparecen desarrollos en el Hardware y el Software. Se incluyen los lectores de tarjetas,
las impresoras de lnea y las bandas magnticas. Se crean ensambladores, cargadores y enlazadores.
Surgen las bibliotecas conteniendo funciones comunes. Dentro de estas resultan importantes los manejadores
de dispositivos (Device driver) que liberaban al programador de los tediosos detalles de los dispositivos. Estas
funciones se pueden considerar embriones de los futuros sistemas operativos.
Monitores simples
Aparece el proceso de trabajos en forma de lotes (Batch). Lo antes indicado implico un mejoramiento de la
eficiencia (aunque el programador perdi la posibilidad de eliminar los errores en lnea) pero no obstante
exista una perdida de tiempo en el cambio de un trabajo a otro.
La solucin a esta perdida de tiempo consisti en delegar en el propio equipo el cambio automtico, de los
trabajos y con esto surgieron los primeros y ms rudimentarios sistemas de operacin. Estos pequeos
programas que permitan transferir el control de un trabajo a otro, recibieron el nombre de monitor residente.
Permanecan en memoria todo el tiempo.
El monitor residente le entregaba el control de ejecucin a un programa y cuando ste terminaba se lo
devolva, estando en condiciones de volver a repetir la operacin en forma automtica. Es decir, el monitor
residente transfera el control de un programa a otro y de un trabajo a otro.
Para el logro de este secuenciamiento se requera informar al monitor residente las acciones que se deban
realizar. Esta informacin se suministraba mediante tarjetas perforadas que se llamaban Tarjetas de Control.
Con las soluciones antes explicadas se daba respuesta a las perdidas de tiempo provocadas en el
secuenciamiento entre los trabajos, pero permanecan las existentes a consecuencia de las diferencias de
velocidades entre el procesador central y los dispositivos de E/S (dado su carcter mecnico).
Lo antes indicado implicaba que el CPU frecuentemente se encontraba inactivo esperando por una lenta E/S.
Por otro lado, cuando el CPU trabajaba, los equipos de E/S estaban desocupados.
Una solucin a la dificultad antes indicada consisti en sustituir las lectoras de tarjetas y las impresoras de
lneas por bandas magnticas, las que brindaban entradas y salidas a una mayor velocidad, mejorando la
proporcin de uso del CPU. Las bandas que soportaban las entradas eran creadas a partir de lectoras de
tarjetas, pero fuera de lnea. De igual forma las bandas magnticas que reciban las salidas de la computadora
eran impresas tambin fuera de lnea.
Otra solucin a la lentitud de los dispositivos de entrada salida consisti en el uso de buffers. El uso de estos
almacenes temporales es un intento por mantener al CPU y los perifricos ocupados simultneamente.
El surgimiento de los discos elimin rpidamente la preparacin de lotes de trabajo fuera de lnea, pasndose a
sistemas basados en discos. Este dispositivo permita se pudiera realizar lecturas y escrituras simultneas en
diferentes zonas del soporte.
La forma de procesamiento utilizada en los sistemas basados en discos fue la conocida como SPOOLING
(Simultaneus Peripheral Operation On-Line).
En este tipo de procesamiento, de forma continua se van leyendo directamente del lector de tarjetas los
diferentes trabajos que se almacenan en el disco. Cada vez que uno de ellos es introducido, se anota en una
tabla (y el rea donde se encuentra). Cuando el trabajo es ejecutado, sus solicitudes de entrada se satisfacen
leyendo en el disco. De forma similar, cuando el trabajo solicita la impresora para imprimir, la accin se
realizar en un rea del disco y la impresin realmente se har con posterioridad.
El sistema de operacin se encargar, mediante la tabla antes indicada, de llevar el control de las entradas y
las salidas pertenecientes a cada trabajo.
La tcnica del SPOOLING constituye un elemento consustancial de los sistemas operativos que funcionan en
computadoras grandes (mainframes) y que realizan procesamientos en lotes.
La tcnica del SPOOLING brinda adicionalmente una importante estructura de datos, la piscina de trabajos
(Job Pool). Es decir, en un momento dado existen varios trabajos ledos y listos para ser ejecutados. Esta
caracterstica brinda la posibilidad al sistema operativo de seleccionar cul es el trabajo ms conveniente a
procesar en cada momento con vistas a elevar el uso del CPU (hasta ese momento se corran en el orden,
primero que llega es el primero que se sirve).
La posibilidad de seleccionar para su ejecucin a un trabajo entre varios almacenados en un dispositivo de
acceso directo se le conoce como planificacin de trabajos (Job Scheduling).
Multiprogramacin
El aspecto ms importante que ofrece el Job Scheduling es la posibilidad de la multiprogramacin (tambin
nombrada como procesamiento multitarea).
UNSCH/QECM

Pgina 3 de 4

Sistemas Operativos
Ingeniera de Sistemas

IS-344
Captulo I

La multiprogramacin es un intento de incrementar la utilizacin del CPU, tratando de que siempre tenga algo
que hacer. La idea consiste en mantener varios trabajos en memoria simultneamente y cuando el que est
activo (utilizando el procesador) va a provocar una espera (por ejemplo, al tener que esperar por una
entrada/salida), entonces se le quita el CPU y se le asigna a otro que est listo para ejecutar.
A un trabajo que se le quit el CPU (bloqueado), eventualmente se le volver a entregar siempre y cuando ya
haya ocurrido el evento que provoc la primera accin.
Los sistemas de operacin que permiten la multiprogramacin son algo complejos y este concepto ha sido el
motor impulsor del desarrollo de la teora alrededor de esta materia. La multiprogramacin es el aspecto
central de los sistemas de operacin modernos.
Tiempo compartido
El desarrollo de la multiprogramacin brind la posibilidad de que los sistemas operativos pudieran soportar en
forma eficiente la posibilidad de atender en forma interactiva a varios usuarios, trabajando cada uno en una
terminal y compartiendo entre todos el tiempo del procesador y los restantes recursos existentes.
A los sistemas de operacin que brindan la posibilidad antes indicada se les conoce como Sistemas de Tiempo
Compartido.
Cada usuario tiene un programa separado en memoria. Cuando a uno de ellos se le asigna el procesador, ste
ejecutar solamente por un perodo breve de tiempo (en un medio interactivo los procesamiento son
generalmente cortos) antes de terminar o realizar una entrada/salida. Debido a que el hombre que trabaja en
la terminal es lento con respecto al CPU, al producirse la entrada/salida se le retirar el CPU y se comenzar la
atencin de otro usuario.
En muchos esquemas de tiempo compartido se establece adicionalmente que un usuario en posesin del CPU
solo lo retendr durante una ranura o quantun de tiempo, transcurrido ste lo perder. Debido a que el sistema
cambia de un usuario a otro rpidamente da a todos la impresin de estar trabajando con una computadora
propia.
Tiempo Real
Los sistemas operativos de tiempo real tambin hacen uso de la multiprogramacin y atienden varios puntos de
accin, pero en su trabajo existen restricciones de tiempo y el procesamiento se tiene que hacer dentro de
estas restricciones.
Este tipo de sistemas es generalmente utilizado para controlar procesos fsicos (experimentos cientficos,
equipos industriales, equipos mdicos, etc).
4. Generaciones de los sistemas operativos
Algunos autores (por ejemplo Tanembaun) para analizar la evolucin histrica de los sistemas operativos lo
hacen asociando estos a las distintas generaciones de los sistemas de cmputo. Por supuesto, esta
estructuracin no se aleja de los aspectos antes estudiados.
La primera generacin (1945-1955) corresponde a los primeros equipos, construidos con vlvulas de vaco. En
esta etapa no existieron sistemas operativos.
La segunda generacin (1955-1965) corresponde a la etapa a los equipos que estaban basados en el uso de los
transistores. Eran ms confiables y ms duraderos. Desde el punto de vista de los sistemas operativos se tiene
el uso de monitores simples (lo que implica procesamiento en lote).
Sistemas de Operacin de esta etapa son el FMS (Fortran Monitor System) y el IBSYS de la 7094.
La tercera generacin (1965-1980) se caracteriz por la utilizacin de circuitos integrados. Los sistemas
operativos vinculados a esta etapa introdujeron los conceptos de SPOOLING y en especial el uso de la
multiprogramacin. Tambin corresponde a esta etapa la aparicin del tiempo compartido. En esta etapa no
pueden dejar de mencionarse los sistemas de operacin OS/360 y Multics. Aqu surgen las primeras versiones
del Unix.
La cuarta generacin (1980-1990) surge con los circuitos integrados de alta integracin y por ello aparecen en
el mercado las computadoras personales. Esta etapa la dominan sistemas operativos MS-DOS y el Unix (y en un
inicio el CP/M).
El actual desarrollo de los sistemas operativos basados en GUI (Graphic User Interface) y la incorporacin de
orientacin a objetos as como el soporte de la multimedia, es suficientemente fuerte para hablar de la quinta
generacin de los sistemas operativos. En esta etapa la competencia se centra entre el Unix, el Windows,
Macintoch, y el OS/2 (al menos en las microcomputadoras).

UNSCH/QECM

Pgina 4 de 4

Anda mungkin juga menyukai