Características Hardware Relevantes a los SO`s

Anuncio
Tema 1. Introducción a los SO’s





¿Qué es un sistema operativo?
Evolución de los SO’s.
Soporte hardware para los SO’s.
Visión externa del SO.
Estructura interna de un SO.
Tema 1. Introducción a los SO's
1
Objetivos





Conocer las funciones de un SO y tener una visión
global de sus distintos componentes.
Comprender los conceptos de multiprogramación
y tiempo compartido.
Distinguir diferentes tipos de SO´s.
Manejar el concepto de interrupción, excepción y
llamada al sistema.
Conocer diferentes formas de estructurar un SO.
Tema 1. Introducción a los SO's
2
1 ¿ Qué es un SO ? ó ¿Qué hace?


EL SO como máquina virtual - presenta al
usuario una máquina abstracta más fácil de
programar que el hardware subyacente: ocultando
la complejidad, y dando un tratamiento
homogéneo a diferentes objetos de bajo nivel
(p.ej. archivos, procesos, dispositivos, etc.)
El SO como gestor de recursos - controla y
protege los recursos (procesadores, dispositivos de
E/S, memoria, etc.) entre los programas/usuarios
que compiten por ellos.
Tema 1. Introducción a los SO's
3
¿ Qué es un SO ? ó ¿Qué hace?
Componentes de un ordenador
PSW
Tema 1. Introducción a los SO's
4
¿ Qué es un SO ? ó ¿Qué hace?
El hardware

La realidad tangible es el hardware del ordenador,
que contiene elementos de:
» Procesamiento: CPU, procesadores de E/S,
DMA
» Memoria: RAM, disco, cintas,...
» Dispositivos de E/S: teclado, ratón, pantalla,
impresora,...
» Dispositivos de comunicaciones: red ethernet,
líneas serie y paralelas,...
Tema 1. Introducción a los SO's
5
¿ Qué es un SO ? ó ¿Qué hace?
Las abstracciones

El SO simplifica esa realidad compleja
construyendo una serie de abstracciones:
» Proceso: Una CPU dedicada a un programa.
» Memoria virtual: simula una RAM infinita.
» Archivo: memoria permanente de datos con
tipo.
» Canal: dispositivo E/S de datos con tipo.
» Shell: interfaz de usuario programable.
Tema 1. Introducción a los SO's
6
2 Evolución de los SO’s
Los comienzos

Procesamiento en Serie.
» Cargar el programa en memoria usando Lectora de
Tarjetas.
» Establecer la dirección de inicio y Comenzar la
Ejecución.

El sistema está limitado por la velocidad de la E/S.
» Baja utilización de la CPU.
» Tiempo de preparación alto.
Tema 1. Introducción a los SO's
7
Los Sistemas por Lotes


Los sistemas por lotes (batch) simples fueron los
primeros SO’s reales:
» El SO estaba almacenado en memoria.
» Cargaba un único trabajo en memoria (desde el
lector de tarjetas).
» Ejecutaba el trabajo (daba su salida)
» Cargaba el siguiente trabajo.
» Las tarjetas de control en el archivo de entrada
indicaban al SO que hacer.
Mejora: spooling -- lectura adelantada de trabajos
de cintas o tarjetas.
Tema 1. Introducción a los SO's
8
Los sistemas por lotes (y II)
Manejadores de
dispositivo
Cargador
Secuenciador de
trabajos
Intérprete de tarjetas de
control
Area para el programa
de usuario
Monitor
residente

Control inicial en el Monitor

Transferencia del control al trabajo
Al finalizar el trabajo, el control
vuelve al monitor

Tema 1. Introducción a los SO's
9
Multiprogramación

Aparecen los controladores e interrupciones
 mejor aprovechamiento de la CPU

SO’s Multiprogramados:
» Permiten la ejecución concurrente de trabajos
repartiendo en el tiempo los recursos
» Mantienen en memoria principal simultáneamente
varios trabajos multiplexando la CPU entre ellos
Tema 1. Introducción a los SO's
10
Elementos necesarios para la
multiprogramación

Las rutinas de E/S deben estar suministradas por el
sistema.

Gestión de memoria - el sistema debe asignar
memoria entre varios trabajos.

Planificación de la CPU - el SO debe elegir uno de
entre los varios trabajos listos para ejecutarse.

El SO realiza la asignación de los dispositivos a
los trabajos.
Tema 1. Introducción a los SO's
11
Sistemas de tiempo compartido

Soportan el uso “interactivo” del sistema:
» Cada usuario tiene la ilusión de disponer de la
máquina completa.
» Intenta optimizar el tiempo de respuesta.
» Basado en la asignación de fracciones de
tiempo - se divide el tiempo de CPU
equitativamente entre los procesos.
» Permite una participación activa de los usuario
en la edición, depuración, y ejecución de los
procesos.
Tema 1. Introducción a los SO's
12
SO’s de Tiempo Real




Los SOTR se utilizan para aplicaciones especializadas, p.ej. sistemas de control, ...
Idea básica: SO debe garantizar la respuesta a
sucesos físicos en intervalos de tiempo fijos.
Problema: planificar las actividades con el fin de
satisfacer todos los requisitos críticos.
El uso de aplicaciones de video sobre PC’s, todos
los SO’s tendrán pronto requisitos de tiempo-real.
Tema 1. Introducción a los SO's
13
SO’s de Red



Los usuarios son conscientes de la existencia de
varias computadoras.
Cada nodo ejecuta su propio SO local y tiene sus
propios usuarios.
Lo que les diferencia de los SO de un solo
procesador es la necesidad de software especial
como:
» controlador de interfaz de la red
» programas de conexión y acceso a archivos remoto.
Tema 1. Introducción a los SO's
14
SO’s Distribuidos





Sistemas débilmente acoplados - sistemas sin
memoria común.
Característica fundamental: Transparencia.
Permiten la compartición de recursos distribuidos,
hardware o software.
Permiten algún paralelismo, pero el aumento de
velocidad no es el objetivo.
Aumentan la fiabilidad del sistema.
Tema 1. Introducción a los SO's
15
SO’s Paralelos


Trabajan sobre sistemas multiprocesador
fuertemente acoplados (los procesadores
comparten una única memoria y el reloj).
Dos tipos de multiprocesamiento:
» Simétrico - cada procesador ejecuta una copia
idéntica del SO - buen rendimiento.
» Asimétrico - Un procesador maestro ejecuta el
SO, los procesadores esclavos ejecutan
procesos de usuario. Peor escalabilidad.
Tema 1. Introducción a los SO's
16
SO’s Paralelos (y II)



Soportan aplicaciones paralelas que desean
obtener aumento de velocidad de tareas
computacionalmente complejas.
Necesitan primitivas básicas para dividir una tarea
en múltiples actividades paralelas.
Proporciona una comunicación y sincronización
eficiente entre esas actividades.
Tema 1. Introducción a los SO's
17
3. Soporte hardware para los SO’s




Funcionamiento de un sistema de ordenador.
Modo dual de operación.
Interrupciones y excepciones.
Protección de:
» E/S
» Memoria
» CPU
Tema 1. Introducción a los SO's
18
Funcionamiento de un sistema de
ordenador
Esquema
CPU
Controlador de
dispositivo
Controlador de
dispositivo
Controlador de Memoria
Controlador de
dispositivo
Bus del
sistema
Memoria
Tema 1. Introducción a los SO's
19
Modo dual de operación

Los SO’s multiusuario y/o multitarea necesitan:
» Evitar la interferencia entre procesos de usuario, y
entre los procesos y el SO.
» Definir como instrucciones privilegiadas aquellas
que pueden dañar potencialmente a otros procesos o
usuarios.
– P.ej. operaciones de E/S, actualizar el reloj, desactivar
interrupciones, halt, etc.
» Al menos son necesarios dos modos
Tema 1. Introducción a los SO's
20
Modo dual de operación (y II)

Modo usuario
» Modo en el que se sólo se ejecutan las instrucciones de
usuario (no privilegiadas).

Modo kernel (supervisor o sistema)
» Se puede ejecutar cualquier instrucción.
» El SO se ejecuta en este modo.
» Se cambia de modo (instrucción privilegiada) activando
el bit de modo del registro PSW.
» El hardware cambia a modo kernel cuando se produce
una interrupción o excepción
Tema 1. Introducción a los SO's
21
Interrupciones y excepciones

Interrupción = evento que interrumpe el flujo normal
de ejecución producido por un elemento externo al
procesador. Es un evento asíncrono.

Excepción = evento inesperado generado por alguna
condición que ocurre durante la ejecución de una
instrucción (p.ej. desbordamiento aritmético,
dirección inválida, instrucción privilegiada, etc.). Es
un evento síncrono.
Tema 1. Introducción a los SO's
22
Interrupciones y excepciones
Ejecución de instrucciones

Ciclo de instrucción
Inicio
Leer siguiente
instrucción
Ejecutar la
instrucción
Fin
Tema 1. Introducción a los SO's
23
Interrupciones y excepciones
Ejecución de instrucciones de E/S
Tema 1. Introducción a los SO's
24
Interrupciones y excepciones
Ciclo de instrucción con interrupciones

Ciclo de instrucción con interrupciones
Inicio
Leer siguiente instrucción
Fin
Ejecutar la instrucción
Interrupciones
Interrupciones habilitadas
inhabilitadas
Comprobación de interrupción.
Interrupción del proceso
Tema 1. Introducción a los SO's
25
Interrupciones y excepciones
Funciones básicas

Gestor General de Interrupciones:
» Salva el contexto del proceso en ejecución
(contenido de los registros del procesador)
» Determina el tipo de interrupción.
» Llama a la rutina de servicio de interrupción
específica.
Tema 1. Introducción a los SO's
26
Interrupciones y excepciones
Interrupciones vectorizadas
vector
Interrupción
Dispositivo
Memoria
Principal
CPU
Código
del SO
i
...
Tabla de
vectores
de int.
Rutina de servicio
de interrupción i
...
Código de usuario
Tema 1. Introducción a los SO's
27
Interrupciones y excepciones
Procesamiento de interrupciones
1. El controlador de dispositivo genera una interrupción.
2. El procesador termina la ejecución de la instrucción.
3. El procesador indica el reconocimiento de la interrupción al
dispositivo correspondiente.
4. El procesador apila PSW y PC en la pila de sistema.
5. Se determina la dirección de la RSI y se carga en PC.
6. SO salva resto de información de estado en la pila.
7. Ejecución de la RSI.
8. Restaurar información de estado previamente apilada.
9. Restaurar el PSW y PC previamente apilados.
Tema 1. Introducción a los SO's
28
Interrupciones y excepciones
Tratamiento de varias interrupciones


Inhabilitar las
interrupciones
mientras se procesa
una interrupción.
Definir prioridades
para las
interrupciones.
Tema 1. Introducción a los SO's
29
Protección por hardware
Protección de E/S



Los dispositivos de E/S son recursos que
han de estar protegidos.
¿Cómo se consigue?  las instrucciones
máquina de E/S no pueden ejecutarse en
modo usuario: son privilegiadas.
Cualquier acceso a los dispositivos desde
un programa de usuario se hará mediante
peticiones al SO.
Tema 1. Introducción a los SO's
30
Protección por hardware
Protección de Memoria



En los SO’s multiusuario y/o multitarea, el SO
asigna una zona de memoria a cada proceso en
ejecución.
Objetivo: evitar que un proceso de usuario
lea/escriba de/en el espacio de direcciones de otro
proceso.
Debemos tener protección de memoria al menos
para el vector de interrupción y las rutinas de
servicio de interrupción.
Tema 1. Introducción a los SO's
31
Protección por hardware
Protección de la CPU



Los SO’s multiprogramados-multitarea deben
evitar que un proceso se apodere de la CPU.
Necesitamos un reloj. El contador del reloj se
decrementa en cada ‘tick’ de reloj, al llegar a cero
se genera una interrupción de reloj.
El SO asigna fracciones de tiempo a los procesos:
la CPU se asigna a un proceso durante un tiempo
limitado o cuanto. Al expirar el plazo la
interrupción de reloj devuelve el control al SO.
Tema 1. Introducción a los SO's
32
4. Visión externa del SO
Usuarios del lenguaje de órdenes

Obtienen los servicios del SO utilizando el lenguaje
de órdenes:
» Suele ser específico de cada SO, pero el rango y la
funcionalidad proporcionada es menos variable.

Interprete de órdenes (shell):
» Acepta órdenes y las traduce en las llamadas al sistema
necesarias
» Por cada usuario, una vez identificado, se crea un proceso
que ejecuta el intérprete
» Dos modos de trabajo: background y foreground
Tema 1. Introducción a los SO's
33
Usuarios de las llamadas al sistema



Es la forma en la que se comunican los programas
de usuario con el SO.
Son solicitudes al SO de petición de servicio.
Ejemplos de llamadas al sistema:
» Solicitudes de E/S.
» Gestión de procesos.
» Gestión de memoria.

Se implementan a través de una trampa o
“interrupción software”.
Tema 1. Introducción a los SO's
34
Usuarios de las llamadas al sistema (y II)

Un usuario puede hacer algo “privilegiado” (p.ej.
E/S) invocando un procedimiento del SO a través
de una llamada al sistema:
» Trampa a una posición específica del vector de
interrupciones.
» El control se pasa a la rutina de servicio del SO, y el bit
de modo se pone en modo kernel.
» El SO verifica que los parámetros son correctos y
legales, ejecuta la solicitud, y devuelve el control a la
instrucción siguiente.
Tema 1. Introducción a los SO's
35
Usuarios de las llamadas al sistema (y III)
Biblioteca
call (...)
Modo
usuario
Trampa
Manejador
de trampas
Rutina de
servicio
del sistema
Modo
Kernel
Kernel del SO
Tema 1. Introducción a los SO's
36
Usuarios de las llamadas al sistema (y IV)

Tres métodos para pasar parámetros:
» Paso de parámetros en los registros.
» Almacenarlos en una tabla de memoria y pasar
la dirección de la tabla como parámetro en un
registro.
» El programa empuja los parámetros en la pila, y
el SO los recupera de la pila.
Tema 1. Introducción a los SO's
37
5. Estructura interna del SO
5.1 Componentes de un
SO:
»
»
»
»
Gestión de procesos
Gestión de memoria
Gestión de archivos
Gestión de
almacenamiento
secundario
» Gestión de E/S
» Sistema de protección.
5.2 Estructura de los
SO:
»
»
»
Tema 1. Introducción a los SO's
Sistemas
Monolíticos
Estructura de
Capas
Modelo ClienteServidor
38
5.1. Componentes de un SO
Gestión de procesos


Proceso = una instancia de un programa en
ejecución.
El SO es responsable de las siguientes actividades
relacionadas con los procesos:
» crear/destruir procesos,
» suspender/reanudar procesos,
» suministrar los mecanismos para sincronizar y
comunicar procesos.
Tema 1. Introducción a los SO's
39
Gestión de memoria


La memoria principal es el almacenamiento de
acceso directo para la CPU y los disposi-tivos de
E/S. Es volátil.
El SO es responsable de:
» asignar/liberar memoria a los programas (tanto
explícita como implícitamente)
» mantener la pista de las partes de memoria
utilizadas actualmente y quien las usa
» decidir cuanta memoria asignar a cada proceso,
y cuando debe ser retirado de memoria un
proceso.
Tema 1. Introducción a los SO's
40
Gestión de almacenamiento secundario



El almacenamiento secundario (disco) es la
memoria persistente.
Las rutinas del SO de bajo nivel son respon-sables
de las funciones de disco: planificación de disco,
gestión del espacio en disco, gestión de errores,
etc.
La línea entre estas y el sistema de archivos es
muy difusa... la gestión del espacio puede
pertenecer al sistema de archivos.
Tema 1. Introducción a los SO's
41
Gestión de E/S




El SO suministra una interfaz estándar entre
programas (usuario o sistema) y dispositivos.
El sistema de E/S tiene una caché de búferes.
Los manejadores de dispositivos son los módu-los
responsables de manejar cada tipo de dispositivo.
Un manejador encapsula el conocimiento
específico del dispositivo, p.ej., inicialización,
control, manejo interrupciones,
Puede haber un proceso por cada dispositivo o
incluso por cada solicitud de E/S, dependiendo del
SO particular.
Tema 1. Introducción a los SO's
42
Gestión de archivos



Archivo = colección de información con nom-bre;
es la entidad básica de almacenamiento
persistente.
El sistema de archivos suministra las siguientes
operaciones sobre archivos:
» crear/borrar archivos y directorios,
» primitivas para manipular archivos y
directorios: leer, escribir, renombrar, ...
» obtener información sobre las características
del archivo.
También, suministra servicios generales: backup,
contabilidad y cuotas, etc.
Tema 1. Introducción a los SO's
43
Sistema de protección



La protección hace referencia al mecanismo para
controlar los accesos por programas, procesos o
usuarios, al sistema o a los recursos de usuario.
El mecanismo de protección debe:
» distinguir entre uso autorizado o no,
» especificar el control que se debe imponer,
» suministrar los medios para su aplicación.
La protección es un mecanismo general en todo el
SO.
Tema 1. Introducción a los SO's
44
5.2. Estructura de los SO´s
Sistemas Monolíticos
No tienen estructura bien definida
 El SO está formado por un conjunto de
procedimientos de forma que cada uno
puede llamar a los demás cuando lo
necesite.
 Todos se ejecutan en modo supervisor.
 No se aplica el principio de ocultación de
información.

Tema 1. Introducción a los SO's
45
Modelo simple de estructura de un SO
monolítico
Procedimiento Principal
Procedimientos de Servicio
Procedimientos auxiliares
Tema 1. Introducción a los SO's
46
Problemas de los S. monolíticos



Son difíciles de comprender y de modificar.
No fiables: un error en alguna parte puede
provocar la caída del sistema.
Difíciles de mantener.
 Desde el principio, los diseñadores han
buscado formas de organizar el SO para
simplificar su diseño y construcción.
Tema 1. Introducción a los SO's
47
La Estructura de Capas


El sistema se implementa como un conjunto de capas; cada
capa es una máqui-na
más abstracta pa-ra la
capa superior.
Por modularidad, las
capas se selec-cionan
para que cada una
utilice funciones sólo
de las capas inferiores.
Nuevas
operaciones
Capa M
Operaciones
existentes
Opers.
ocultas
Capa M-1
Tema 1. Introducción a los SO's
48
Ejemplo: El Sistema THE
5: Programas de
Usuario
4: Búfering para
dispositivos de E/S
3: Manejador de
consola del operador
2: Gestión de
memoria
1: Planificación de
la CPU
Nivel 0: Hardware



El sistema estaba
compuesto de una
serie de procesos
secuenciales.
Los procesos se sincronizan con declaraciones explícitas de
sincronización.
Se puede probar y
verificar de forma
independiente cada
proceso.
Tema 1. Introducción a los SO's
49
Problemas de THE

Los sistemas de capas deben ser jerárquicos pero
los sists. reales son más complejos, p. ej.,
» El sistema de archivos podría ser un proceso en la capa
de memoria virtual.
» La capa de memoria virtual podría usar archivos como
almacén de apoyo de E/S.


Sobrecarga de comunicaciones entre procesos de
distintas capas.
A menudo, los sists. están modelados con esta
estructura pero no están así construidos.
Tema 1. Introducción a los SO's
50
Modelo Cliente-Servidor

Reducir el SO a un núcleo mínimo: implementar
la mayoría de las funciones del SO como procesos
de usuario.

Para solicitar un servicio, el proceso de usuario
(cliente) envía un mensaje al proceso servidor, que
realiza el servicio y devuelve al cliente una
respuesta.
Tema 1. Introducción a los SO's
51
Modelo cliente-Servidor
Proceso
servidor
archivos
Proceso
cliente
Modo
usuario
Solicitud servicio
Núcleo
Respuesta servicio
Tema 1. Introducción a los SO's
Modo
supervisor
52
Descargar