Clase 1 - Campus Virtual

Anuncio
TEMA 1. Introducción a los sistemas operativos
Contenidos:
1.1 Sistemas Operativos: Objetivos y Funciones
El Sistema Operativo como Interfaz Usuario/Computador
El Sistema Operativo como gestor de recursos
Motivos para la Evolución de los Sistemas Operativos
1.1 Evolución de los sistemas Operativos
Procesamiento en Serie (serial processing)
Sistemas por Lotes (simple batch systems)
Sistemas de tiempo compartido (time-sharing systems)
Sistemas distribuidos
Sistemas en tiempo real
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
1
TEMA 1. Introducción a los sistemas operativos
Bibliografía
•
•
W. Stallings. Sistemas Operativos, 2ª ed.
[Tema 2]
A. Silberschatz, P. B. Galvin. Sistemas Operativos. 5ª ed.
[Tema 1]
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
2
1.1 Sistemas Operativos: Objetivos y Funciones
Definición de Sistema Operativo
“Un Sistema Operativo es un programa que actúa como
interfaz 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”.
[Stallings 96]
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
3
1.1 Sistemas Operativos: Objetivos y Funciones
Funciones y objetivos de los sistemas operativos:
• Comodidad
Acerca el sistema al usuario facilitando su uso
• Eficiencia
Uso de los recursos de modo eficiente
• Capacidad de Evolución
Construido de modo que permita una evolución para incorporar
nuevas funciones en un futuro.
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
4
1.1 Sistemas Operativos: Objetivos y Funciones
• Comodidad/conveniencia de uso
• Eficiencia
– Los recursos han de aprovecharse eficientemente
– El SO no debe suponer una gran sobrecarga
• Control de la ejecución de los programas
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
5
1.1 Sistemas Operativos: Objetivos y Funciones
Interfaz Usuario/Máquina
Usuario
Final
Programas de
Aplicación
Utilidades
Programador
Diseñador
del Sistema
Operativo
Sistema Operativo
Hardware de la Computadora
[Stallings 96]
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
6
1.1 Sistemas Operativos: Objetivos y Funciones
A que áreas da servicio el sistema operativo
• Creación de Programas
• Ejecución de Programas
• Acceso a dispositivos I/O
• Acceso controlado a ficheros
• Acceso al sistema
• Detección de errores y respuesta
• Información y Contabilidad
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
7
1.1 Sistemas Operativos: Objetivos y Funciones
Sistema Operativo como gestor de Recursos
•
•
•
•
•
Ejecución de programas
Acceso a dispositivos
Manipulación de ficheros y datos
Detección y respuesta a errores
Protección
Singularidad:
• Sistema de control no externo
• El sistema operativo es un programa que se ejecuta en el
procesador
• El S.O. devuelve el control a otros programas y debe esperar a
que el procesador vuelva a darle el control
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
8
1.2 Evolución de los Sistemas Operativos
Motivos para la evolución de los S.O.
• Actualizaciones HW y nuevos tipos de HW.
• Nuevos servicios. Nuevas demandas.
• Resolver errores. Bugs.
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
9
1.2 Evolución de los Sistemas Operativos
•Un poco de Historia...
Procesamiento en Serie
Sistemas por Lotes
– Monitor residente
– Almacenamiento temporal
Multiprogramación
Sistema de tiempo compartido
Sistemas en tiempo real
Sistemas distribuidos
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
1940−1950
1950−1960
1960−1975
1975−1990
1990−
10
1.2 Evolución de los Sistemas Operativos
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
11
1.2 Evolución de los Sistemas Operativos
Procesamiento en Serie
• Primeros sistemas (Años 1945-1955)
– Sin Sistema Operativo. Interactúan directamente con el HW
– Grandes Ordenadores (ENIAC 1946 – 180m2)
– Compuestos por válvulas de vacío
– Programas en código máquina, directamente con el HW
– Aplicaciones: cálculo numérico sencillo, tablas de senos y
cosenos . . .
• Comunicación con la máquina:
– Panel de programación (displays y switches)
– Dispositivos de entrada: consola con interruptores manuales
– Dispositivos de salida: Bombillas de luz
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
12
1.2 Evolución de los Sistemas Operativos
Procesamiento en Serie
• Año 1950
• Aparecen nuevos dispositivos de entrada y salida:
– Tarjetas perforadas e Impresoras
• Aparecen los cargadores, los primeros lenguajes y librerías comunes
• Comunicación con la máquina:
– Dispositivos de entrada: lector de tarjetas con el programa
– Dispositivos de salida: impresora
– Dispositivo de gestión: consola
• Los programas eran cargadas manualmente en la memoria por el
operario (tarjetas)
• La activación de los programas y recogida de datos se realizaba
directamente desde la memoria del ordenador mediante una consola
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
13
1.2 Evolución de los Sistemas Operativos
Procesamiento en Serie
Ventajas:
• Interactivo (los usuarios obtienen respuesta inmediata)
Desventajas:
• Sistema monousuario/monopuesto
• Los usuarios acceden en serie a la máquina. Solamente un usuario
operando la máquina en cada momento.
• Máquina cara y permanece bastante tiempo ociosa, debido a que
las personas son lentas.
• Programación & depuración tediosas: Cada programa debe incluir
código para operar periféricos: propenso a errores.
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
14
1.2 Evolución de los Sistemas Operativos
Procesamiento en Serie
Problemas principales
• Planificación:
– Formularios de reserva (p.e: múltiplos de 30 min.)
–Desperdicio del tiempo del computador
•Tiempo de preparación:
– trabajo Æ compilador Æ programa objeto Æ montaje Æ carga Æ ejecución
– Cada paso podía implicar montar y desmontar cintas y/o
tarjetas
– Gran perdida de tiempo en la preparación
– Si se produce un error el usuario debía comenzar el proceso
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
15
1.2 Evolución de los Sistemas Operativos
Sistema por Lotes
• Primera Generación
• Problema:
Máquina antiguas muy caras y permanecían bastante tiempo ociosa,
debido a que las personas son lentas.
–Necesidades de maximizar utilización (evitar perdidas en planificación y
preparación)
• Solución:
– Nuevo concepto software: monitor
– El usuario no accede directamente a la máquina
– Un job o trabajo es un lote de tarjetas perforadas por el programador
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
16
1.2 Evolución de los Sistemas Operativos
Sistema por Lotes
• Operativa:
– El usuario entrega los trabajos al operador
– El operador agrupaba trabajos en un lote y el monitor cargaba trabajos y
los ejecutaba continuamente
– Los trabajos (jobs) tenían unas rutinas finales (branch) que devolvían el
control al monitor cuando terminaban
• Los primeros sistemas por lotes se desarrollaron:
1940-1950, General Motors, en un IBM701
1960, IBM, IBSYS en un 7090/7094
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
17
1.2 Evolución de los Sistemas Operativos
Sistema por Lotes
• El monitor siempre debe estar siempre en memoria:
Monitor Residente
• Ofrece también un conjunto de funciones comunes como subrutinas
para los programas de usuario
• El monitor lee trabajos uno a uno
• El control pasa al trabajo
• Al terminar el trabajo devuelve el control al monitor (branch)
• El resultado de cada trabajo es impreso
• El monitor lee un nuevo trabajo
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
18
1.2 Evolución de los Sistemas Operativos
Sistema por Lotes
Planificación de trabajos
• Resuelto por el monitor de trabajos
¿Qué ocurre con la preparación de los trabajos?
• Lenguaje de control de trabajos (JCL, Job Control Language)
• Instrucciones para el monitor
• Trabajo (job) incluye: Tarjetas de control + Programa + Datos
• Tarjetas de control:
•$JOB $FTN $LOAD $RUN $END
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
19
1.2 Evolución de los Sistemas Operativos
Sistema por Lotes
Disposición de la memoria con monitor residente
[Stallings 96]
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
20
1.2 Evolución de los Sistemas Operativos
Sistema por Lotes
Ventajas:
• Computador se mantiene la mayor parte del tiempo ocupado
Desventajas:
• No interactivo, prolongados tiempos de despacho
• Procesador costoso y aún permanece ocioso debido a jobs
limitados por E/S.
• Procesador sobrecargado: monitor + programas de usuario
• Cantidad de memoria ocupada por el monitor
Las desventajas son mejoras deseadas, aun con esto la mejora
respecto a los sistemas anteriores son evidentes.
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
21
1.2 Evolución de los Sistemas Operativos
Sistema por Lotes
Características deseables
•
•
•
•
Protección de memoria: no permitir que un proceso en
ejecución acceda al zona de memoria del monitor
Temporizador: limitar el uso del computador por trabajo
Instrucciones Privilegiadas: El acceso a determinados
recursos debieran ser mediante Instr. Privilegiadas ejecutadas
por el monitor.
Interrupciones
Mejora de los tiempos de preparación de trabajos:
•
•
Procesamiento off-line
Spooling
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
22
1.2 Evolución de los Sistemas Operativos
Sistema por Lotes
•Procesamiento off-line
– Lectora de tarjetas muy lenta
– Bajo rendimiento debido a que E/S y CPU no pueden operar a la vez
– Solución: procesamiento off-line de la entrada y la salida
• Los trabajos se cargan desde cinta magnética (más rápida) y sus
resultados también se escriben en cinta magnética
– Método:
•La lectura de tarjetas para su escritura en cinta y la impresión definitiva
de los resultados se hacen off-line
• La E/S no se puede hacer on-line porque las cintas no son dispositivos
de acceso directo, pero el procesador está menos tiempo inactivo (cinta +
rápida que lectoras de tarjetas)
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
23
1.2 Evolución de los Sistemas Operativos
Sistema por Lotes
• Ventajas del procesamiento off-line
– El ordenador principal no está restringido a la velocidad de lectura
de tarjetas o impresión, sólo a la velocidad de la cinta, más rápida
– No se necesitan cambios en los programas de aplicación para
operar off-line
– Posibilidad de usar múltiples sistemas de tarjeta a cinta y cinta a
impresora para una misma CPU
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
24
1.2 Evolución de los Sistemas Operativos
Sistema por Lotes
•Spooling (Simultaneous Peripheral Operation On Line)
– Reducir los tiempos de E/S utilizando el disco como un buffer para
compensar la diferencia de velocidades entre la E/S y los periféricos
lentos
– Para ello se usa un disco magnético (Disp. Acceso directo)
– El disco actúa como un buffer de E/S
– Grabación de los trabajos de entrada en disco (desde tarjetas
perforadas o desde cinta) sin intervención constante de la CPU
– Grabación de los datos de salida también en disco para su
impresión posterior
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
25
1.2 Evolución de los Sistemas Operativos
Sistema por Lotes
• Pool (conjunto) de trabajos
– Los trabajos se escriben en disco
• La ubicación de cada trabajo en disco es registrada por el SO
– Una vez finalizado un trabajo, el SO puede seleccionar (planificar)
el siguiente a ejecutar
• Gracias a que el disco es un dispositivo de acceso directo
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
26
1.2 Evolución de los Sistemas Operativos
Sistema por Lotes con Multiprogramación
• Año 1960 – 1970
Máquinas muy caras y la ocupación de la CPU es pequeña por las
esperas de E/S *
•Objetivo:
Disminuir el tiempo de espera de la CPU ejecutando simultáneamente
varias tareas
• Solución:
Mientras una tarea espera E/S otra tarea puede ejecutarse en el
procesador
• Si hay espacio en memoria para: Monitor + 2 o más prog.
Æ Programa 1 (ops. E/S) Æ Programa 2 (paso a ejecución)
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
27
1.2 Evolución de los Sistemas Operativos
Sistema por Lotes con Multiprogramación
•Concepto:
Multiprogramación o Multitarea
• Es el punto central de los Sistemas Operativos Modernos
•El monitor Residente comienza a llamarse
Sistema Operativo
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
28
1.2 Evolución de los Sistemas Operativos
Sistema por Lotes con Multiprogramación
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
29
1.2 Evolución de los Sistemas Operativos
Sistema por Lotes con Multiprogramación
(*)
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
30
1.2 Evolución de los Sistemas Operativos
Sistema por Lotes con Multiprogramación
• Características Hw necesarias:
– Interrupciones E/S
– DMA (Direct Memory Access)
• Características del S.O. necesarias:
– Gestión de Memoria
– Planificación de procesos
• No resuelto:
– Hay programas y tareas que es necesario que el usuario
interactue con el computador
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
31
1.2 Evolución de los Sistemas Operativos
Sistemas de Tiempo Compartido
• Año 1970.
– Sistemas por lotes son bastante eficientes, pero no permiten al usuario
interactuar con el computador
– Hoy en día la interacción es imprescindible
• Objetivo
Que varios usuarios compartan la máquina y puedan interactual con el
computador.
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
32
1.2 Evolución de los Sistemas Operativos
Sistemas de Tiempo Compartido
• Técnica
A cada usuario se le da un trozo de tiempo (quatum) de procesador
n usuario Æ 1/n de tiempo por usuario
• Consecuencia
El tiempo de reacción humano hace que el usuario perciba que disfruta del
100% del tiempo
• Los usuarios acceden al sistema mediante terminales
• Requisito Hw adicional: Interrupciones de Tiempo (pulsos de Reloj)
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
33
1.2 Evolución de los Sistemas Operativos
Sistemas de Tiempo Compartido
• Diferencias entre Multiprogramación por Lotes y el Tiempo
compartido:
Multiprogramación por Lotes
Tiempo Compartido
Objetivo principal
Maximizar uso del procesador
Minimizar tiempos de respuesta
Origen de las instrucciones al S.O
JLC
Ordenes lanzadas desde el terminal
• Primeros sistemas:
CTSS (Compatible Time-Sharing System) en un IBM709 y IBM7094.
• Tenía las siguientes características:
Memoria: 32K palabras de 36bits
Monitor: 5K Programas: 27K restantes
Interrupciones de reloj: 0,2 sg.
Numero de usuario máximo: 32
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
34
1.2 Evolución de los Sistemas Operativos
Sistemas de Tiempo Compartido
• Inconvenientes
– Es necesario almacenar el estado actual del proceso cuando se saca de
ejecución
– Las escrituras y lecturas en disco relentizas el cambio de trabajo activo
– Para evitar muchas escrituras sólo se escribe a disco si el proceso
entrante puede sobrescribir el anterior
• Consecuencia: Enfoque primitivo, pero efectivo (*)
• Nuevos problemas a resolver
– Protección de la memoria (varios programas en memoria a la vez)
– Seguridad de archivos (varios usuario en el sistema a la vez)
– Contención de recursos
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
35
1.2 Evolución de los Sistemas Operativos
Sistemas Distribuidos
• Nueva tendencia: Distribuir cálculos entre varios procesadores
• Dos posibilidades:
– Sistemas fuertemente acoplados:
Varios procesadores. Comparten el reloj y memoria principal. Coordinación
mediante memoria compartida.
– Sistemas débilmente acoplados:
Cada procesador su propio reloj y memoria principal. Coordinación mediante
líneas de comunicación.
• Consecuencia
El usuario no tiene porque conocer la ubicación física de los recursos.
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
36
1.2 Evolución de los Sistemas Operativos
Sistemas Distribuidos
• Razones para construir sistemas distribuidos:
– Compartir recursos
– Aceleración de los cálculos
– Tolerancia a fallos
– Comunicación entre usuarios y aplicaciones
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
37
1.2 Evolución de los Sistemas Operativos
Sistemas en Tiempo Real
• Se usan para el control de aplicaciones especializadas
• Tienen restricciones de tiempo fijas y bien determinadas
• Son muy utilizados en sistemas empotrados: UCIs, automóviles,
teléfonos móviles, sistemas de control, etc.
• El sistema operativo debe responder siempre dentro de los
márgenes requeridos por el sistema controlado, si nos salimos de
esos márgenes, tendremos que buscar otras soluciones
• Existen actualmente lenguajes de programación (Ada) que nos
dan grandes posibilidades para controlar procesos en tiempo real
38
1.2 Evolución de los Sistemas Operativos
Sistemas de Tiempo Compartido
• Sistema Operativo UNIX
– A partir del CTSS se diseña el MULTICS (MIT, Bell Labs,
General Electric)
• Pensado para cientos de usuarios
• Resultó demasiado ambicioso
– Ken Thompson, de Bell Labs, desarrolla una versión
monousuario, en ensamblador: UNICS
• Se unen all proyecto Brian Kernighan y Denis Ritchie
• Se reescribe en un lenguaje propio: B
• Ritchie rediseña el lenguaje y lo llama C
• Se reescribe Unix en C
• Se distribuye gratuitamente a las universidades
• Se estandariza con el nombre POSIX
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
39
1.2 Evolución de los Sistemas Operativos
Sistemas de Tiempo Compartido
• Computadores personales (1980-1990)
– Dos tipos:
• Estaciones de trabajo: UNIX y redes
• PCs para oficinas y hogares: MS-DOS, luego Windows
– Software fácil de usar: entornos gráficos de ventanas
• Hasta Hoy (1991-hoy)
– los SO generales proporcionan conexión a la red
– se populariza el software libre (Gnu)
– dos grandes familias: Windows y Unix/Linux
surgen otros niveles diferentes al SO: Java, .net
Arquitectura de Computadores
Automática y Computación. Ingeniería Telemática
Diego Martínez Pomares
40
Descargar