1.
¿Qué es un sistema operativo?
2. Historia de los sistemas
operativos
3. Conceptos de los Sistemas
Operativos
4. Shell (intérprete de
comandos):
5. Estructura de un Sistema
Operativo
1. ¿Qué es
un sistema
operativo?
Un sistema operativo
es el programa que
oculta la verdad del hardware al programador y
presenta una vista simple y agradable de los archivos
nominados que pueden leerse y escribirse. Es sistema operativo
resguarda al programador del hardware del disco y
presenta una interfaz simple orientada al archivo,
también disimula mucho del trabajo concerniente a
interrupciones, relojes o cronómetros, manejo de memoria y otras
características de bajo nivel.
La función
del sistema operativo
es la de presentar al usuario con el equivalente de una
máquina ampliada o máquina virtual que sea
más fácil de programar que el hardware
implícito.
2. Historia de los sistemas
operativos
Los Sistemas
Operativos, al igual que el Hardware de los computadores, han
sufrido una serie de cambios revolucionarios llamados
generaciones. En el caso del Hardware, las generaciones han sido
marcadas por grandes avances en los componentes utilizados,
pasando de válvulas (
primera generación ) a transistores (
segunda generación ), a circuitos
integrados ( tercera generación), a circuitos
integrados de gran y muy gran escala (cuarta
generación). Cada generación Sucesiva de hardware
ha ido acompañada de reducciones substanciales en los
costos,
tamaño, emisión de calor y
consumo de
energía, y por incrementos notables en velocidad y
capacidad.
Generacion Cero (década de 1940)
Los primeros sistemas computacionales no poseían
sistemas
operativos. Los usuarios tenían completo acceso al
lenguaje de la
maquina. Todas las instrucciones eran codificadas a
mano.
Primera Generacion (década de 1950)
Los sistemas
operativos de los años cincuenta fueron
diseñados para hacer mas fluida la transición entre
trabajos. Antes de que los sistemas fueran diseñados, se
perdía un tiempo
considerable entre la terminación de un trabajo y el
inicio del siguiente. Este fue el comienzo de los sistemas de
procesamiento por lotes, donde los trabajos se reunían por
grupos o
lotes. Cuando el trabajo
estaba en ejecución, este tenia control total de
la maquina. Al terminar cada trabajo, el control era
devuelto al sistema operativo, el cual limpiaba y leía e
iniciaba el trabajo
siguiente.
Al inicio de los 50's esto había mejorado un poco
con la introducción de tarjetas
perforadas (las cuales servían para introducir los
programas de
lenguajes de máquina), puesto que ya no había
necesidad de utilizar los tableros enchufables.
Además el laboratorio de
investigación General Motors
implementó el primer sistema operativo para la IBM 701.
Los sistemas de los 50's generalmente ejecutaban una sola tarea,
y la transición entre tareas se suavizaba para lograr la
máxima utilización del sistema. Esto se conoce como
sistemas de procesamiento por lotes de un sólo flujo, ya
que los programas y los
datos eran
sometidos en grupos o
lotes.
La introducción del transistor a
mediados de los 50's cambió la imagen
radicalmente.
Se crearon máquinas
suficientemente confiables las cuales se instalaban en lugares
especialmente acondicionados, aunque sólo las grandes
universidades y las grandes corporaciones o bien las oficinas del
gobierno se
podían dar el lujo de tenerlas.
Para poder correr
un trabajo (programa),
tenían que escribirlo en papel (en
Fortran o en lenguaje
ensamblador) y después se perforaría en
tarjetas.
Enseguida se llevaría la pila de tarjetas al cuarto de
introducción al sistema y la entregaría a uno de
los operadores. Cuando la computadora
terminara el trabajo, un operador se dirigiría a la
impresora y
desprendería la salida y la llevaría al cuarto de
salida, para que la recogiera el programador.
Segunda Generacion (a mitad de la década de
1960)
La característica de los sistemas
operativos fue el desarrollo de
los sistemas compartidos con multiprogramación, y los
principios del
multiprocesamiento. En los sistemas de multiprogramación,
varios programas de usuario se encuentran al mismo tiempo en el
almacenamiento
principal, y el procesador se
cambia rápidamente de un trabajo a otro. En los sistemas
de multiprocesamiento se utilizan varios procesadores en
un solo sistema computacional, con la finalidad de incrementar el
poder de
procesamiento de la maquina.
La independencia
de dispositivos aparece después. Un usuario que desea
escribir datos en una
cinta en sistemas de la primera generación tenia que hacer
referencia especifica a una unidad de cinta particular. En la
segunda generación, el programa del usuario especificaba
tan solo que un archivo iba a ser
escrito en una unidad de cinta con cierto numero de pistas y
cierta densidad.
Se desarrollo
sistemas compartidos, en la que los usuarios podían
acoplarse directamente con el computador a
través de terminales. Surgieron sistemas de tiempo real,
en que los computadores fueron utilizados en el control de
procesos
industriales. Los sistemas de tiempo real se caracterizan por
proveer una respuesta inmediata.
Tercera Generacion (mitad de década 1960 a mitad
década de 1970)
Se inicia en 1964, con la introducción de
la familia de
computadores Sistema/360 de IBM. Los computadores de esta
generación fueron diseñados como sistemas para usos
generales . Casi siempre eran sistemas grandes, voluminosos, con
el propósito de serlo todo para toda la gente. Eran
sistemas de modos múltiples, algunos de ellos soportaban
simultáneamente procesos por
lotes, tiempo compartido, procesamiento de tiempo real y
multiprocesamiento. Eran grandes y costosos, nunca antes se
había construido algo similar, y muchos de los esfuerzos
de desarrollo terminaron muy por arriba del presupuesto y
mucho después de lo que el planificador marcaba como fecha
de terminación.
Estos sistemas introdujeron mayor complejidad a los
ambientes computacionales; una complejidad a la cual, en un
principio, no estaban acostumbrados los usuarios.
Cuarta Generacion (mitad de década de 1970 en
adelante)
Los sistemas de la cuarta generación constituyen
el estado
actual de la tecnología. Muchos
diseñadores y usuarios se sienten aun incómodos,
después de sus experiencias con los sistemas operativos de
la tercera generación.
Con la ampliación del uso de redes de computadores y del
procesamiento en línea los usuarios obtienen acceso a
computadores alejados geográficamente a través de
varios tipos de terminales.
Los sistemas de seguridad se ha
incrementado mucho ahora que la información pasa a través de varios
tipos vulnerables de líneas de comunicación. La clave de cifrado esta
recibiendo mucha atención; han sido necesario codificar los
datos personales o de gran intimidad para que; aun si los datos
son expuestos, no sean de utilidad a nadie
mas que a los receptores adecuados.
El porcentaje de la población que tiene acceso a un computador en
la década de los ochenta es mucho mayor que nunca y
aumenta rápidamente.
El concepto de
maquinas
virtuales es utilizado. El usuario ya no se encuentra interesado
en los detalles físicos de; sistema de computación que esta siendo accedida. En su
lugar, el usuario ve un panorama llamado maquina virtual creado
por el sistema operativo.
Los sistemas de bases de datos
han adquirido gran importancia. Nuestro mundo es una sociedad
orientada hacia la información, y el trabajo de las bases de datos es
hacer que esta información sea conveniente accesible de
una manera controlada para aquellos que tienen derechos de
acceso.
3. Conceptos de los
Sistemas Operativos
Llamadas al Sistema:
La interfaz entre el sistema operativo y los programas
del usuario se define por medio del conjunto de "instrucciones
extendidas" que el sistema operativo proporciona. Estas
instrucciones extendidas se conocen como llamadas al sistema. Las
llamadas al sistema varían de un sistema operativo a otro
(aunque los conceptos fundamentales tienden a ser
análogos).
Las llamadas al sistema se clasifican normalmente en dos
categorías generales: aquellas que se relacionan con
procesos y la que lo hacen con el sistema de archivo.
- Por Procesos: Un proceso es
básicamente un programa en ejecución. Consta del
programa ejecutable y la pila o stack del programa, su contador
de programa, apuntador de pila y otros registros,
así como la otra información que se necesita para
ejecutar el programa. En si el proceso en
el concepto de los
sistemas operativos es como el sistema de tiempo compartido.
Esto es, que en forma periódica, el sistema operativo
decide suspender la ejecución de un proceso y dar inicio
a la ejecución de otro, por ejemplo, porque el primero
haya tomado ya más de su parte del tiempo de la CPU, en
terrenos del segundo.
Cuando un proceso se suspende temporalmente, debe
reiniciarse después exactamente en el mismo estado en que
se encontraba cuando se detuvo. Esto significa que toda la
información relativa al proceso debe guardarse en forma
explícita en algún lugar durante la
suspensión. En muchos sistemas operativos, toda la
información referente a cada proceso, diferente del
contenido de su espacio de direcciones, se almacena en una tabla
de sistema operativo llamada tabla de procesos, la cual es un
arreglo (lista enlazada) de estructuras,
una para cada proceso en existencia.
Por lo tanto, un proceso (suspendido) consta de su
espacio de direcciones, generalmente denominado imagen del
núcleo (en honor de las memorias de
imagen de núcleo magnético que se utilizaron en
tiempos antiguos) y su registro de la
tabla de procesos, que contiene sus registros entre
otras cosas.
- Por Sistema de Archivo: Una función importante
del S.O. consiste en ocultar las peculiaridades de los discos y
otros dispositivos de E/S y presentar al programador un
modelo
abstracto, limpio y agradable de archivos
independientes del dispositivo. Las llamadas al sistema se
necesitan con claridad para crear archivos, eliminarlos,
leerlos y escribirlos. Antes de que se pueda leer un archivo,
éste debe abrirse y después de que se haya
leído debe cerrarse, de modo que las llamadas se dan
para hacer estas cosas.
Antes de que un archivo pueda leerse o escribirse,
éste debe abrirse, en cuyo instante se verifican los
permisos. Si se permite el acceso, el sistema produce un entero
pequeño llamado descriptor del archivo para utilizarse
en operaciones
subsiguientes. Si se prohibe el acceso, se produce un código de error.
4. Shell
(intérprete de comandos):
El sistema operativo es el código que realiza las
llamadas al sistema. Los editores, compiladores,
ensambladores, enlazadores e intérpretes de comandos
definitivamente no son parte del sistema operativo, aunque son
importantes y útiles. El Shell es el intérprete de
comandos, a pesar de no ser parte del sistema operativo, hace un
uso intenso de muchas características del sistema
operativo y por tanto sirve como un buen ejemplo de la forma en
que se pueden utilizar las llamadas al sistema. También es
la interfaz primaria entre un usuario situado frente a su
terminal y el sistema operativo.
Cuando algún usuario entra al sistema, un "shell"
se inicia. El shell tiene la terminal como entrada y como salida
estándar. Este da inicio al teclear solicitud de entrada,
carácter como un signo de pesos, el cual
indica al usuario que el shell está esperando un comando.
En MS-DOS
normalmente aparece la letra de la unidad, seguida por dos puntos
(:), el nombre del directorio en que se encuentra y por
último el signo de "mayor que" (>). Esto es:
C:>
5. Estructura de
un Sistema Operativo
Internamente los sistemas operativos estructuralmente de
se clasifican según como se hayan organizado
intérnamente en su diseño,
por esto la clasificación más común de los
S.O. son:
- Sistemas monolíticos:
En estos sistemas operativos se escriben como un
conjunto de procedimientos,
cada uno de los cuales puede llamar a cualquiera de los otros
siempre que lo necesite. Cuando se emplea esta técnica,
cada procedimiento del
sistema tiene una interfaz bien definida en términos de
parámetros y resultados, y cada una tiene la libertad de
llamar a cualquiera otra, si la última ofrece algún
cálculo
útil que la primera necesite.
Para construir el programa objeto real del sistema
operativo cuando se usa este método, se
compilan todos los procedimientos
individuales a archivos que contienen los procedimientos y
después se combinan todos en un solo archivo objeto con el
enlazador.
En términos de ocultamiento de
información, esencialmente no existe ninguno; todo
procedimiento
es visible para todos (al contrario de una estructura que
contiene módulos o paquetes, en los cuales mucha
información es local a un módulo y sólo
pueden llamar puntos de registro
designados oficialmente del exterior del
módulo)
Esta organización sugiere una estructura
básica del sistema operativo:
1.- Un programa central que invoque el procedimiento de
servicio
solicitado (Shell o Kernel)
2.- Un conjunto de procedimientos de servicios que
realice las llamadas al sistema.
3.- Un conjunto de procedimientos de uso general que
ayude a los procedimientos de servicio
- Sistemas en estratos:
Estos sistemas operativos se organizan como una
jerarquía de estratos, cada uno construido arriba del que
está debajo de él. El primer sistema construido en
esta forma fuel el sistema THE que se fabricó en
Technische Hogeschool Eindhoven de Holanda por E. W Dijkstra
(1968) y sus alumnos. El sistema THE era un sistema de lote para
una computadora
alemana, la Electrológica X8, que tenía 32K de
palabras de 27 bits ( los bits eran costosos en aquellos
días)
El sistema tenía 6 estratos, estos se muestran en
la siguiente tabla:
5 | Operador de THE |
4 | Programas del usuario |
3 | Administración de Entrada/Salida |
2 | Comunicación entre el operador y el |
1 | Administración de la |
0 | Distribución del procesador y |
– El estrato 0 trabajaba con la distribución del procesador, cambiando
entre procesos cuando ocurrían interrupciones o los
relojes expiraban. Sobre el estrato 0, el sistema constaba de
procesos secuenciales, cada uno de los cuales podía
programarse sin tener que preocuparse por el hecho de que
múltiples procesos estuvieran corriendo en un solo
procesador. En otras palabras, el estarto 0 ofrecía la
multiprogramación básica de la CPU.
El estrato 1 realizaba el manejo de memoria. Este
distribuía espacio para procesos contenidos en la memoria
central y en un tambor de 512K palabras que se usaba para
contener partes de procesos (páginas) para las cuales no
había espacio en la memoria central. Sobre el estrato 1,
los procesos no tenía que preocuparse de si estaban en la
memoria o en el tambor; el software del estrato 1 se
hacía cargo de asegurar que las páginas se trajeran
a la memoria siempre que se necesitaran.
El estrato 2 manejaba la
comunicación entre cada proceso y la consola de
operador.
El estrato 3 se hacía cargo de manejar los
dispositivos de E/S y de separar la información en flujo
que entraba y salí de ellos. Sobre el estrato 3 cada
proceso podía trabajar con dispositivos de E/S abstractos
con propiedades agradables, en vez de dispositivos reales con
muchas peculiaridades
El estrato 4 era donde se encontraban los programas de
los usuarios. No tenían que preocuparse por el manejo de
los procesos, memoria, consola o E/S. El proceso operador del
sistema se localizaba en el estrato 5.
Trabajo enviado y realizado por:
Francisco Armando Dueñas
Rodríguez
Edad: 23 años
Universidad La
Salle
Lic. en Informátic
Cancún, Quintana Roo México