Introducción de los sistemas operativos.
El Sistema
Operativo como Interfaz Usuario/Computadora.
El hardware y el
software que se utilizan para proveer de aplicaciones a los usuarios de forma
estratificada o jerárquica, generalmente no tiene que ocuparse de la
arquitectura del computador. Las aplicaciones pueden construirse con un
lenguaje de programación y son desarrolladas por programadores de aplicaciones.
Algunos de estos programas se denominan funciones muy utilizadas que ayudan a la
creación de los programas, la gestión de los archivos y el control de los
dispositivos. Los programadores hacen uso de estos servicios en el desarrollo
de una aplicación, el sistema operativo oculta al programador los detalles del
hardware y le proporciona una interfaz cómoda para utilizar el sistema.
Un sistema operativo
ofrece servicios en las áreas siguientes:
Creación de programa, Ejecución de programas, Acceso
a los dispositivos de E/S, Acceso controlado a los archivos,
Acceso al sistema, Detección y respuesta a errores,
Contabilidad.
El sistema operativo como administrador de recursos.
Un computador es un
conjunto de recursos para el traslado, almacenamiento y proceso de datos
y para el control de
estas funciones. El sistema operativo es el responsable de la gestión de estos
recursos. Se puede
afirmar que es el sistema operativo el que controla el traslado, almacenamiento
y proceso de los datos. El sistema operativo tiene el control sobre las
funciones básicas de la misma. Pero este control se ejerce de una manera
curiosa, se piensa en un mecanismo de control como algo externo a lo controlado
o al menos, como algo distinto y una parte separada de lo controlado este no es
el caso de un sistema operativo.
Existen dos
mecanismos de control que son:
El sistema operativo
funciona de la misma manera que el software normal de un computador,
es decir, es un
programa ejecutado por el procesador.
El sistema operativo
abandona con frecuencia el control y debe depender del procesador
para recuperarlo.
El sistema operativo
es más que un programa del computador como otros
programas de
computador, da instrucciones al procesador. La diferencia clave está en el
propósito del
programa. El sistema operativo dirige al procesador en el empleo de otros
recursos
del sistema y en el
control del tiempo de ejecucion de otros programas.
Evolución de los sistemas operativos.
Los primeros
computadores de finales de los 40 hasta
mediados de los 50, el programador
Interactuaba
directamente con el hardware; no habia sistema operativo. La operación con
estas
maquinas se efectuaba
desde una consola consistente en unos indicadores luminosos, unos
conmutadores, algún
tipo de dispositivo de entrada y una impresora.
El programador podía
examinar los registros y la memoria principal para determinar
la causa del error.
Estos primeros
sistemas presentaban dos problemas que son:
Planificación,
Tiempo de preparación.
Las primeras máquinas
eran muy caras, era importante maximizar la utilizacion de
las mismas. El tiempo
desperdiciado por la planificacion y la preparacion era inaceptable.
Para mejorar el uso,
se desarrolló el concepto de sistema operativo por lote el primer
sistema operativo por
lotes fue desarrollado a mediados de los 50 por la General Motors para
usar en un IBM 701. A
principios de los 60, un conjunto de constructores ya habian desarrollado
sistemas operativos por lotes para sus computadores el proceso por lotes es el
uso de un elemento de software conocido como monitor.
Se comprobara que el
monitor o el sistema de proceso por lotes es simplemente un programa
de computador. Se
basa en la capacidad del procesador para traer y ejecutar instrucciones desde
varias zonas de la
memoria principal.
Algunas características del hardware como las
siguientes:
Proteccion de memoria: Mientras el programa
de usuario este ejecutándose, no debe modificar
la zona de memoria en
la que esta el monitor.
Temporizador: Se utiliza para
impedir que un solo trabajo monopolice el sistema el temporizador se lanza al
comenzar cada trabajo.
Instrucciones Privilegiadas: Ciertas instrucciones
son designadas como privilegiadas y pueden ser ejecutadas solo por el monitor.
Interrupciones: Los primeros modelos
de computadores no tenían esta capacidad. Esta característica aporta al sistema
operativo más flexibilidad para ceder y retomar el control de los
programas usuarios.
En un sistema
operativo por lotes, el tiempo de maquina se reparte entre la ejecucion de
programas de usuario
y la ejecucion del monitor.
Sistemas
por lotes con multiprogramación.
Un sistema por lotes
con multiprogramación tiene que depender de ciertas características del
hardware del computador. La característica adicional más notable y útil para la
multiprogramación es que el hardware respalde las interrupciones de E/S y el
DMA.
Los sistemas
operativos con multiprogramación son bastante más sofisticados en comparación
con los sistemas de mono
programación o de un solo programa. Para tener varios trabajos listos
para ejecutar, estos
deben mantenerse en la memoria principal, lo que requiere cierto tipo de
gestion de memoria. Además,
si hay varios trabajos listos para ejecutarse el procesador debe
decidir cual de ellos
va a ejecutar lo que requiere un
algoritmo de planificación.
Sistemas
de tiempo compartido.
La técnica básica de
un sistema de tiempo compartido es tener a varios usuarios utilizando
simultáneamente el sistema mediante terminales, mientras que el sistema
operativo intercala la ejecucion de cada programa de usuario en rafagas cortas
de computo.
La técnica de
escribir en el disco solo cuando era necesario minimizaba la actividad con el
disco,
ejecutado sobre una
7094, el CTSS daba soporte a un maximo de 32 usuarios.
El tiempo compartido
y la multiprogramación plantean una multitud de problemas nuevos
para el sistema operativo.
Logros
principales.
Los sistemas
operativos estan entre los elementos de software más complejos que se han desarrollado,
esto refleja el reto de tratar de conjugar las dificultades y en algunos casos,
objetivos
opuestos de
comodidad, eficiencia y capacidad de evolución se han obtenido cuatro logros
intelectuales significativos en el desarrollo de los sistemas operativos:
Los procesos,
la gestion de memoria, la
seguridad y la proteccion de la información, la planificacion y la gestion de
recursos, la estructura del sistema.
Procesos.
El concepto de proceso es fundamental en la
estructura de los sistemas operativos. Este termino
fue acuñado por
primera vez por los diseñadores de Multics en los años 60. Es un término algo
mas general que el de
trabajo.
La operación por
lotes con multiprogramación, el tiempo compartido y los sistemas de
transacciones en tiempo real.
La multiprogramación fue diseñada para mantener ocupados
a la vez tanto procesador como los dispositivos de E/S, incluyendo los
dispositivos de almacenamiento de modo que se alcance la mayor eficiencia
posible. La clave de este mecanismo es que como respuesta a las senales que
indiquen que ha terminado una transacción de E/S, el procesador cambia entre
los diversos programas que residen en la memoria principal.
La herramienta
principal disponible para los programadores de sistemas en el desarrollo de los
primeros sistemas
interactivos multiusuario y de multiprogramación fue la interrupcion. La
actividad de
cualquier trabajo podía suspenderse por el acontecimiento de un suceso
determinado, como la culminación
de unas E/S.
El diseño del software
del sistema para coordinar estas diversas actividades resulto extraordinariamente dificil.
Había cuatro causas
principales de error son:
Sincronización incorrecta: Es frecuente el caso
en el que una rutina debe ser suspendida a
la espera de un suceso
en cualquier lugar del sistema.
Fallos de exclusión mutua: Es
habitual el caso en que más de un usuario o programa intentan
a la vez hacer uso de
un recurso compartido.
Funcionamiento no determinista
del programa: Los resultados de un programa en
particular
deben depender
normalmente solo de la entrada del programa y no de las actividades de otros
programas en un
sistema compartido. Pero cuando los programas comparten memoria.
Interbloqueos: Es posible que dos o
mas programas estén suspendidos a la espera uno del
otro.
Lo que se necesita
para enfrentarse a estos problemas es una forma sistemática de supervisar y controlar
los distintos programas que pueden estar ejecutándose en el procesador. El
concepto de proceso pone las bases.
Está formado por tres
componentes que son:
Un programa ejecutable.
Los datos asociados necesarios para el programa (variables,
espacio de trabajo, buffers, etc.)
El contexto de ejecución del programa.
Seguridad
y protección de la información.
El crecimiento de la utilización
de los sistemas de tiempo compartido y más recientemente las
redes de
computadores, ha traído consigo un aumento de las preocupaciones por la
proteccion de
la información.
Una publicación de la
Oficina Nacional de Estandares 4 identifica algunas de las amenazas a las
que es necesario
atender en el campo de la seguridad [BRAN78]:
1. Intentos organizados y deliberados de
obtener información económica y mercantil de las
Organizaciones
competitivas del sector privado.
2. Intentos organizados y deliberados de
obtener información económica de las oficinas del
gobierno.
3. Adquisición inadvertida de información
económica o mercantil.
4. Adquisición inadvertida de información
sobre las personas.
5. Fraude intencional a través del acceso
ilegal a bancos de datos en computadores con énfasis
en orden decreciente
de importancia en la adquisición de datos financieros, económicos,
de aplicación de
leyes y personales
6. Intromisión del gobierno en los
derechos individuales.
7. Atropello de los derechos individuales
por la comunidad.
Planificación
y gestión de recursos.
Una tarea clave del
sistema operativo es administrar los recursos que tiene disponibles (espacio
de memoria,
dispositivos, procesadores) y planificar su utilización por parte de los
diferentes procesos
en activo. Cualquier política de asignación de recursos y de planificacion
debe tener en cuenta
los tres factores que son:
Equidad: Normalmente, sería
conveniente que a todos los procesos que compiten por el uso
de un determinado
recurso les sea otorgado un acceso al recurso que sea aproximadamente
igualitario y
equitativo.
Sensibilidades diferenciales:
El sistema operativo debe intentar tomar decisiones de asignación y planificación
que satisfagan la totalidad de los requisitos. El sistema operativo debe
contemplar estas decisiones dinámicamente.
Eficiencia: El sistema operativo debe intentar maximizar
la productividad minimizar el tiempo de respuesta y en el caso de tiempo
compartido alojar a tantos usuarios como sea posible.
La tarea de
planificacion y gestion de recursos es básicamente un problema de investigación
operativa, así que se
pueden aplicar los resultados matemáticos de esta disciplina. Además, la
medición de la
actividad del sistema es importante para poder controlar el rendimiento y poder
hacer ajuste.
Estructura
del sistema.
En la medida en que
se añaden mas características a los sistemas operativos y en que el hardware
se hace más complejo
y versatil, el tamaño y la complejidad de los sistemas operativos. El sistema
CTSS puesto
en funcionamiento en el MIT en 1963 constaba como máximo de aproximadamente 32.000 palabras de 36 bits.
El OS/360, presentado posteriormente por IBM, tenía más de un millón de
instrucciones de máquina. Hacia 1973, el sistema Multics, desarrollado por el
MIT y los
Laboratorios Bell, había
crecido a mas de 20 millones de instrucciones.
Windows nt.
Es un sistema
operativo desarrollado por Microsoft para los primeros computadores personales de
IBM y conocido como MS-DOS o PC-DOS. La versión inicial, el DOS 1.0, fue
lanzada en Agosto de 1981. Esta constaba de 4000 lineas de código fuente en
lenguaje de ensamblador y ejecutaba en 8K de memoria utilizando el
microprocesador Intel 8086.
Cuando IBM desarrollo
su computador personal basada en disco duro, el PC XT, Microsoft
desarrollo el DOS
2.0, lanzado en 1983. Este tenía soporte para un disco duro y ofrecía
directorios
jerárquicos. Hasta ese momento, un disco podía contener solo un directorio
de archivos y dar
soporte a un máximo de 64 archivos.
Objetos de
Windows NT.
Entre los conceptos clave
empleados por NT están los siguientes:
Encapsulamiento: Un objeto consta de
uno o más elementos de datos, llamados atributos
y
uno o más
procedimientos que pueden actuar sobre los datos, llamados servicios. La única
manera de acceder a
los datos de un objeto es invocando a uno de los servicios del objeto.
Clases e instancias: Una
clase de objeto es una plantilla que enumera los atributos y los
servicios de un
objeto y define ciertas características del objeto. El sistema operativo
puede crear
instancias específicas de una clase de objeto cada vez que lo necesite.
Sistema
Unix, versión v.
La historia de UNIX
es una historia muchas veces contada que no se va a repetir aquí con
mucho detalle. UNIX fue desarrollado inicialmente en los
Laboratorios Bell y llego a ser operativo en una PDP-7 en 1970. Algunas
personas involucradas de los Laboratorios Bell también habían
Participado en el
trabajo sobre tiempo compartido que se llevaba a cabo en el proyecto MAC
del MIT7. Aquel
proyecto llevo primero al desarrollo del CTSS y luego al de Multics. Aunque
es habitual decir que
UNIX es una versión a pequeña escala de Multics, los desarrolladores
de UNIX dicen estar
más influenciados en realidad por CTSS [RITC78b]. Sin embargo,
UNIX incorporo muchas
ideas de Multics.
No hay comentarios:
Publicar un comentario