TEMA 1: VISIÓN GENERAL DE LOS SISTEMAS OPERATIVOS

Anuncio
TEMA 1: VISIÓN GENERAL DE LOS
SISTEMAS OPERATIVOS
1. Concepto de Sistema Operativo. Funciones
Un sistema operativo (S.O.) es un programa o conjunto de programas de
control que tiene por objeto facilitar el uso de la computadora y conseguir
que ésta se utilice eficientemente.
Las funciones que realiza son básicamente:
• Presentar al usuario el equivalente de una máquina extendida o
máquina virtual más fácil de programar.
Ej.: Controlador de disco.
Dispone de comandos que realizan operaciones tales como leer y
escribir datos, mover el brazo, formatear pistas, recalibrado, ...
El usuario ve el disco como una colección de archivos y
carpetas/directorios.
• Gestionar los recursos del sistema (procesadores, memoria,
dispositivos de E/S, ...) para que se utilicen eficientemente y se
puedan resolver los conflictos derivados de la competencia entre los
distintos usuarios.
Ej.: La impresora. Es un recurso asignado que se debe compartir.
El S.O. mantiene una lista de los archivos a imprimir y los va
encauzando hacia la impresora.
1
2. Evolución de los Sistemas Operativos
Primera generación (1945-1955)
• No existen Sistemas Operativos.
• Un grupo reducido de gente diseñaba, construía, programaba,
mantenía cada máquina.
• Las instrucciones se codificaban a mano.
• El programador insertaba su trabajo y esperaba su turno.
• Existía un desaprovechamiento inadecuado del computador ("tiempos
muertos de la CPU").
• Disparidad de tiempos de ejecución entre la CPU y los dispositivos de
E/S.
• En 1950 aparecen las tarjetas perforadas.
Segunda generación (1955-1965)
• Aparición de los transistores.
• Se especializa el personal (diseñadores, analistas, ...).
• Se desarrollan los primeros sistemas operativos.
• Se procesan los trabajos por lotes ("batch").
• El S.O. se entiende como un programa de control que planifica los
trabajos.
Tercera generación (1965-1980)
• Aparecen los circuitos integrados y la multiprogramación.
• Existen muchas computadoras diferentes con S.O. muy diferentes.
• Se suministran una gran cantidad de programas de utilidad.
• Los S.O. son complejos.
• Se utilizan dispositivos virtuales como las técnicas de SPOOL.
• Multiprocesamiento (sistemas compuestos de varios procesadores).
• Surgimiento de la Ingeniería del Software.
• Separación entre la venta de hardware y software.
2
Cuarta generación (1980-2000)
• Circuitos LSI (alta escala de integración) y, posteriormente, VLSI.
• Relanzamiento de los ordenadores personales.
• Crecimiento del software para las computadoras personales.
• Crecimiento de las redes de computadoras que ejecutan S.O. en red y
distribuidos.
Quinta generación (2000-...)
• Aparición de las computadoras de bolsillo (PDA, Personal Digital
Assistant) como ampliación de las agendas electrónicas.
• Los S.O. se adaptan a estas nuevas computadoras y teléfonos móviles
(mucho más pequeños que una computadora).
3. Tipos de S.O.
3.1. Monoprogramación
Hasta que no finaliza la ejecución de un programa de usuario no empieza a
ejecutarse otro.
Consecuencias:
• Tiempos muertos de CPU, periféricos, ...
• Desaprovechamiento de la Memoria Central (la no ocupada por el
proceso).
Entre la finalización de un programa y el comienzo del siguiente transcurre
un tiempo en el que el núcleo del sistema operativo tiene el control del
procesador (CPU).
3
3.2. Sistemas por lotes o colas ("sistemas batch")
Un sistema por lotes realiza una secuenciación automática de trabajos. En
él van pasando a ejecución de uno en uno los programas en espera.
La planificación es muy simple. Los trabajos se procesan, en general, en el
orden de admisión (FIFO).
Un S.O. por lotes puede servir muy bien para programas que no requieran
interacción con el usuario y aquellos con tiempos de ejecución largos,
como los programas de nóminas, de análisis estadísticos, ...
Debido a los retardos en el tiempo total de ejecución, el procesamiento por
lotes no es muy conveniente para el desarrollo de programas.
3.3. S.O. de multiprogramación
Se cargan en memoria principal varios programas que se van ejecutando
concurrentemente con lo cual, en un determinado tiempo se estarán
ejecutando varios programas.
Ventajas: Aprovechamiento de la memoria y mejora de los tiempos
muertos del procesador.
Un programa en ejecución se conoce como proceso. El programa es, por
tanto, un ente "pasivo" y el proceso un ente "activo".
Un S.O. multiproceso o multitarea soporta dos o más procesos activos
simultáneamente.
4
Un S.O. de multiprogramación soporta múltiples procesos concurrentes y,
además, permite que residan simultáneamente en la memoria principal las
instrucciones y datos procedentes de dos o más procesos disjuntos. La
multiprogramación implica multiproceso pero el multiproceso no implica
multiprogramación.
Tipos de multiprogramación:
• Clásica
• Tratamiento paralelo
• Tiempo compartido
Multiprogramación clásica
El planificador del procesador da el turno a un programa determinado.
Cuando éste tiene que realizar una operación de E/S, le da el control del
procesador a otro programa y así sucesivamente. Cuando un programa
finaliza una operación de E/S, el periférico se lo comunica a la CPU
(mediante una interrupción) para cederle el control la próxima ocasión que
le toque su turno.
Problema: Monopolización de la CPU por parte de programas con mucho
cálculo y poca E/S.
Tratamiento paralelo
A cada uno de los programas en memoria se le asigna un intervalo de
tiempo fijo o periodo T llamado "cuantum" (décimas de segundo). Al
finalizar el cuantum asignado a un programa, el control de la CPU pasa al
siguiente programa y así sucesivamente.
5
La cuenta del tiempo se realiza mediante un circuito contador activado por
el reloj de la CPU (temporizador digital). Al transcurrir el periodo T se
genera una interrupción de la CPU.
Tiempo compartido
Se asigna el control de la CPU a un nuevo programa interrumpiendo al
anterior siempre que este último agote su cuantum de tiempo o que entre en
la ejecución de una instrucción de E/S.
La CPU trabaja el 100% en determinados intervalos según el tipo de carga.
3.4.
S.O.
de
secuencias
múltiples
o
colas
paralelas
(multisecuencias)
Permiten coexistir en memoria en ejecución concurrente distintos tipos de
trabajos (organizados en colas diferentes).
Los trabajos se introducen en las distintas colas las cuales contienen
distintas características (tiempo de CPU, prioridades, etc.) que deben reunir
los trabajos. En ejecución concurrente habrá un trabajo por cada cola que
exista. Pueden existir trabajos de tipo interactivo.
3.5. Sistemas de bases de datos
Estos S.O. mantienen una gran cantidad de datos que pueden ser
consultados en busca de una determinada información que debe
suministrarse en un periodo razonable de tiempo.
6
La B.D. puede ser frecuentemente modificada para mantener la
información actualizada y se evitan las operaciones simultáneas sobre los
mismos datos.
3.6. Sistemas en tiempo real
Un S.O. en tiempo real se caracteriza por el procesamiento de una actividad
interrumpida, en la mayoría de los casos, por sucesos externos aleatorios.
El procesamiento de un suceso particular viene acompañado por secuencias
de tareas que se deben de realizar dentro de rígidas restricciones de tiempo.
Un suceso puede ser:
• La recepción de un dato (procedente, por ejemplo, de un sensor).
• La demanda de servicio de un dispositivo en línea.
Un sistema en tiempo real monitoriza y controla el sistema con mínima
intervención humana. Sólo interviene en fallos del sistema o cuando se
violan algunos límites.
El sistema está completamente dedicado a la aplicación de control y debe
estar configurado para garantizar respuestas rápidas en el tiempo incluso
con cargas pesadas. Los procesos suelen residir permanentemente en
memoria principal para proporcionar tiempos de respuesta rápidos. El
entorno es tal que la utilización del equipo es menos importante que la
respuesta al entorno.
Ejemplos:
Líneas de producción, semáforos de tráfico, equipamiento
telefónico, control de vuelo, aplicaciones militares, ...
7
Es importante que el procesador pueda responder muy rápidamente a
interrupciones externas y determinar intervalos de tiempo con una precisión
muy alta.
3.7. Sistemas multiprocesador. Redes y sistemas distribuidos
Una red interconecta varias computadoras ("hosts"), cada una de las cuales
puede proporcionar servicios de computación a los usuarios de la red.
Las redes están conectadas por subsistemas de comunicaciones y uno o
varios tipos de enlaces de comunicaciones como pueden ser las líneas
telefónicas, canales de satélite, cables coaxiales y enlaces de microondas.
Tipos de aplicaciones de procesamiento distribuido:
• Redes de recursos compartidos: Los recursos de las diferentes
computadoras se ponen a disposición de las otras computadoras. La
red proporciona los mecanismos para crear la ilusión de que los
dispositivos remotos están disponibles en el sistema local.
• Redes de computación distribuida: Realiza actividades de multitarea
como pueden ser el control de procesos o de bases de datos, ...
Ej.: Planta de fabricación de una compañía en todo un país.
• Redes de comunicación remota: Proporcionan los medios para que los
usuarios puedan acceder a instalaciones remotas de la forma más
económica posible.
8
Un sistema operativo para red es una colección de software y protocolos
asociados que permiten a varias computadoras autónomas que se
encuentran interconectadas por una red de computadoras, ser utilizadas
conjuntamente de una manera conveniente y económica.
Los S.O. para redes se clasifican en:
• S.O. en red (NOS, Network Operating System)
• S.O. distribuidos (DOS, Distributed Operating System)
S.O. en red
Cada uno de los hosts de la red utiliza su propio S.O. que no es de red. La
red está controlada por los programas de usuario ejecutados en los
diferentes hosts.
Los usuarios conocen la existencia de múltiples computadoras y pueden
conectarse a máquinas remotas y copiar archivos de una máquina a otra.
Cada máquina tiene sus propios usuarios y ejecuta su S.O.
S.O. distribuidos
Los S.O. individuales de los hosts quedan descartados y se implementa un
único sistema operativo para toda la red.
Aparece a los usuarios como un sistema uniprocesador aunque conste de
muchos procesadores. Los usuarios no saben dónde se ejecutan sus
programas ni dónde se localizan sus archivos. Por ello, la característica
principal de un DOS es la transparencia.
9
4. Visión de los S.O. por parte de los usuarios
Básicamente podemos dividir a los usuarios de los servicios de los sistemas
operativos en dos amplias clases: usuarios del lenguaje de órdenes y
usuarios de las llamadas al sistema.
Informalmente, los usuarios del lenguaje de órdenes son aquellos que
obtienen los servicios del sistema operativo mediante órdenes, ya sean
tecleadas en el terminal o insertadas en un archivo de procesamiento
(llamados scripts o batch). Estos lenguajes de órdenes suelen ser
específicos del sistema, aunque, en general, las funciones suelen ser
parecidas en todos ellos. Algunas de las clases funcionales típicas de las
órdenes del sistema operativo son: las relacionadas con la conexión y
desconexión, con la activación y control de programas, con la gestión de
archivos, las que muestran información de estado, las que permiten la
comunicación entre los usuarios y las relacionadas con la gestión del
sistema.
Los usuarios de las llamadas al sistema invocan los servicios del sistema
operativo mediante llamadas al sistema en tiempo de ejecución. Estos
usuarios, conocidos como programadores de sistemas y aplicaciones,
invocan a las llamadas al sistema desde sus programas. Además de
proporcionar la mayoría de la funcionalidad accesible a los usuarios del
lenguaje de órdenes, las llamadas al sistema suelen permitir un mayor
control sobre las operaciones del sistema y un acceso más directo a las
facilidades del hardware, especialmente a las de entrada/salida; por este
motivo, las llamadas al sistema representan un superconjunto de las
funciones accesibles a nivel de orden.
10
Descargar