¿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. El 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.
Un sistema operativo es una parte importante de casi cualquier sistema de
computación. Un sistema de computación puede dividirse en cuatro componentes:
el hardware, el sistema operativo, los programas de aplicación y los usuarios.
El hardware (unidad central de procesamiento (UCP), memoria y dispositivos de
entrada y salida (E/S)) proporciona los recursos de computación básicos. Los programas
de aplicación (compiladores,
sistemas de bases de
datos, juegos de video y programas para negocios) definen la forma en que estos recursos se emplean
para resolver los problemas de
computación de los usuarios. Puede haber distintos usuarios (personas, máquinas,
otros computadores) que intentan resolver problemas diferentes; por lo tanto es
posible que haya diferentes programas de aplicación. El sistema operativo
controla y coordina el uso del hardware entre los diversos programas de
aplicación de los distintos usuarios
Podemos ver al sistema operativo como un asignador de recursos. Un sistema de
computación tiene muchos recursos (hardware y software)
que pueden requerirse para resolver un problema: tiempo de la
UCP, espacio de memoria, espacio de almacenamiento de archivos, dispositivos de E/S, etc.
El sistema operativo actúa como el administrador de estos recursos y los asigna a
usuarios y programas concretos según los necesiten las tareas de los usuarios.
Puesto que pueden surgir conflictos en
las solicitudes de recursos, el sistema operativo debe decidir a que
solicitudes se les asignaran para que el sistema de computación pueda funcionar
de manera eficiente y justa.
En términos generales no hay una definición de sistema operativo completamente
adecuada. Los sistemas operativos existen porque son una manera razonable de
solucionar el problema de crear un sistema de computación utilizable.
Operativos.
·
Transformar el complejo hardware de una computadora a una
máquina accesible al usuario.
·
Lograr el mejor uso posible de los recursos. Hacer eficiente
el uso del recurso.
En un principio solo existía el
hardware del computador. Los primeros computadores eran (físicamente) grandes
maquinas que se operaban desde una consola. El programador escribía un programa
y luego lo controlaba directamente desde la consola. En primer lugar, el
programa se cargaba manualmente en la memoria, desde los interruptores del
tablero frontal (una instrucción en cada ocasión), desde una cinta de papel o
desde tarjetas perforadas. Luego se pulsaban los
botones adecuados para establecer la dirección de
inicio y comenzar la ejecución del programa. Mientras este se ejecutaba, el
programador-operador lo podía supervisar observando las luces en la consola, si
se descubrían errores, el programador podía detener el programa, examinar el
contenido de la memoria y los registros y depurar el programa directamente
desde la consola. La salida del programa se imprimía, o se perforaba en cintas
de papel o tarjetas para su impresión posterior.
Sin embargo, con este procedimiento se presentaban ciertos problemas.
Supongamos que un usuario se había registrado para usar una hora de tiempo del
computador dedicada a ejecutar el programa que estaba desarrollando, pero se
topaba con algún error difícil y no podía terminar en esa hora. Si alguien más
había reservado el siguiente bloque de tiempo, usted debía detenerse, rescatar
lo que pudiera y volver mas tarde para continuar. Por otra parte, si el
programa se ejecutaba sin problemas, podría terminar en 35 minutos; pero como
pensó que necesitaría la maquina durante más tiempo, se registro para usarla una hora, y permanecería
inactiva durante 25 minutos.
Conforme transcurrió el tiempo, se desarrollaron software y hardware adicionales;
empezaron a popularizarse los lectores de tarjetas, impresoras de líneas y
cintas magnéticas; se diseñaron ensambladores, cargadores y ligadores para
facilitar las tareas de programación,
y se crearon bibliotecas de funciones comunes, de manera que
estas podían copiarse a un nuevo programa sin tener que escribirlas de nuevo.
Las rutinas que efectuaban operaciones de E/S tenían una importancia especial.
Cada nuevo dispositivo de E/S poseía sus propias características, lo que
requería una cuidadosa programación. Así mismo, para cada uno de ellos se
escribía una subrutina especial, la cual se denominaba manejador de
dispositivos. Este sabe como deben de usarse los buffers, indicadores, registros, bits de control y bits de estado para cada
dispositivo. Cada tipo de dispositivo tenía su propio manejador. Una tarea
sencilla, como leer un carácter de un
lector de cinta de papel, podía conllevar complicadas secuencias de operaciones
específicas para el dispositivo. En lugar de tener que escribir cada vez el código necesario,
bastaba usar el manejador de dispositivo de la biblioteca.
Más tarde aparecieron los compiladores de FORTRAN, COBOL y otros
lenguajes, lo que facilito la tarea de programación, pero hizo más complejo el
funcionamiento del computador. Por ejemplo, al preparar la ejecución de un
programa en FORTRAN, el programador primero necesitaba cargar en el computador
el compilador de FORTRAN, que generalmente se conservaba en una cinta
magnética, por lo que había que montar la cinta adecuada en la unidad
correspondiente. El programa se leía a través del lector de tarjetas y se
escribía en otra cinta. El compilador de FORTRAN producía una salida en lenguaje ensamblador, que luego tenia que ensamblarse, para esto era
necesario montar otra cinta con el ensamblador, y su salida debía enlazarse con
las rutinas de apoyo de las bibliotecas. Finalmente, el programa objeto, en
código binario, estaba listo para
ejecutarse; se cargaba en memoria y se depuraba desde la consola como antes.
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.
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.
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.
El 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.
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 número 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.
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.
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 han 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.
También llamados sistemas monolíticos. Este tipo de organización es con mucho la mas común; bien podría
recibir el subtitulo de "el gran embrollo". La estructura consiste en
que no existe estructura alguna. El sistema operativo se escribe como una
colección de procedimientos,
cada uno de los cuales puede llamar a los demás cada vez que así lo requiera.
Cuando se usa esta técnica, cada procedimiento del sistema tiene una interfaz
bien definida en términos de parámetros y resultados y cada uno de ellos es
libre de llamar a cualquier otro, si este ultimo proporciona cierto cálculo útil para el primero. Sin embargo
incluso en este tipo de sistemas es posible tener al menos algo de estructura.
Los servicios (llamadas al sistema) que proporciona el sistema operativo se
solicitan colocando los parámetros en lugares bien definidos, como en los
registros o en la pila, para después ejecutar una instrucción especial de
trampa de nombre "llamada al núcleo" o "llamada al
supervisor".
Esta instrucción cambia la máquina del modo usuario al modo núcleo y transfiere
el control al sistema operativo, lo que se muestra en el evento (1) de la figura 1. El
sistema operativo examina entonces los parámetros de la llamada, para
determinar cual de ellas se desea realizar, como se muestra en el evento (2) de
la figura 1. A continuación, el sistema operativo analiza una tabla que
contiene en la entrada k un apuntador al procedimiento que realiza la k-esima
llamada al sistema. Esta operación que se muestra en (3) de la figura 1,
identifica el procedimiento de servicio, al cual se llama. Por ultimo, la llamada al sistema
termina y el control regresa al programa del usuario.
Figura 1. La forma en que debe hacerse una llamada al sistema: (1) el programa
del usuario es atraído hacia el núcleo. (2) el sistema operativo determina el
número del servicio solicitado. (3) el sistema operativo localiza y llama al
procedimiento correspondiente al servicio. (4) el control regresa al programa
del usuario.
1.- un programa principal que llama al procedimiento del servicio solicitado.
2.- un conjunto de procedimientos de servicio que llevan a cabo las llamadas al
sistema.
3.- un conjunto de procedimientos utilitarios que ayudan al procedimiento de
servicio.
(Para ver el gráfico faltante haga click en el menú superior "Bajar
Trabajo")
Figura 2. Un modelo de estructura simple para un sistema monolítico.
(Para ver el gráfico faltante haga click en el menú superior "Bajar
Trabajo")
Las funciones centrales de un SO son controladas por el núcleo (kernel)
mientras que la interfaz del usuario es controlada por el entorno (shell). Por
ejemplo, la parte más importante del DOS es un programa con el nombre
"COMMAND.COM" Este programa tiene dos partes. El kernel, que se
mantiene en memoria en todo momento, contiene el código máquina de bajo nivel
para manejar la administración de
hardware para otros programas que necesitan estos servicios, y para la segunda
parte del COMMAND.COM el shell, el cual es el interprete de comandos
Las funciones de bajo nivel del SO y las funciones de interpretación de comandos están separadas, de tal forma que
puedes mantener el kernel DOS corriendo, pero utilizar una interfaz de usuario
diferente. Esto es exactamente lo que sucede cuando cargas Microsoft Windows, el cual toma el lugar del shell, reemplazando la
interfaz de línea de comandos con una interfaz gráfica del usuario. Existen
muchos "shells" diferentes en el mercado,
ejemplo: NDOS (Norton DOS), XTG, PCTOOLS, o inclusive el mismo SO MS-DOS a
partir de la versión 5.0 incluyó un Shell llamado DOS SHELL
Objetivos para la creación de los
sistemas
El objetivo fundamental de los
sistemas de computación es ejecutar los programas de los usuarios y facilitar
la resolución de sus problemas. El hardware se construye con este fin, pero
como este no es fácil de utilizar, se desarrollan programas de aplicación que
requieren ciertas operacionescomunes,
como el control de dispositivos de E/S. las funciones
comunes de control y de asignación de recursos se integran para formar un solo
fragmento de software: el sistema operativo.
Desarrollo histórico de los
sistemas operativos.
Generación Cero (década de 1940)
Primera Generación (década de 1950)
Segunda Generación (a mitad de la
década de 1960)
Tercera Generación (mitad de década
1960 a mitad década de 1970)
Cuarta Generación (mitad de década
de 1970 en adelante)
2. Estructura de un
sistema operativo
En esta unidad examinaremos cuatro estructuras distintas
que ya han sido probadas, con el fin de tener una idea más extensa de cómo esta
estructurado el sistema operativo. Veremos brevemente algunas estructuras de
diseños de sistemas operativos.
Estructura modular.
Esta organización sugiere una
organización básica del sistema operativo:
En este modelo, para cada llamada al sistema existe un procedimiento
de servicio que se encarga de él. Los procedimientos utilitarios hacen cosas
necesarias para varios procedimientos de servicio, por ejemplo buscar los datos
de los programas del usuario. La siguiente figura muestra este procedimiento de
tres capas:
Estructura por microkernel.
as Operativos de tiempo compartido:
·
Populares representantes de sistemas
multiprogramados multiusuario, Ej.: sistemas de diseño asistido por computador,
procesamiento de texto,
etc.
·
Dan la ilusión de que cada usuario tiene una
máquina para sí.
·
La mayoría utilizan algoritmo
de reparto circular.
·
Los programas se ejecutan con prioridad
rotatoria que se incrementa con la espera y disminuye después de concedido el
servicio.
·
Evitan monopolización del sistema asignando
tiempos de procesador (time slot).
·
Gestión de memoria: proporciona protección a
programas residentes.
·
Gestión de archivo: debe proporcionar
protección y control de acceso debido a que pueden existir múltiples
usuarios accesando un mismo archivo.
Sistemas operativos de tiempo real.
Un sistema operativo en tiempo real procesa las instrucciones recibidas al
instante, y una vez que han sido procesadas muestra el resultado. Este tipo
tiene relación con los sistemas operativos monousuarios, ya que existe un solo
operador y no necesita compartir el procesador entre varias solicitudes.
Su característica principal es dar respuestas rápidas; por ejemplo en un caso
de peligro se necesitarían respuestas inmediatas para evitar una catástrofe.
Los Sistemas Operativos de tiempo real, cuentan con las siguientes
características:
·
Se dan en entornos en donde deben ser aceptados
y procesados gran cantidad de sucesos, la mayoría externos al sistema
computacional, en breve tiempo o dentro de ciertos plazos.
·
Se utilizan en control industrial, conmutación
telefónica, control de vuelo, simulaciones en tiempo real., aplicaciones
militares, etc.
·
Su objetivo es proporcionar rápidos tiempos de
respuesta.
·
Procesa ráfagas de miles de interrupciones por
segundo sin perder un solo suceso.
·
Un proceso se activa tras ocurrencia de suceso,
mediante interrupción.
·
Un proceso de mayor prioridad expropia
recursos.
·
Por tanto generalmente se utiliza planificación
expropiativa basada en prioridades.
·
Gestión de memoria menos exigente que tiempo
compartido, usualmente procesos son residentes permanentes en memoria.
·
Población de procesos estática
en gran medida.
·
Poco movimiento
de programas entre almacenamiento secundario y memoria.
·
La gestión de archivos se orienta más a
velocidad de acceso que a utilización eficiente del recurso.
Sistemas operativos de red.
La principal función de un sistema operativo de red es ofrecer un mecanismo
para transferir archivos de una máquina a otra. En este entorno, cada
instalación mantiene su propio sistema de archivos local y si un usuario de la
instalación A quiere acceder a un archivo en la instalación B, hay que copiar
explícitamente el archivo de una instalación a otra.
Internet
proporciona un mecanismo para estas transferencias, a través del programa protocolo
de transferencias de archivos FTP
(File Transfer Protocol).
Suponga que un usuario quiere copiar un archivo A1, que reside en la
instalación B, a un archivo A2 en la instalación local A. Primero, el usuario
debe invocar el programa FTP, el cual solicita al usuario la información
siguiente:
a) El nombre de la instalación a partir de la cual se efectuará la
transferencia del archivo (es decir la instalación B).
b) La información de acceso, que verifica que el usuario tiene los privilegios
de acceso apropiados en la instalación B.
Una vez efectuada esta comprobación, el usuario puede copiar el archivo A1 de B
a A2 en A, ejecutando "get A1 to A2"
En este esquema, la ubicación del archivo no es transparente para el usuario;
tiene que saber exactamente donde esta cada archivo. Además los archivos no se
comparten realmente, porque un usuario solo puede copiar un archivo de una
instalación a otra. Por lo tanto pueden existir varias copias del mismo archivo,
lo que representa un desperdicio de espacio. Así mismo, si se modifican, estas
copias no serán consistentes.
Los Sistemas Operativos de red son aquellos sistemas que mantienen a dos o más
computadoras unidas a través de algún medio de comunicación (físico o no), con
el objetivo primordial de poder compartir los diferentes recursos y la
información del sistema.
El primer Sistema Operativo de red estaba enfocado a equipos con un procesador
Motorola 68000, pasando posteriormente a procesadores Intel como Novell
Netware.
Los Sistemas Operativos de red más ampliamente usados son: Novell Netware,
Personal Netware, LAN
Manager, Windows NT
Server, UNIX,
LANtastic.
Sistemas operativos distribuidos.
En un sistema operativo distribuido los usuarios pueden acceder a recursos
remotos de la misma manera en que lo hacen para los recursos locales. La migración
de datos y procesos de una instalación a otra queda bajo el control del sistema
operativo distribuido.
Permiten distribuir trabajos, tareas o procesos, entre un conjunto de
procesadores. Puede ser que este conjunto de procesadores esté en un equipo o
en diferentes, en este caso es transparente para el usuario. Existen dos
esquemas básicos de éstos. Un sistema fuertemente acoplado es aquel que
comparte la memoria y un reloj global, cuyos tiempos de acceso son similares
para todos los procesadores. En un sistema débilmente acoplado los procesadores
no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local.
Los sistemas distribuidos deben de ser muy confiables, ya que si un componente
del sistema se descompone otro componente debe de ser capaz de reemplazarlo.
Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los
siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.
Características de los Sistemas Operativos distribuidos:
·
Colección de sistemas autónomos capaces de
comunicación y cooperación mediante interconexiones hardware y software.
·
Proporciona abstracción de máquina virtual a los
usuarios.
·
Objetivo clave es la transparencia.
·
Generalmente proporcionan medios
para la compartición global de recursos.
Servicios añadidos: denominación global, sistemas de archivos
distribuidos, facilidades para distribución
de cálculos (a través de comunicación de procesos internodos, llamadas a
procedimientos remotos, etc.).
Figura 7.- Sistema Operativo Distribuido.
Sistemas operativos multiprocesadores.
En los sistemas multiprocesador, los procesadores comparten la memoria y el
reloj. Se incrementa la capacidad de procesamiento y la confiabilidad,
son económicos.
·
Multiprocesamiento simétrico: Cada procesador
ejecuta una copia del sistema operativo.
·
Multiprocesamiento asimétrico: Cada procesador
tiene asignado una tarea específica, existe un procesador master que asigna
tareas a los procesadores esclavos.
Multiproceso: Las computadoras que tienen más de un CPU son llamadas
multiproceso. Un sistema operativo multiproceso coordina las operaciones de las
computadoras multiprocesadores. Ya que cada CPU en una computadora de
multiproceso puede estar ejecutando una instrucción, el otro procesador queda
liberado para procesar otras instrucciones simultáneamente.
Al usar una computadora con capacidades de multiproceso incrementamos su
velocidad de respuesta y procesos. Casi todas las computadoras que tienen
capacidad de multiproceso ofrecen una gran ventaja.
Los primeros Sistemas Operativos Multiproceso realizaban lo que se conoce como
Multiproceso asimétrico. Una CPU principal retiene el control global de la
computadora, así como el de los otros procesadores. Esto fue un primer paso
hacia el multiproceso pero no fue la dirección ideal a seguir ya que la CPU
principal podía convertirse en un cuello de botella.
Funciones
y características de los sistemas operativos.
Funciones de los sistemas operativos.
1.- Aceptar todos los trabajos y conservarlos hasta su finalización.
2.- Interpretación de comandos: Interpreta los comandos que permiten al usuario
comunicarse con el ordenador.
3.- Control de recursos: Coordina y manipula el hardware de la computadora,
como la memoria, las impresoras, las unidades de disco, el teclado o el Mouse.
4.- Manejo de dispositivos de E/S: Organiza los archivos en diversos
dispositivos de almacenamiento, como discos flexibles, discos duros,
discos compactos o cintas magnéticas.
5.- Manejo de errores: Gestiona los errores de hardware y la pérdida de datos.
6.- Secuencia de tareas: El sistema operativo debe administrar la manera en que
se reparten los procesos. Definir el orden. (Quien va primero y quien después).
7.- Protección: Evitar que las acciones de un usuario afecten el trabajo que
esta realizando otro usuario.
8.- Multiacceso: Un usuario se puede conectar a otra máquina sin tener que
estar cerca de ella.
9.- Contabilidad
de recursos: establece el costo
que se le cobra a un usuario por utilizar determinados recursos.
Características de los sistemas operativos.
En general, se puede decir que un Sistema Operativo tiene las siguientes
características:
·
Conveniencia. Un Sistema Operativo hace más
conveniente el uso de una computadora.
·
Eficiencia. Un Sistema Operativo permite que los
recursos de la computadora se usen de la manera más eficiente posible.
·
Habilidad para evolucionar. Un Sistema Operativo
deberá construirse de manera que permita el desarrollo, prueba o introducción
efectiva de nuevas funciones del sistema sin interferir con el servicio.
·
Encargado de administrar el hardware. El Sistema
Operativo se encarga de manejar de una mejor manera los recursos de la computadora
en cuanto a hardware se refiere, esto es, asignar a cada proceso una parte del
procesador para poder compartir los recursos.
·
Relacionar dispositivos (gestionar a través del
kernel). El Sistema Operativo se debe encargar de comunicar a los dispositivos periféricos,
cuando el usuario así lo requiera.
·
Organizar datos para acceso rápido y seguro.
·
Manejar las comunicaciones
en red.
El Sistema Operativo permite al usuario manejar con alta facilidad todo lo
referente a la instalación y uso de las redes de computadoras.
·
Procesamiento por bytes de flujo a través del bus
de datos.
·
Facilitar las entradas y salidas. Un Sistema
Operativo debe hacerle fácil al usuario el acceso y manejo de los dispositivos
de Entrada/Salida de la computadora.
Sistemas operativos por lotes.
La secuencia por lotes o procesamiento por lotes en microcomputadoras, es la
ejecución de una lista de comandos del sistema operativo uno tras otro sin
intervención del usuario.
En los ordenadores más grandes el proceso de recogida de programas y de conjuntos
de datos de los usuarios, la ejecución de uno o unos pocos cada vez y la
entrega de los recursos a los usuarios. Procesamiento por lotes también puede
referirse al proceso de almacenar transacciones durante un cierto lapso antes
de su envío a un archivo maestro, por lo general una operación separada que se
efectúa durante la noche
Los sistemas operativos por lotes (batch), en los que los programas eran tratados
por grupos (lote) en ves de individualmente. La función de estos sistemas
operativos consistía en cargar en memoria un programa de la cinta y ejecutarlo.
Al final este, se realizaba el salto a una dirección de memoria desde donde
reasumía el control del sistema operativo que cargaba el siguiente programa y
lo ejecutaba. De esta manera el tiempo entre un trabajo y el otro disminuía
considerablemente.
(Para ver el gráfico faltante haga click en el menú superior "Bajar
Trabajo")
Figura 6 - Sistema de procesamiento por lotes.
Algunas otras características con que cuentan los Sistemas Operativos por lotes
son:
·
Requiere que el programa, datos y órdenes al
sistema sean remitidos todos juntos en forma de lote.
·
Permiten poca o ninguna interacción
usuario/programa en ejecución.
·
Mayor potencial de utilización de recursos que
procesamiento serial simple en sistemas multiusuarios.
·
No conveniente para desarrollo de programas por
bajo tiempo de retorno y depuración fuera de línea.
·
Conveniente para programas de largos tiempos de
ejecución (Ej., análisis
estadísticos, nóminas
de personal,
etc.)
·
Se encuentra en muchos computadores personales
combinados con procesamiento serial.
·
Planificación del procesador sencilla,
típicamente procesados en orden de llegada.
·
Planificación de memoria sencilla,
generalmente se divide en dos: parte residente del S.O. y programas
transitorios.
·
Suelen proporcionar gestión sencilla de manejo
de archivos: se requiere poca protección y ningún control de concurrencia para
el acceso.
Sistemas operativos de tiempo compartido.
El tiempo compartido en ordenadores o computadoras consiste en el uso de un
sistema por más de una persona
al mismo tiempo. El tiempo compartido ejecuta programas separados de forma
concurrente, intercambiando porciones de tiempo asignadas a cada programa
(usuario). En este aspecto, es similar a la capacidad de multitareas que es
común en la mayoría de los microordenadores o las microcomputadoras. Sin
embargo el tiempo compartido se asocia generalmente con el acceso de varios
usuarios a computadoras más grandes y a organizaciones
de servicios, mientras que la multitarea relacionada con las microcomputadoras
implica la realización de múltiples tareas por un solo usuario.
Los principales recursos del sistema, el procesador, la memoria, dispositivos
de E/S, son continuamente utilizados entre los diversos usuarios, dando a cada
usuario la ilusión de que tiene el sistema dedicado para sí mismo. Esto trae
como consecuencia una gran carga de trabajo al Sistema Operativo,
principalmente en la administración
de memoria principal y secundaria.
Características de los Sistemas Operativos de tiempo compartido:
·
Populares representantes de sistemas
multiprogramados multiusuario, Ej.: sistemas de diseño asistido por computador,
procesamiento de texto,
etc.
·
Dan la ilusión de que cada usuario tiene una
máquina para sí.
·
La mayoría utilizan algoritmo
de reparto circular.
·
Los programas se ejecutan con prioridad
rotatoria que se incrementa con la espera y disminuye después de concedido el
servicio.
·
Evitan monopolización del sistema asignando
tiempos de procesador (time slot).
·
Gestión de memoria: proporciona protección a
programas residentes.
·
Gestión de archivo: debe proporcionar
protección y control de acceso debido a que pueden existir múltiples
usuarios accesando un mismo archivo.
Sistemas operativos de tiempo real.
Un sistema operativo en tiempo real procesa las instrucciones recibidas al
instante, y una vez que han sido procesadas muestra el resultado. Este tipo
tiene relación con los sistemas operativos monousuarios, ya que existe un solo
operador y no necesita compartir el procesador entre varias solicitudes.
Su característica principal es dar respuestas rápidas; por ejemplo en un caso
de peligro se necesitarían respuestas inmediatas para evitar una catástrofe.
Los Sistemas Operativos de tiempo real, cuentan con las siguientes
características:
·
Se dan en entornos en donde deben ser aceptados
y procesados gran cantidad de sucesos, la mayoría externos al sistema
computacional, en breve tiempo o dentro de ciertos plazos.
·
Se utilizan en control industrial, conmutación
telefónica, control de vuelo, simulaciones en tiempo real., aplicaciones
militares, etc.
·
Su objetivo es proporcionar rápidos tiempos de
respuesta.
·
Procesa ráfagas de miles de interrupciones por
segundo sin perder un solo suceso.
·
Un proceso se activa tras ocurrencia de suceso,
mediante interrupción.
·
Un proceso de mayor prioridad expropia
recursos.
·
Por tanto generalmente se utiliza planificación
expropiativa basada en prioridades.
·
Gestión de memoria menos exigente que tiempo
compartido, usualmente procesos son residentes permanentes en memoria.
·
Población de procesos estática
en gran medida.
·
Poco movimiento
de programas entre almacenamiento secundario y memoria.
·
La gestión de archivos se orienta más a
velocidad de acceso que a utilización eficiente del recurso.
Sistemas operativos de red.
La principal función de un sistema operativo de red es ofrecer un mecanismo
para transferir archivos de una máquina a otra. En este entorno, cada
instalación mantiene su propio sistema de archivos local y si un usuario de la
instalación A quiere acceder a un archivo en la instalación B, hay que copiar
explícitamente el archivo de una instalación a otra.
Internet
proporciona un mecanismo para estas transferencias, a través del programa protocolo
de transferencias de archivos FTP
(File Transfer Protocol).
Suponga que un usuario quiere copiar un archivo A1, que reside en la
instalación B, a un archivo A2 en la instalación local A. Primero, el usuario
debe invocar el programa FTP, el cual solicita al usuario la información
siguiente:
a) El nombre de la instalación a partir de la cual se efectuará la
transferencia del archivo (es decir la instalación B).
b) La información de acceso, que verifica que el usuario tiene los privilegios
de acceso apropiados en la instalación B.
Una vez efectuada esta comprobación, el usuario puede copiar el archivo A1 de B
a A2 en A, ejecutando "get A1 to A2"
En este esquema, la ubicación del archivo no es transparente para el usuario;
tiene que saber exactamente donde esta cada archivo. Además los archivos no se
comparten realmente, porque un usuario solo puede copiar un archivo de una
instalación a otra. Por lo tanto pueden existir varias copias del mismo archivo,
lo que representa un desperdicio de espacio. Así mismo, si se modifican, estas
copias no serán consistentes.
Los Sistemas Operativos de red son aquellos sistemas que mantienen a dos o más
computadoras unidas a través de algún medio de comunicación (físico o no), con
el objetivo primordial de poder compartir los diferentes recursos y la
información del sistema.
El primer Sistema Operativo de red estaba enfocado a equipos con un procesador
Motorola 68000, pasando posteriormente a procesadores Intel como Novell
Netware.
Los Sistemas Operativos de red más ampliamente usados son: Novell Netware,
Personal Netware, LAN
Manager, Windows NT
Server, UNIX,
LANtastic.
Sistemas operativos distribuidos.
En un sistema operativo distribuido los usuarios pueden acceder a recursos
remotos de la misma manera en que lo hacen para los recursos locales. La migración
de datos y procesos de una instalación a otra queda bajo el control del sistema
operativo distribuido.
Permiten distribuir trabajos, tareas o procesos, entre un conjunto de
procesadores. Puede ser que este conjunto de procesadores esté en un equipo o
en diferentes, en este caso es transparente para el usuario. Existen dos
esquemas básicos de éstos. Un sistema fuertemente acoplado es aquel que
comparte la memoria y un reloj global, cuyos tiempos de acceso son similares
para todos los procesadores. En un sistema débilmente acoplado los procesadores
no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local.
Los sistemas distribuidos deben de ser muy confiables, ya que si un componente
del sistema se descompone otro componente debe de ser capaz de reemplazarlo.
Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los
siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.
Características de los Sistemas Operativos distribuidos:
·
Colección de sistemas autónomos capaces de
comunicación y cooperación mediante interconexiones hardware y software.
·
Proporciona abstracción de máquina virtual a los
usuarios.
·
Objetivo clave es la transparencia.
·
Generalmente proporcionan medios
para la compartición global de recursos.
Servicios añadidos: denominación global, sistemas de archivos
distribuidos, facilidades para distribución
de cálculos (a través de comunicación de procesos internodos, llamadas a
procedimientos remotos, etc.).
Figura 7.- Sistema Operativo Distribuido.
Sistemas operativos multiprocesadores.
En los sistemas multiprocesador, los procesadores comparten la memoria y el
reloj. Se incrementa la capacidad de procesamiento y la confiabilidad,
son económicos.
·
Multiprocesamiento simétrico: Cada procesador
ejecuta una copia del sistema operativo.
·
Multiprocesamiento asimétrico: Cada procesador
tiene asignado una tarea específica, existe un procesador master que asigna
tareas a los procesadores esclavos.
Multiproceso: Las computadoras que tienen más de un CPU son llamadas
multiproceso. Un sistema operativo multiproceso coordina las operaciones de las
computadoras multiprocesadores. Ya que cada CPU en una computadora de
multiproceso puede estar ejecutando una instrucción, el otro procesador queda
liberado para procesar otras instrucciones simultáneamente.
Al usar una computadora con capacidades de multiproceso incrementamos su
velocidad de respuesta y procesos. Casi todas las computadoras que tienen
capacidad de multiproceso ofrecen una gran ventaja.
Los primeros Sistemas Operativos Multiproceso realizaban lo que se conoce como
Multiproceso asimétrico. Una CPU principal retiene el control global de la
computadora, así como el de los otros procesadores. Esto fue un primer paso
hacia el multiproceso pero no fue la dirección ideal a seguir ya que la CPU
principal podía convertirse en un cuello de botella.
¿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. El 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.
Un sistema operativo es una parte importante de casi cualquier sistema de computación. Un sistema de computación puede dividirse en cuatro componentes: el hardware, el sistema operativo, los programas de aplicación y los usuarios.
El hardware (unidad central de procesamiento (UCP), memoria y dispositivos de entrada y salida (E/S)) proporciona los recursos de computación básicos. Los programas de aplicación (compiladores, sistemas de bases de datos, juegos de video y programas para negocios) definen la forma en que estos recursos se emplean para resolver los problemas de computación de los usuarios. Puede haber distintos usuarios (personas, máquinas, otros computadores) que intentan resolver problemas diferentes; por lo tanto es posible que haya diferentes programas de aplicación. El sistema operativo controla y coordina el uso del hardware entre los diversos programas de aplicación de los distintos usuarios
Podemos ver al sistema operativo como un asignador de recursos. Un sistema de computación tiene muchos recursos (hardware y software) que pueden requerirse para resolver un problema: tiempo de la UCP, espacio de memoria, espacio de almacenamiento de archivos, dispositivos de E/S, etc. El sistema operativo actúa como el administrador de estos recursos y los asigna a usuarios y programas concretos según los necesiten las tareas de los usuarios.
Puesto que pueden surgir conflictos en las solicitudes de recursos, el sistema operativo debe decidir a que solicitudes se les asignaran para que el sistema de computación pueda funcionar de manera eficiente y justa.
En términos generales no hay una definición de sistema operativo completamente adecuada. Los sistemas operativos existen porque son una manera razonable de solucionar el problema de crear un sistema de computación utilizable.
Operativos.
Un sistema operativo es una parte importante de casi cualquier sistema de computación. Un sistema de computación puede dividirse en cuatro componentes: el hardware, el sistema operativo, los programas de aplicación y los usuarios.
El hardware (unidad central de procesamiento (UCP), memoria y dispositivos de entrada y salida (E/S)) proporciona los recursos de computación básicos. Los programas de aplicación (compiladores, sistemas de bases de datos, juegos de video y programas para negocios) definen la forma en que estos recursos se emplean para resolver los problemas de computación de los usuarios. Puede haber distintos usuarios (personas, máquinas, otros computadores) que intentan resolver problemas diferentes; por lo tanto es posible que haya diferentes programas de aplicación. El sistema operativo controla y coordina el uso del hardware entre los diversos programas de aplicación de los distintos usuarios
Podemos ver al sistema operativo como un asignador de recursos. Un sistema de computación tiene muchos recursos (hardware y software) que pueden requerirse para resolver un problema: tiempo de la UCP, espacio de memoria, espacio de almacenamiento de archivos, dispositivos de E/S, etc. El sistema operativo actúa como el administrador de estos recursos y los asigna a usuarios y programas concretos según los necesiten las tareas de los usuarios.
Puesto que pueden surgir conflictos en las solicitudes de recursos, el sistema operativo debe decidir a que solicitudes se les asignaran para que el sistema de computación pueda funcionar de manera eficiente y justa.
En términos generales no hay una definición de sistema operativo completamente adecuada. Los sistemas operativos existen porque son una manera razonable de solucionar el problema de crear un sistema de computación utilizable.
Operativos.
·
Transformar el complejo hardware de una computadora a una
máquina accesible al usuario.
·
Lograr el mejor uso posible de los recursos. Hacer eficiente
el uso del recurso.
En un principio solo existía el
hardware del computador. Los primeros computadores eran (físicamente) grandes
maquinas que se operaban desde una consola. El programador escribía un programa
y luego lo controlaba directamente desde la consola. En primer lugar, el
programa se cargaba manualmente en la memoria, desde los interruptores del
tablero frontal (una instrucción en cada ocasión), desde una cinta de papel o
desde tarjetas perforadas. Luego se pulsaban los
botones adecuados para establecer la dirección de
inicio y comenzar la ejecución del programa. Mientras este se ejecutaba, el
programador-operador lo podía supervisar observando las luces en la consola, si
se descubrían errores, el programador podía detener el programa, examinar el
contenido de la memoria y los registros y depurar el programa directamente
desde la consola. La salida del programa se imprimía, o se perforaba en cintas
de papel o tarjetas para su impresión posterior.
Sin embargo, con este procedimiento se presentaban ciertos problemas.
Supongamos que un usuario se había registrado para usar una hora de tiempo del
computador dedicada a ejecutar el programa que estaba desarrollando, pero se
topaba con algún error difícil y no podía terminar en esa hora. Si alguien más
había reservado el siguiente bloque de tiempo, usted debía detenerse, rescatar
lo que pudiera y volver mas tarde para continuar. Por otra parte, si el
programa se ejecutaba sin problemas, podría terminar en 35 minutos; pero como
pensó que necesitaría la maquina durante más tiempo, se registro para usarla una hora, y permanecería
inactiva durante 25 minutos.
Conforme transcurrió el tiempo, se desarrollaron software y hardware adicionales;
empezaron a popularizarse los lectores de tarjetas, impresoras de líneas y
cintas magnéticas; se diseñaron ensambladores, cargadores y ligadores para
facilitar las tareas de programación,
y se crearon bibliotecas de funciones comunes, de manera que
estas podían copiarse a un nuevo programa sin tener que escribirlas de nuevo.
Las rutinas que efectuaban operaciones de E/S tenían una importancia especial.
Cada nuevo dispositivo de E/S poseía sus propias características, lo que
requería una cuidadosa programación. Así mismo, para cada uno de ellos se
escribía una subrutina especial, la cual se denominaba manejador de
dispositivos. Este sabe como deben de usarse los buffers, indicadores, registros, bits de control y bits de estado para cada
dispositivo. Cada tipo de dispositivo tenía su propio manejador. Una tarea
sencilla, como leer un carácter de un
lector de cinta de papel, podía conllevar complicadas secuencias de operaciones
específicas para el dispositivo. En lugar de tener que escribir cada vez el código necesario,
bastaba usar el manejador de dispositivo de la biblioteca.
Más tarde aparecieron los compiladores de FORTRAN, COBOL y otros
lenguajes, lo que facilito la tarea de programación, pero hizo más complejo el
funcionamiento del computador. Por ejemplo, al preparar la ejecución de un
programa en FORTRAN, el programador primero necesitaba cargar en el computador
el compilador de FORTRAN, que generalmente se conservaba en una cinta
magnética, por lo que había que montar la cinta adecuada en la unidad
correspondiente. El programa se leía a través del lector de tarjetas y se
escribía en otra cinta. El compilador de FORTRAN producía una salida en lenguaje ensamblador, que luego tenia que ensamblarse, para esto era
necesario montar otra cinta con el ensamblador, y su salida debía enlazarse con
las rutinas de apoyo de las bibliotecas. Finalmente, el programa objeto, en
código binario, estaba listo para
ejecutarse; se cargaba en memoria y se depuraba desde la consola como antes.
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.
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.
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.
El 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.
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 número 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.
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.
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 han 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.
También llamados sistemas monolíticos. Este tipo de organización es con mucho la mas común; bien podría
recibir el subtitulo de "el gran embrollo". La estructura consiste en
que no existe estructura alguna. El sistema operativo se escribe como una
colección de procedimientos,
cada uno de los cuales puede llamar a los demás cada vez que así lo requiera.
Cuando se usa esta técnica, cada procedimiento del sistema tiene una interfaz
bien definida en términos de parámetros y resultados y cada uno de ellos es
libre de llamar a cualquier otro, si este ultimo proporciona cierto cálculo útil para el primero. Sin embargo
incluso en este tipo de sistemas es posible tener al menos algo de estructura.
Los servicios (llamadas al sistema) que proporciona el sistema operativo se
solicitan colocando los parámetros en lugares bien definidos, como en los
registros o en la pila, para después ejecutar una instrucción especial de
trampa de nombre "llamada al núcleo" o "llamada al
supervisor".
Esta instrucción cambia la máquina del modo usuario al modo núcleo y transfiere
el control al sistema operativo, lo que se muestra en el evento (1) de la figura 1. El
sistema operativo examina entonces los parámetros de la llamada, para
determinar cual de ellas se desea realizar, como se muestra en el evento (2) de
la figura 1. A continuación, el sistema operativo analiza una tabla que
contiene en la entrada k un apuntador al procedimiento que realiza la k-esima
llamada al sistema. Esta operación que se muestra en (3) de la figura 1,
identifica el procedimiento de servicio, al cual se llama. Por ultimo, la llamada al sistema
termina y el control regresa al programa del usuario.
Figura 1. La forma en que debe hacerse una llamada al sistema: (1) el programa
del usuario es atraído hacia el núcleo. (2) el sistema operativo determina el
número del servicio solicitado. (3) el sistema operativo localiza y llama al
procedimiento correspondiente al servicio. (4) el control regresa al programa
del usuario.
1.- un programa principal que llama al procedimiento del servicio solicitado.
2.- un conjunto de procedimientos de servicio que llevan a cabo las llamadas al
sistema.
3.- un conjunto de procedimientos utilitarios que ayudan al procedimiento de
servicio.
(Para ver el gráfico faltante haga click en el menú superior "Bajar
Trabajo")
Figura 2. Un modelo de estructura simple para un sistema monolítico.
(Para ver el gráfico faltante haga click en el menú superior "Bajar
Trabajo")
Las funciones centrales de un SO son controladas por el núcleo (kernel)
mientras que la interfaz del usuario es controlada por el entorno (shell). Por
ejemplo, la parte más importante del DOS es un programa con el nombre
"COMMAND.COM" Este programa tiene dos partes. El kernel, que se
mantiene en memoria en todo momento, contiene el código máquina de bajo nivel
para manejar la administración de
hardware para otros programas que necesitan estos servicios, y para la segunda
parte del COMMAND.COM el shell, el cual es el interprete de comandos
Las funciones de bajo nivel del SO y las funciones de interpretación de comandos están separadas, de tal forma que
puedes mantener el kernel DOS corriendo, pero utilizar una interfaz de usuario
diferente. Esto es exactamente lo que sucede cuando cargas Microsoft Windows, el cual toma el lugar del shell, reemplazando la
interfaz de línea de comandos con una interfaz gráfica del usuario. Existen
muchos "shells" diferentes en el mercado,
ejemplo: NDOS (Norton DOS), XTG, PCTOOLS, o inclusive el mismo SO MS-DOS a
partir de la versión 5.0 incluyó un Shell llamado DOS SHELL
Objetivos para la creación de los
sistemas
El objetivo fundamental de los
sistemas de computación es ejecutar los programas de los usuarios y facilitar
la resolución de sus problemas. El hardware se construye con este fin, pero
como este no es fácil de utilizar, se desarrollan programas de aplicación que
requieren ciertas operacionescomunes,
como el control de dispositivos de E/S. las funciones
comunes de control y de asignación de recursos se integran para formar un solo
fragmento de software: el sistema operativo.
Desarrollo histórico de los
sistemas operativos.
Generación Cero (década de 1940)
Primera Generación (década de 1950)
Segunda Generación (a mitad de la
década de 1960)
Tercera Generación (mitad de década
1960 a mitad década de 1970)
Cuarta Generación (mitad de década
de 1970 en adelante)
2. Estructura de un
sistema operativo
En esta unidad examinaremos cuatro estructuras distintas
que ya han sido probadas, con el fin de tener una idea más extensa de cómo esta
estructurado el sistema operativo. Veremos brevemente algunas estructuras de
diseños de sistemas operativos.
Estructura modular.
Esta organización sugiere una
organización básica del sistema operativo:
En este modelo, para cada llamada al sistema existe un procedimiento
de servicio que se encarga de él. Los procedimientos utilitarios hacen cosas
necesarias para varios procedimientos de servicio, por ejemplo buscar los datos
de los programas del usuario. La siguiente figura muestra este procedimiento de
tres capas:
Estructura por microkernel.
as Operativos de tiempo compartido:
·
Populares representantes de sistemas
multiprogramados multiusuario, Ej.: sistemas de diseño asistido por computador,
procesamiento de texto,
etc.
·
Dan la ilusión de que cada usuario tiene una
máquina para sí.
·
La mayoría utilizan algoritmo
de reparto circular.
·
Los programas se ejecutan con prioridad
rotatoria que se incrementa con la espera y disminuye después de concedido el
servicio.
·
Evitan monopolización del sistema asignando
tiempos de procesador (time slot).
·
Gestión de memoria: proporciona protección a
programas residentes.
·
Gestión de archivo: debe proporcionar
protección y control de acceso debido a que pueden existir múltiples
usuarios accesando un mismo archivo.
Sistemas operativos de tiempo real.
Un sistema operativo en tiempo real procesa las instrucciones recibidas al
instante, y una vez que han sido procesadas muestra el resultado. Este tipo
tiene relación con los sistemas operativos monousuarios, ya que existe un solo
operador y no necesita compartir el procesador entre varias solicitudes.
Su característica principal es dar respuestas rápidas; por ejemplo en un caso
de peligro se necesitarían respuestas inmediatas para evitar una catástrofe.
Los Sistemas Operativos de tiempo real, cuentan con las siguientes
características:
·
Se dan en entornos en donde deben ser aceptados
y procesados gran cantidad de sucesos, la mayoría externos al sistema
computacional, en breve tiempo o dentro de ciertos plazos.
·
Se utilizan en control industrial, conmutación
telefónica, control de vuelo, simulaciones en tiempo real., aplicaciones
militares, etc.
·
Su objetivo es proporcionar rápidos tiempos de
respuesta.
·
Procesa ráfagas de miles de interrupciones por
segundo sin perder un solo suceso.
·
Un proceso se activa tras ocurrencia de suceso,
mediante interrupción.
·
Un proceso de mayor prioridad expropia
recursos.
·
Por tanto generalmente se utiliza planificación
expropiativa basada en prioridades.
·
Gestión de memoria menos exigente que tiempo
compartido, usualmente procesos son residentes permanentes en memoria.
·
Población de procesos estática
en gran medida.
·
Poco movimiento
de programas entre almacenamiento secundario y memoria.
·
La gestión de archivos se orienta más a
velocidad de acceso que a utilización eficiente del recurso.
Sistemas operativos de red.
La principal función de un sistema operativo de red es ofrecer un mecanismo
para transferir archivos de una máquina a otra. En este entorno, cada
instalación mantiene su propio sistema de archivos local y si un usuario de la
instalación A quiere acceder a un archivo en la instalación B, hay que copiar
explícitamente el archivo de una instalación a otra.
Internet
proporciona un mecanismo para estas transferencias, a través del programa protocolo
de transferencias de archivos FTP
(File Transfer Protocol).
Suponga que un usuario quiere copiar un archivo A1, que reside en la
instalación B, a un archivo A2 en la instalación local A. Primero, el usuario
debe invocar el programa FTP, el cual solicita al usuario la información
siguiente:
a) El nombre de la instalación a partir de la cual se efectuará la
transferencia del archivo (es decir la instalación B).
b) La información de acceso, que verifica que el usuario tiene los privilegios
de acceso apropiados en la instalación B.
Una vez efectuada esta comprobación, el usuario puede copiar el archivo A1 de B
a A2 en A, ejecutando "get A1 to A2"
En este esquema, la ubicación del archivo no es transparente para el usuario;
tiene que saber exactamente donde esta cada archivo. Además los archivos no se
comparten realmente, porque un usuario solo puede copiar un archivo de una
instalación a otra. Por lo tanto pueden existir varias copias del mismo archivo,
lo que representa un desperdicio de espacio. Así mismo, si se modifican, estas
copias no serán consistentes.
Los Sistemas Operativos de red son aquellos sistemas que mantienen a dos o más
computadoras unidas a través de algún medio de comunicación (físico o no), con
el objetivo primordial de poder compartir los diferentes recursos y la
información del sistema.
El primer Sistema Operativo de red estaba enfocado a equipos con un procesador
Motorola 68000, pasando posteriormente a procesadores Intel como Novell
Netware.
Los Sistemas Operativos de red más ampliamente usados son: Novell Netware,
Personal Netware, LAN
Manager, Windows NT
Server, UNIX,
LANtastic.
Sistemas operativos distribuidos.
En un sistema operativo distribuido los usuarios pueden acceder a recursos
remotos de la misma manera en que lo hacen para los recursos locales. La migración
de datos y procesos de una instalación a otra queda bajo el control del sistema
operativo distribuido.
Permiten distribuir trabajos, tareas o procesos, entre un conjunto de
procesadores. Puede ser que este conjunto de procesadores esté en un equipo o
en diferentes, en este caso es transparente para el usuario. Existen dos
esquemas básicos de éstos. Un sistema fuertemente acoplado es aquel que
comparte la memoria y un reloj global, cuyos tiempos de acceso son similares
para todos los procesadores. En un sistema débilmente acoplado los procesadores
no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local.
Los sistemas distribuidos deben de ser muy confiables, ya que si un componente
del sistema se descompone otro componente debe de ser capaz de reemplazarlo.
Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los
siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.
Características de los Sistemas Operativos distribuidos:
·
Colección de sistemas autónomos capaces de
comunicación y cooperación mediante interconexiones hardware y software.
·
Proporciona abstracción de máquina virtual a los
usuarios.
·
Objetivo clave es la transparencia.
·
Generalmente proporcionan medios
para la compartición global de recursos.
Servicios añadidos: denominación global, sistemas de archivos
distribuidos, facilidades para distribución
de cálculos (a través de comunicación de procesos internodos, llamadas a
procedimientos remotos, etc.).
Figura 7.- Sistema Operativo Distribuido.
Sistemas operativos multiprocesadores.
En los sistemas multiprocesador, los procesadores comparten la memoria y el
reloj. Se incrementa la capacidad de procesamiento y la confiabilidad,
son económicos.
·
Multiprocesamiento simétrico: Cada procesador
ejecuta una copia del sistema operativo.
·
Multiprocesamiento asimétrico: Cada procesador
tiene asignado una tarea específica, existe un procesador master que asigna
tareas a los procesadores esclavos.
Multiproceso: Las computadoras que tienen más de un CPU son llamadas
multiproceso. Un sistema operativo multiproceso coordina las operaciones de las
computadoras multiprocesadores. Ya que cada CPU en una computadora de
multiproceso puede estar ejecutando una instrucción, el otro procesador queda
liberado para procesar otras instrucciones simultáneamente.
Al usar una computadora con capacidades de multiproceso incrementamos su
velocidad de respuesta y procesos. Casi todas las computadoras que tienen
capacidad de multiproceso ofrecen una gran ventaja.
Los primeros Sistemas Operativos Multiproceso realizaban lo que se conoce como
Multiproceso asimétrico. Una CPU principal retiene el control global de la
computadora, así como el de los otros procesadores. Esto fue un primer paso
hacia el multiproceso pero no fue la dirección ideal a seguir ya que la CPU
principal podía convertirse en un cuello de botella.
Funciones
y características de los sistemas operativos.
Funciones de los sistemas operativos.
1.- Aceptar todos los trabajos y conservarlos hasta su finalización.
2.- Interpretación de comandos: Interpreta los comandos que permiten al usuario comunicarse con el ordenador.
3.- Control de recursos: Coordina y manipula el hardware de la computadora, como la memoria, las impresoras, las unidades de disco, el teclado o el Mouse.
4.- Manejo de dispositivos de E/S: Organiza los archivos en diversos dispositivos de almacenamiento, como discos flexibles, discos duros, discos compactos o cintas magnéticas.
5.- Manejo de errores: Gestiona los errores de hardware y la pérdida de datos.
6.- Secuencia de tareas: El sistema operativo debe administrar la manera en que se reparten los procesos. Definir el orden. (Quien va primero y quien después).
7.- Protección: Evitar que las acciones de un usuario afecten el trabajo que esta realizando otro usuario.
8.- Multiacceso: Un usuario se puede conectar a otra máquina sin tener que estar cerca de ella.
1.- Aceptar todos los trabajos y conservarlos hasta su finalización.
2.- Interpretación de comandos: Interpreta los comandos que permiten al usuario comunicarse con el ordenador.
3.- Control de recursos: Coordina y manipula el hardware de la computadora, como la memoria, las impresoras, las unidades de disco, el teclado o el Mouse.
4.- Manejo de dispositivos de E/S: Organiza los archivos en diversos dispositivos de almacenamiento, como discos flexibles, discos duros, discos compactos o cintas magnéticas.
5.- Manejo de errores: Gestiona los errores de hardware y la pérdida de datos.
6.- Secuencia de tareas: El sistema operativo debe administrar la manera en que se reparten los procesos. Definir el orden. (Quien va primero y quien después).
7.- Protección: Evitar que las acciones de un usuario afecten el trabajo que esta realizando otro usuario.
8.- Multiacceso: Un usuario se puede conectar a otra máquina sin tener que estar cerca de ella.
9.- Contabilidad
de recursos: establece el costo
que se le cobra a un usuario por utilizar determinados recursos.
Características de los sistemas operativos.
En general, se puede decir que un Sistema Operativo tiene las siguientes características:
En general, se puede decir que un Sistema Operativo tiene las siguientes características:
·
Conveniencia. Un Sistema Operativo hace más
conveniente el uso de una computadora.
·
Eficiencia. Un Sistema Operativo permite que los
recursos de la computadora se usen de la manera más eficiente posible.
·
Habilidad para evolucionar. Un Sistema Operativo
deberá construirse de manera que permita el desarrollo, prueba o introducción
efectiva de nuevas funciones del sistema sin interferir con el servicio.
·
Encargado de administrar el hardware. El Sistema
Operativo se encarga de manejar de una mejor manera los recursos de la computadora
en cuanto a hardware se refiere, esto es, asignar a cada proceso una parte del
procesador para poder compartir los recursos.
·
Relacionar dispositivos (gestionar a través del
kernel). El Sistema Operativo se debe encargar de comunicar a los dispositivos periféricos,
cuando el usuario así lo requiera.
·
Organizar datos para acceso rápido y seguro.
·
Manejar las comunicaciones
en red.
El Sistema Operativo permite al usuario manejar con alta facilidad todo lo
referente a la instalación y uso de las redes de computadoras.
·
Procesamiento por bytes de flujo a través del bus
de datos.
·
Facilitar las entradas y salidas. Un Sistema
Operativo debe hacerle fácil al usuario el acceso y manejo de los dispositivos
de Entrada/Salida de la computadora.
Sistemas operativos por lotes.
La secuencia por lotes o procesamiento por lotes en microcomputadoras, es la ejecución de una lista de comandos del sistema operativo uno tras otro sin intervención del usuario.
En los ordenadores más grandes el proceso de recogida de programas y de conjuntos de datos de los usuarios, la ejecución de uno o unos pocos cada vez y la entrega de los recursos a los usuarios. Procesamiento por lotes también puede referirse al proceso de almacenar transacciones durante un cierto lapso antes de su envío a un archivo maestro, por lo general una operación separada que se efectúa durante la noche
Los sistemas operativos por lotes (batch), en los que los programas eran tratados por grupos (lote) en ves de individualmente. La función de estos sistemas operativos consistía en cargar en memoria un programa de la cinta y ejecutarlo. Al final este, se realizaba el salto a una dirección de memoria desde donde reasumía el control del sistema operativo que cargaba el siguiente programa y lo ejecutaba. De esta manera el tiempo entre un trabajo y el otro disminuía considerablemente.
(Para ver el gráfico faltante haga click en el menú superior "Bajar Trabajo")
La secuencia por lotes o procesamiento por lotes en microcomputadoras, es la ejecución de una lista de comandos del sistema operativo uno tras otro sin intervención del usuario.
En los ordenadores más grandes el proceso de recogida de programas y de conjuntos de datos de los usuarios, la ejecución de uno o unos pocos cada vez y la entrega de los recursos a los usuarios. Procesamiento por lotes también puede referirse al proceso de almacenar transacciones durante un cierto lapso antes de su envío a un archivo maestro, por lo general una operación separada que se efectúa durante la noche
Los sistemas operativos por lotes (batch), en los que los programas eran tratados por grupos (lote) en ves de individualmente. La función de estos sistemas operativos consistía en cargar en memoria un programa de la cinta y ejecutarlo. Al final este, se realizaba el salto a una dirección de memoria desde donde reasumía el control del sistema operativo que cargaba el siguiente programa y lo ejecutaba. De esta manera el tiempo entre un trabajo y el otro disminuía considerablemente.
(Para ver el gráfico faltante haga click en el menú superior "Bajar Trabajo")
Figura 6 - Sistema de procesamiento por lotes.
Algunas otras características con que cuentan los Sistemas Operativos por lotes son:
Algunas otras características con que cuentan los Sistemas Operativos por lotes son:
·
Requiere que el programa, datos y órdenes al
sistema sean remitidos todos juntos en forma de lote.
·
Permiten poca o ninguna interacción
usuario/programa en ejecución.
·
Mayor potencial de utilización de recursos que
procesamiento serial simple en sistemas multiusuarios.
·
No conveniente para desarrollo de programas por
bajo tiempo de retorno y depuración fuera de línea.
·
Conveniente para programas de largos tiempos de
ejecución (Ej., análisis
estadísticos, nóminas
de personal,
etc.)
·
Se encuentra en muchos computadores personales
combinados con procesamiento serial.
·
Planificación del procesador sencilla,
típicamente procesados en orden de llegada.
·
Planificación de memoria sencilla,
generalmente se divide en dos: parte residente del S.O. y programas
transitorios.
·
Suelen proporcionar gestión sencilla de manejo
de archivos: se requiere poca protección y ningún control de concurrencia para
el acceso.
Sistemas operativos de tiempo compartido.
El tiempo compartido en ordenadores o computadoras consiste en el uso de un sistema por más de una persona al mismo tiempo. El tiempo compartido ejecuta programas separados de forma concurrente, intercambiando porciones de tiempo asignadas a cada programa (usuario). En este aspecto, es similar a la capacidad de multitareas que es común en la mayoría de los microordenadores o las microcomputadoras. Sin embargo el tiempo compartido se asocia generalmente con el acceso de varios usuarios a computadoras más grandes y a organizaciones de servicios, mientras que la multitarea relacionada con las microcomputadoras implica la realización de múltiples tareas por un solo usuario.
Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusión de que tiene el sistema dedicado para sí mismo. Esto trae como consecuencia una gran carga de trabajo al Sistema Operativo, principalmente en la administración de memoria principal y secundaria.
El tiempo compartido en ordenadores o computadoras consiste en el uso de un sistema por más de una persona al mismo tiempo. El tiempo compartido ejecuta programas separados de forma concurrente, intercambiando porciones de tiempo asignadas a cada programa (usuario). En este aspecto, es similar a la capacidad de multitareas que es común en la mayoría de los microordenadores o las microcomputadoras. Sin embargo el tiempo compartido se asocia generalmente con el acceso de varios usuarios a computadoras más grandes y a organizaciones de servicios, mientras que la multitarea relacionada con las microcomputadoras implica la realización de múltiples tareas por un solo usuario.
Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusión de que tiene el sistema dedicado para sí mismo. Esto trae como consecuencia una gran carga de trabajo al Sistema Operativo, principalmente en la administración de memoria principal y secundaria.
Características de los Sistemas Operativos de tiempo compartido:
·
Populares representantes de sistemas
multiprogramados multiusuario, Ej.: sistemas de diseño asistido por computador,
procesamiento de texto,
etc.
·
Dan la ilusión de que cada usuario tiene una
máquina para sí.
·
La mayoría utilizan algoritmo
de reparto circular.
·
Los programas se ejecutan con prioridad
rotatoria que se incrementa con la espera y disminuye después de concedido el
servicio.
·
Evitan monopolización del sistema asignando
tiempos de procesador (time slot).
·
Gestión de memoria: proporciona protección a
programas residentes.
·
Gestión de archivo: debe proporcionar
protección y control de acceso debido a que pueden existir múltiples
usuarios accesando un mismo archivo.
Sistemas operativos de tiempo real.
Un sistema operativo en tiempo real procesa las instrucciones recibidas al instante, y una vez que han sido procesadas muestra el resultado. Este tipo tiene relación con los sistemas operativos monousuarios, ya que existe un solo operador y no necesita compartir el procesador entre varias solicitudes.
Su característica principal es dar respuestas rápidas; por ejemplo en un caso de peligro se necesitarían respuestas inmediatas para evitar una catástrofe.
Los Sistemas Operativos de tiempo real, cuentan con las siguientes características:
Un sistema operativo en tiempo real procesa las instrucciones recibidas al instante, y una vez que han sido procesadas muestra el resultado. Este tipo tiene relación con los sistemas operativos monousuarios, ya que existe un solo operador y no necesita compartir el procesador entre varias solicitudes.
Su característica principal es dar respuestas rápidas; por ejemplo en un caso de peligro se necesitarían respuestas inmediatas para evitar una catástrofe.
Los Sistemas Operativos de tiempo real, cuentan con las siguientes características:
·
Se dan en entornos en donde deben ser aceptados
y procesados gran cantidad de sucesos, la mayoría externos al sistema
computacional, en breve tiempo o dentro de ciertos plazos.
·
Se utilizan en control industrial, conmutación
telefónica, control de vuelo, simulaciones en tiempo real., aplicaciones
militares, etc.
·
Su objetivo es proporcionar rápidos tiempos de
respuesta.
·
Procesa ráfagas de miles de interrupciones por
segundo sin perder un solo suceso.
·
Un proceso se activa tras ocurrencia de suceso,
mediante interrupción.
·
Un proceso de mayor prioridad expropia
recursos.
·
Por tanto generalmente se utiliza planificación
expropiativa basada en prioridades.
·
Gestión de memoria menos exigente que tiempo
compartido, usualmente procesos son residentes permanentes en memoria.
·
Población de procesos estática
en gran medida.
·
Poco movimiento
de programas entre almacenamiento secundario y memoria.
·
La gestión de archivos se orienta más a
velocidad de acceso que a utilización eficiente del recurso.
Sistemas operativos de red.
La principal función de un sistema operativo de red es ofrecer un mecanismo para transferir archivos de una máquina a otra. En este entorno, cada instalación mantiene su propio sistema de archivos local y si un usuario de la instalación A quiere acceder a un archivo en la instalación B, hay que copiar explícitamente el archivo de una instalación a otra.
Internet proporciona un mecanismo para estas transferencias, a través del programa protocolo de transferencias de archivos FTP (File Transfer Protocol).
Suponga que un usuario quiere copiar un archivo A1, que reside en la instalación B, a un archivo A2 en la instalación local A. Primero, el usuario debe invocar el programa FTP, el cual solicita al usuario la información siguiente:
a) El nombre de la instalación a partir de la cual se efectuará la transferencia del archivo (es decir la instalación B).
b) La información de acceso, que verifica que el usuario tiene los privilegios de acceso apropiados en la instalación B.
Una vez efectuada esta comprobación, el usuario puede copiar el archivo A1 de B a A2 en A, ejecutando "get A1 to A2"
En este esquema, la ubicación del archivo no es transparente para el usuario; tiene que saber exactamente donde esta cada archivo. Además los archivos no se comparten realmente, porque un usuario solo puede copiar un archivo de una instalación a otra. Por lo tanto pueden existir varias copias del mismo archivo, lo que representa un desperdicio de espacio. Así mismo, si se modifican, estas copias no serán consistentes.
Los Sistemas Operativos de red son aquellos sistemas que mantienen a dos o más computadoras unidas a través de algún medio de comunicación (físico o no), con el objetivo primordial de poder compartir los diferentes recursos y la información del sistema.
El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000, pasando posteriormente a procesadores Intel como Novell Netware.
Los Sistemas Operativos de red más ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.
La principal función de un sistema operativo de red es ofrecer un mecanismo para transferir archivos de una máquina a otra. En este entorno, cada instalación mantiene su propio sistema de archivos local y si un usuario de la instalación A quiere acceder a un archivo en la instalación B, hay que copiar explícitamente el archivo de una instalación a otra.
Internet proporciona un mecanismo para estas transferencias, a través del programa protocolo de transferencias de archivos FTP (File Transfer Protocol).
Suponga que un usuario quiere copiar un archivo A1, que reside en la instalación B, a un archivo A2 en la instalación local A. Primero, el usuario debe invocar el programa FTP, el cual solicita al usuario la información siguiente:
a) El nombre de la instalación a partir de la cual se efectuará la transferencia del archivo (es decir la instalación B).
b) La información de acceso, que verifica que el usuario tiene los privilegios de acceso apropiados en la instalación B.
Una vez efectuada esta comprobación, el usuario puede copiar el archivo A1 de B a A2 en A, ejecutando "get A1 to A2"
En este esquema, la ubicación del archivo no es transparente para el usuario; tiene que saber exactamente donde esta cada archivo. Además los archivos no se comparten realmente, porque un usuario solo puede copiar un archivo de una instalación a otra. Por lo tanto pueden existir varias copias del mismo archivo, lo que representa un desperdicio de espacio. Así mismo, si se modifican, estas copias no serán consistentes.
Los Sistemas Operativos de red son aquellos sistemas que mantienen a dos o más computadoras unidas a través de algún medio de comunicación (físico o no), con el objetivo primordial de poder compartir los diferentes recursos y la información del sistema.
El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000, pasando posteriormente a procesadores Intel como Novell Netware.
Los Sistemas Operativos de red más ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.
Sistemas operativos distribuidos.
En un sistema operativo distribuido los usuarios pueden acceder a recursos remotos de la misma manera en que lo hacen para los recursos locales. La migración de datos y procesos de una instalación a otra queda bajo el control del sistema operativo distribuido.
Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este conjunto de procesadores esté en un equipo o en diferentes, en este caso es transparente para el usuario. Existen dos esquemas básicos de éstos. Un sistema fuertemente acoplado es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un sistema débilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local.
Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se descompone otro componente debe de ser capaz de reemplazarlo.
Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.
En un sistema operativo distribuido los usuarios pueden acceder a recursos remotos de la misma manera en que lo hacen para los recursos locales. La migración de datos y procesos de una instalación a otra queda bajo el control del sistema operativo distribuido.
Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este conjunto de procesadores esté en un equipo o en diferentes, en este caso es transparente para el usuario. Existen dos esquemas básicos de éstos. Un sistema fuertemente acoplado es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un sistema débilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local.
Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se descompone otro componente debe de ser capaz de reemplazarlo.
Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.
Características de los Sistemas Operativos distribuidos:
·
Colección de sistemas autónomos capaces de
comunicación y cooperación mediante interconexiones hardware y software.
·
Proporciona abstracción de máquina virtual a los
usuarios.
·
Objetivo clave es la transparencia.
·
Generalmente proporcionan medios
para la compartición global de recursos.
Servicios añadidos: denominación global, sistemas de archivos
distribuidos, facilidades para distribución
de cálculos (a través de comunicación de procesos internodos, llamadas a
procedimientos remotos, etc.).
Figura 7.- Sistema Operativo Distribuido.
Sistemas operativos multiprocesadores.
En los sistemas multiprocesador, los procesadores comparten la memoria y el reloj. Se incrementa la capacidad de procesamiento y la confiabilidad, son económicos.
Sistemas operativos multiprocesadores.
En los sistemas multiprocesador, los procesadores comparten la memoria y el reloj. Se incrementa la capacidad de procesamiento y la confiabilidad, son económicos.
·
Multiprocesamiento simétrico: Cada procesador
ejecuta una copia del sistema operativo.
·
Multiprocesamiento asimétrico: Cada procesador
tiene asignado una tarea específica, existe un procesador master que asigna
tareas a los procesadores esclavos.
Multiproceso: Las computadoras que tienen más de un CPU son llamadas
multiproceso. Un sistema operativo multiproceso coordina las operaciones de las
computadoras multiprocesadores. Ya que cada CPU en una computadora de
multiproceso puede estar ejecutando una instrucción, el otro procesador queda
liberado para procesar otras instrucciones simultáneamente.
Al usar una computadora con capacidades de multiproceso incrementamos su velocidad de respuesta y procesos. Casi todas las computadoras que tienen capacidad de multiproceso ofrecen una gran ventaja.
Los primeros Sistemas Operativos Multiproceso realizaban lo que se conoce como Multiproceso asimétrico. Una CPU principal retiene el control global de la computadora, así como el de los otros procesadores. Esto fue un primer paso hacia el multiproceso pero no fue la dirección ideal a seguir ya que la CPU principal podía convertirse en un cuello de botella.
Al usar una computadora con capacidades de multiproceso incrementamos su velocidad de respuesta y procesos. Casi todas las computadoras que tienen capacidad de multiproceso ofrecen una gran ventaja.
Los primeros Sistemas Operativos Multiproceso realizaban lo que se conoce como Multiproceso asimétrico. Una CPU principal retiene el control global de la computadora, así como el de los otros procesadores. Esto fue un primer paso hacia el multiproceso pero no fue la dirección ideal a seguir ya que la CPU principal podía convertirse en un cuello de botella.
No hay comentarios:
Publicar un comentario