Download S.Oper - ClaseV

Document related concepts

Sistema operativo wikipedia , lookup

Núcleo (informática) wikipedia , lookup

Arquitectura de Windows NT wikipedia , lookup

Windows NT wikipedia , lookup

Servidor wikipedia , lookup

Transcript
www.monografias.com
Sistemas operativos
Indice
1. Introducción a los sistemas operativos
2. Estructura de un sistema operativo
3. Funciones y características de los sistemas operativos.
4. Modalidades de trabajo de los sistemas operativos.
5. Bibliografia
1. Introducción a los sistemas operativos
Definiciones de los sistemas operativos.
Un sistema operativo es un programa que actúa como intermediario entre el usuario y el hardware de un
computador y su propósito es proporcionar un entorno en el cual el usuario pueda ejecutar programas.
El objetivo principal de un sistema operativo es lograr que el sistema de computación se use de manera
cómoda, y el objetivo secundario es que el hardware del computador se emplee de manera eficiente.
Un sistema Operativo (SO) es en sí mismo un programa de computadora. Sin embargo, es un programa
muy especial, quizá el más complejo e importante en una computadora. El SO despierta a la
computadora y hace que reconozca a la CPU, la memoria, el teclado, el sistema de vídeo y las unidades
de disco. Además, proporciona la facilidad para que los usuarios se comuniquen con la computadora y
sirve de plataforma a partir de la cual se corran programas de aplicación.
Cuando enciendes una computadora, lo primero que ésta hace es llevar a cabo un autodiagnóstico
llamado auto prueba de encendido (Power On Self Test, POST). Durante la POST, la computadora
identifica su memoria, sus discos, su teclado, su sistema de vídeo y cualquier otro dispositivo conectado
a ella. Lo siguiente que la computadora hace es buscar un SO para arrancar (boot).
Una vez que la computadora ha puesto en marcha su SO, mantiene al menos parte de éste en su
memoria en todo momento. Mientras la computadora esté encendida, el SO tiene 4 tareas principales:

Proporcionar ya sea una interfaz de línea de comando o una interfaz gráfica al usuario, para que
este último se pueda comunicar con la computadora. Interfaz de línea de comando: tú
introduces palabras y símbolos desde el teclado de la computadora, ejemplo, el MS-DOS.
Interfaz gráfica del Usuario (GUI), seleccionas las acciones mediante el uso de un Mouse para
pulsar sobre figuras llamadas iconos o seleccionar opciones de los menús.

Administrar los dispositivos de hardware en la computadora. Cuando corren los programas,
necesitan utilizar la memoria, el monitor, las unidades de disco, los puertos de Entrada/Salida
(impresoras, módems, etc.). El SO sirve de intermediario entre los programas y el hardware.

Administrar y mantener los sistemas de archivo de disco. Los SO agrupan la información dentro
de compartimientos lógicos para almacenarlos en el disco. Estos grupos de información son
llamados archivos. Los archivos pueden contener instrucciones de programas o información
creada por el usuario. El SO mantiene una lista de los archivos en un disco, y nos proporciona
las herramientas necesarias para organizar y manipular estos archivos.

Apoyar a otros programas. Otra de las funciones importantes del SO es proporcionar servicios a
otros programas. Estos servicios son similares a aquellos que el SO proporciona directamente a
los usuarios. Por ejemplo, listar los archivos, grabarlos a disco, eliminar archivos, revisar
espacio disponible, etc. Cuando los programadores escriben programas de computadora,
incluyen en sus programas instrucciones que solicitan los servicios del SO. Estas instrucciones
son conocidas como "llamadas del sistema"
¿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.
Objetivos para la creación de los sistemas
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.
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 operaciones comunes,
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.
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 programadoroperador 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.
Generación 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 Generación (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 Generación (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 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.
Tercera Generación (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 Generación (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 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.
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.
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.
Programa 2 del usuario
Los programas
del
usuario
se
ejecutan
en modo usuario
Programa 1 del usuario
Llamada al núcleo
Memori
a
4
Princip
1
al
3
2
Procedimiento
de servicio
Tabla de
despacho
El
sistema
operativo
Se ejecuta en
modo
núcleo
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.
Esta organización sugiere una organización básica del sistema operativo:
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.
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:
Figura 2. Un modelo
de estructura simple para un sistema monolítico.
Procedimiento
principal
Procedimientos de
servicio
Procedimientos
utilitarios
Estructura por microkernel.
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.
Estructura por anillos concéntricos (capas).
El sistema por “capas” consiste en organizar el sistema operativo como una jerarquía de capas, cada
una construida sobre la inmediata inferior. El primer sistema construido de esta manera fue el sistema
THE (Technische Hogeschool Eindhoven), desarrollado en Holanda por E. W. Dijkstra (1968) y sus
estudiantes.
El sistema tenia 6 capas, como se muestra en la figura 3. La capa 0 trabaja con la asignación del
procesador y alterna entre los procesos cuando ocurren las interrupciones o expiran los cronómetros.
Sobre la capa 0, el sistema consta de procesos secuénciales, cada uno de los cuales se podría
programar sin importar que varios procesos estuvieran ejecutándose en el mismo procesador, la capa 0
proporcionaba la multiprogramación básica de la CPU.
La capa 1 realizaba la administración de la memoria. Asignaba el espacio de memoria principal para los
procesos y un recipiente de palabras de 512K se utilizaba para almacenar partes de los procesos
(páginas) para las que no existía lugar en la memoria principal. Por encima de la capa 1, los procesos no
debían preocuparse si estaban en la memoria o en el recipiente; el software de la capa 1 se encargaba
de garantizar que las páginas llegaran a la memoria cuando fueran necesarias.
La capa 2 se encargaba de la comunicación entre cada proceso y la consola del operador. Por encima
de esta capa, cada proceso tiene su propia consola de operador.
La capa 3 controla los dispositivos de E/S y guarda en almacenes (buffers) los flujos de información
entre ellos. Por encima de la capa 3, cada proceso puede trabajar con dispositivos exactos de E/S con
propiedades adecuadas, en vez de dispositivos reales con muchas peculiaridades. La capa 4 es donde
estaban los programas del usuario, estos no tenían que preocuparse por el proceso, memoria, consola o
control de E/S. el proceso operador del sistema se localizaba en la capa 5.
Una generalización mas avanzada del concepto de capas se presento en el sistema MULTICS. En lugar
de capas, MULTICS estaba organizado como una serie de anillos concéntricos, siendo los anillos
interiores los privilegiados. Cuando un procedimiento de un anillo exterior deseaba llamar a un
procedimiento de un anillo interior, debió hacer el equivalente a una llamada al sistema.
Mientras que el esquema de capas de THE era en realidad un apoyo al diseño, debido a que todas las
partes del sistema estaban ligadas entre si en un solo programa objeto, en MULTICS, el mecanismo de
anillos estaba mas presente durante el tiempo de ejecución y era reforzado por el hardware. La ventaja
del mecanismo de anillos es su facilidad de extensión para estructurar subsistemas del usuario.
5
4
3
2
1
0
El operador
Programas del usuario
Control de entrada/salida
Comunicación operador-proceso
Administración de la memoria y del disco
Asignación del procesador y multiprogramación
Figura 3. Estructura del sistema operativo THE.
Estructura cliente – servidor.
Una tendencia de los sistemas operativos modernos es la de explotar la idea de mover el código a
capas superiores y eliminar la mayor parte posible del sistema operativo para mantener un núcleo
mínimo. El punto de vista usual es el de implantar la mayoría de las funciones del sistema operativo en
los procesos del usuario. Para solicitar un servicio, como la lectura de un bloque de cierto archivo, un
proceso del usuario (denominado proceso cliente) envía la solicitud a un proceso servidor, que realiza
entonces el trabajo y regresa la respuesta. En este modelo, que se muestra en la figura 4, lo único que
hace el núcleo es controlar la comunicación entre los clientes y los servidores. Al separar el sistema
operativo en partes, cada una de ellas controla una faceta del sistema, como el servicio a archivos,
servicios a procesos, servicio a terminales o servicio a la memoria, cada parte es pequeña y controlable.
Además como todos los servidores se ejecutan como procesos en modo usuario y no en modo núcleo,
no tienen acceso directo al hardware. En consecuencia si hay un error en el servidor de archivos, éste
puede fallar, pero esto no afectará en general a toda la máquina.
Proceso
Cliente
Proceso
Cliente
Servidor
Del
proceso
Servidor de
la terminal
...
Servidor
de
archivos
Servidor de
la memoria
Modo usuario
Modo núcleo
Núcleo
Los clientes obtienen el servicio al
enviar mensajes a los procesos
servidores
Figura 4. El modelo Cliente-servidor.
Otra de las ventajas del modelo cliente-servidor es su capacidad de adaptación para su uso en los
sistemas distribuidos (figura 5).
Si un cliente se comunica con un servidor mediante mensajes, el cliente no necesita saber si el mensaje
se maneja en forma local, en su máquina, o si se envía por medio de una red a un servidor en una
máquina remota. En lo que respecta al cliente, lo mismo ocurre en ambos casos: se envió una solicitud y
se recibió una respuesta.
Máquina 1
Cliente
Núcleo
Máquina 2
Máquina 3
Máquina 4
Servidor de
archivos
Servidor de
procesos
Servidor de
terminales
Núcleo
Núcleo
Núcleo
Red
Mensaje del cliente al servidor
Figura 5. El modelo cliente-servidor en un sistema distribuido.
3. 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.
4. Modalidades de trabajo de los sistemas operativos.
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.
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.

No requieren gestión crítica de dispositivos en el tiempo.

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, SolarisMC, 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
Procesos
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.
MicroKernel
MicroKernel
MicroKernel
Multiproceso: Las computadoras que tienen más de un CPU son llamadas multiproceso. Un sistema
Hardware
Hardware
Hardware
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
Red de
que la CPU principal podía convertirse
enComunicación
un cuello de botella.
Multiproceso simétrico. En un sistema multiproceso simétrico, no existe una CPU controladora única. La
barrera a vencer al implementar el multiproceso simétrico es que los SO tienen que ser rediseñados o
diseñados desde el principio para trabajar en un ambiente multiproceso. Las extensiones de UNIX, que
soportan multiproceso asimétrico ya están disponibles y las extensiones simétricas se están haciendo
disponibles. Windows NT de Microsoft soporta multiproceso simétrico.
5. Bibliografia

Sistemas Operativos Modernos
Andrew S. Tanenbaum
Pearson Education

Operating System Concepts
A. Silberschatz, J. Peterson, P. Galvin
Addison - Wesley Publishing Company

Sistemas Operativos / Diseño E Implementación
Andrew S. Tanenbaum
Prentice - Hall
Trabajo enviado por:
Heriberto Gabriel Soto
[email protected]