53
1 TEMA 7: Gestión de TEMA 7: Gestión de Entrada/Salida Entrada/Salida • Introducción • Software de E/S • Discos • Relojes • Terminales

0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

Embed Size (px)

Citation preview

Page 1: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

1

TEMA 7: Gestión de Entrada/SalidaTEMA 7: Gestión de Entrada/Salida

• Introducción

• Software de E/S

• Discos

• Relojes

• Terminales

Page 2: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

2

1. Introducción1. Introducción

• Función del sistema operativo

Controlar la Entrada/Salida

•Enviar comandos

•Recibir interrupciones

•Tratar los errores

•Presentar una interfaz

Page 3: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

3

Categorías de dispositivosCategorías de dispositivos

• Dispositivos de bloques» Bloques de tamaño fijo

» L/E de cada bloque de forma independiente

» Se puede direccionar cada bloque

• Dispositivos de caracteres» Sin estructura de bloques

» L/E de flujos de caracteres

DISCOS

TERMINALES

IMPRESORAS

Page 4: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

4

Manejadores y ControladoresManejadores y Controladores

• Manejador de dispositivos

• Controlador de dispositivo o adaptador

Programa de más bajo nivel que se encarga de los detalles que son dependientes del dispositivo

Elemento electrónico de la unidad de E/S (tarjeta de circuitos impresos)

Bus

Canales E/S

Page 5: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

5

RegistrosRegistros

• Forman parte del espacio normal de direcciones de la memoria

• Espacio de direcciones especial para E/S

Puertos de E/S

Page 6: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

6

Operaciones de E/SOperaciones de E/S

• El S.O. escribe órdenes y parámetros en los registros.

• El controlador acepta la orden y comienza a trabajar.

• El controlador genera una interrupción.

• El S.O. mira si la operación se ha realizado correctamente.

S.O

Controlador

Registros

Ordenesy

parámetros

Resultados

Page 7: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

7

2. Software de E/S2. Software de E/S

• Objetivos de la programación de la E/S» Independencia del dispositivo

» Uniformidad de los nombres

» Manejo de errores

» Presentar al programador transferencias síncronas• Síncronas: bloquean al programa.

• Asíncronas: no bloquean al programa.

» Gestión de los dispositivos• compartidos

• dedicados

Page 8: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

8

Niveles del software de E/SNiveles del software de E/S

Programas de usuario

Programas del S.O independientes del

dispositivo

Manejadores de dispositivos

Manejadores de interrupciones

Page 9: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

9

Manejadores de interrupcionesManejadores de interrupciones

Manejadorde

dispositivoControlador

CPUManejador

deinterrupciones

Ordena

Interrumpe

Ejecuta

Desbloquea

Page 10: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

10

Manejadores de dispositivoManejadores de dispositivo

• Código dependiente del dispositivo

• Función:

» Enviar órdenes a los dispositivos» Comprobar que se ha realizado correctamente

• La petición de los programas independientes del dispositivo se llevan a una cola

• Única parte del S.O que conoce los registros del controlador

Programasindependientesdel dispositivo

Manejadordel

dispositivo

Controladordel

dispositivo

Page 11: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

11

Programas del S.O independientes Programas del S.O independientes del dispositivodel dispositivo

• Funciones (I)» Presentar una interfaz uniforme a los programas de

usuario

» Asignar nombres y establecer la correspondencia entre nombre y manejadores

– En UNIX los dispositivos se tratan como ficheros

• Nº de dispositivo principal: Para localizar el manejador

• Nº de dispositivo secundario: Para especificar la unidad referenciada.

» Proteger a los dispositivos de accesos no permitidos

Page 12: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

12

Programas del S.O independientes Programas del S.O independientes del dispositivodel dispositivo

• Funciones (II)» Ocultar las diferencias en las unidades de información

tanto en los dispositivos de bloques como de caracteres

» Almacenar temporalmente los datos de los dispositivos (buffering)

• completar bloques, sincronizar, entrada de teclado...

» Asignar espacio libre en los dispositivos de bloques

» Gestionar el uso de los dispositivos dedicados• Aceptar o rechazar las peticiones (ej: OPEN)

» Tratar los errores

Page 13: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

13

Programas de usuarioProgramas de usuario

• Funciones de biblioteca» Realizar las llamadas al sistema:

count=read(file,buf,nbytes);

» Realizar además otras funciones: printf(“ %d ”, i );

• Programas completos fuera del núcleo» Sistema de spooling

– Ej: Impresora

• Demonio de impresión, directorio de spooling

Page 14: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

14

3. Discos3. Discos

• Ventaja del disco sobre la memoria para el almacenamiento

» Mayor capacidad de almacenamiento

» Precio por bit más bajo

» La información no se pierde

Page 15: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

15

Hardware del discoHardware del disco

• Pistas: círculos concéntricos• Se dividen en sectores

» Mismo nº de bytes

• Organizados en cilindrosNº de pistas del cilindro = cabezas apiladas verticalmente

• Unidad con n platos» 2n cabezas

» 2n pistas por cilindro

Pista

Sector

Page 16: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

16

Característica del dispositivoCaracterística del dispositivo

• Búsquedas solapadas» Mejoran el tiempo de acceso

» Búsquedas simultáneas en 2 o más unidades

» El controlador puede iniciar una búsqueda mientras que espera que se complete una búsqueda en otra unidad

» No se pueden realizar 2 lecturas o escrituras a la vez

Page 17: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

17

Programación del discoProgramación del disco

• Tiempo de lectura o escritura:

tiempo de búsqueda + latencia de rotación + tiempo de transferencia

• El tiempo de búsqueda es mayor que los demás tiempos

• Se intenta mejorar =>Algoritmos de planificación del brazo del disco

Page 18: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

18

FCFSFCFS

• Primero en llegar, primero en servirse

• El manejador acepta las peticiones de 1 en 1

• Sirve las peticiones en el orden de llegada

• No se puede mejorar el tiempo de búsqueda

Page 19: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

19

SSF (I)SSF (I)

• Prioridad a la búsqueda más corta

• tabla de peticiones indexada por nº de cilindro

Tabla de peticiones

Lista de peticiones

• 1 entrada por cilindro• Cada entrada apunta a una lista de peticiones

Page 20: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

20

SSF (II)SSF (II)

• Se mejora el tiempo de búsqueda tomando la solicitud al cilindro más cercano.

• Cilindro inicial => 11

• Llegan las peticiones 1, 36, 16, 34, 9, 121 3616 349 12

FCFS

SSF

10 35

20 18

25

3

TOTAL= 111

TOTAL= 61

137

15 33

2

Page 21: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

21

Problemas de SSFProblemas de SSF

• El brazo tiende a quedarse en el centro para discos sobrecargados

• Los extremos tienen que esperar a que no haya peticiones en el centro

• No se hace un servicio equitativo de las peticiones

Page 22: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

22

Algoritmo del ascensorAlgoritmo del ascensor

• Bit SUBIENDO/BAJANDO

• Límite superior: doble del nº de cilindros

• Variación: siempre sentido ascendente

1

2

8

4 18

27TOTAL= 60

1 3616 349 12

Page 23: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

23

Entrelazado (I)Entrelazado (I)

• Técnica que se utiliza para dar tiempo a transferir los datos del buffer interno a memoria

Disco Bufferinterno

Memoria

Datos Datos

Page 24: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

24

entrelazado (II)entrelazado (II)

4 0 0 0

1

1

1

2

2

2

3

3 3

4 4

5

5

5

6

6 67

77

Entrelazado simple Entrelazado doble Entrelazado triple

Factor de entrelazado:

Page 25: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

25

Otras optimizacionesOtras optimizaciones

• Optimización en la latencia de rotación» Enviar la petición del sector que pase antes bajo la cabeza de

L/E

• Copia de pistas completas» Se almacena la pista completa en un buffer intermedio del

manejador

» Complica el software

» No permite DMA para la información del buffer

» Algunos controladores tienen una memoria interna

• Búsquedas solapadas

Page 26: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

26

Tratamiento de erroresTratamiento de errores

• Errores de programación

• Errores transitorios en el código de control

• Errores permanentes en el código de control

• Errores de búsqueda

• Errores en el controlador

Page 27: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

27

Errores de programaciónErrores de programación

• El controlador recibe órdenes del manejador» mover el brazo a un cilindro

» leer un sector

» escribir los datos de una posición de memoria

• Lo parámetros pueden no ser coherentes

• Se debe a que el programa falla

• El controlador debe devolver un código de error

Page 28: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

28

Errores transitorios Errores transitorios

• Los datos no son correctos

• Por ejemplo debido a la existencia de polvo en las cabezas

• Se puede eliminar el error repitiendo la operación

Page 29: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

29

Errores permanentesErrores permanentes

• Marcar bloques como inservibles» Elaboración de un fichero con la lista de bloques

inservibles• El asignador nunca utilizará estos bloques• Las copias de seguridad se deben hacer fichero a

fichero, evitando leer el fichero de bloques defectuosos

» Reserva de pistas • Se localizan los bloques inservibles al formatear• Se sustituyen las pistas de reserva por las dañadas • Se utiliza una tabla para hacer la correspondencia

Page 30: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

30

Errores de búsquedaErrores de búsqueda

• Errores mecánicos

• El brazo se posiciona en un cilindro que no se pidió

• RECALIBRATE: Desplaza el brazo hasta el final y considera el cilindro 0

• Llamar al técnico

Page 31: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

31

Errores en el controladorErrores en el controlador

• Variables, buffers, órdenes

• Secuencia de eventos que produzcan un error en el controlador

• Ej: el controlador no admite órdenes

• El manejador debe dar una orden para iniciar el controlador

Page 32: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

32

Discos RAMDiscos RAM

• Dispositivo de bloques

• Se utiliza una parte de la memoria principal

• La memoria se divide en bloques

• El manejador calcula la posición del bloque

• Acceso instantáneo

Memoria principal

Disco RAMBloque

Page 33: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

33

RelojesRelojes

• = Temporizadores

• Mantienen la fecha y la hora

• Sirve para controlar el tiempo que los procesos pueden estar ejecutandose

Page 34: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

34

Hardware del relojHardware del reloj

• 2 tipos– Se conectan a la red de potencia y generan una

interrupción con cada ciclo de red– Programables: se construyen con 3 elementos

• Para un reloj de 1MHz (1/10 Hz, 1 pulso por microsegundo) y registro de precarga de 16 bits, se pueden generar interrupciones desde cada microsegundo hasta 65535 microsegundos

Oscilador de cuarzo

Contador

Registro de precarga-6

Page 35: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

35

Programación del relojProgramación del reloj

• El hardware genera interrupciones a intervalos regulares y conocidos

• El manejador debe realizar todas las funciones

Page 36: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

36

Actualizar fecha y hora (I)Actualizar fecha y hora (I)

• En ordenadores antiguos no había reloj de tiempo real

• La fecha se da al arrancar. Se traduce a un nº de pulsos desde el 1 de Enero de 1970.

• Con cada pulso de reloj se incrementa un contador

• Problema: se puede desbordar

Page 37: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

37

Actualizar fecha y hora (II)Actualizar fecha y hora (II)

• Solución:» Utilizar un contador más grande (Ej: 64 bits)

» Se guarda en segundos con un contador auxiliar para contar el nº de pulsos del segundo actual

» Se guarda en segundos el instante de arranque del sistema y un contador para los pulsos desde el momento de arranque.

64 bits

Hora y fecha en segundos

Nº de pulsos del segundo actual

2 = más de 136 años32

Page 38: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

38

Controlar el tiempo de ejecuciónControlar el tiempo de ejecución

• Al cargar un proceso» Se actualiza un contador con los pulsos del cuanto

asignado a un proceso

• Con cada interrupción de reloj» Se decrementa este contador

• Cuando llega a 0» Se llama al planificador

Page 39: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

39

TemporizadoresTemporizadores

• Para avisar a los procesos (señal, mensaje...)

• Ej: Aplicación que retransmite paquetes transcurrido un cierto intervalo de tiempo si no se ha confirmado

• Tabla con tiempos de aviso

• Lista enlazada

Siguiente

3 4 6 2 1Cabecerade lista

3 Siguiente señal

Page 40: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

40

Temporizadores de guardaTemporizadores de guarda

• Temporizadores del propio sistema

• Se suelen utilizar en los manejadores de dispositivos

» Esperar 250 mls después de arrancar el motor de una unidad

» En vez de generar una señal, el manejador llama al procedimiento indicado

Page 41: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

41

Otras funcionesOtras funciones

• Medir tiempos de ejecución

• Realizar estadísticas

Page 42: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

42

5. Terminales5. Terminales

• Muchos tipos diferentes de terminales

• El manejador se encarga de ocultar las diferencias

• De esta forma, la parte del S.O. independiente del terminal sirve para cualquier terminal

Page 43: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

43

Hardware del terminalHardware del terminal

• Desde el punto de vista del S.O. hay dos tipos diferentes de terminales

» Terminales con interfaz RS-232

» Terminales con interfaz por memoria (mapped-memory terminals)

Page 44: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

44

Terminales con interfaz RS-232Terminales con interfaz RS-232

• Utilizan una línea serie para comunicarse con el ordenado

• UART : Conversor de paralelo a serie y de serie a paralelo

Procesador MemoriaTarjeta

UART UART

Terminal

Línea de recepción

Línea de transmisión

Page 45: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

45

Terminales con interfaz RS-232Terminales con interfaz RS-232

• El manejador escribe el carácter en la interfaz y se bloquea

• Es almacenado temporalmente por la UART para luego mandarlo bit a bit

• El manejador se desbloquea cuando llega la interrupción de la interfaz

Ventaja: cualquier ordenador trae una interfaz RS-232Desventaja: son lentos (ej: 9600 bits/s )

Page 46: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

46

Categorías de terminales RS-232Categorías de terminales RS-232

• Teletipos-impresoras» Imprimen los caracteres enviados en papel

• Teletipos de cristal (tty)» Mandan el carácter a un CRT

• Terminales inteligentes» Tienen procesador y memoria» Entienden ciertas teclas de control» Se puede hacer que el cursor se mueva por la pantalla,

escribir texto en mitad de la pantalla ...

Page 47: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

47

Terminales con interfaz por Terminales con interfaz por memoriamemoria

• Son parte del mismo ordenador• La comunicación se hace a través de la RAM de

vídeo que es parte del espacio de direcciones• El controlador lee bytes de la memoria RAM y envía

las señales al monitor para que imprima los caracteres • Tipos• El teclado es independiente del monitor• El hardware proporciona un nº de tecla, el manejador

hace la correspondencia

Terminales de despliegue de caracteresTerminales de mapas de bits

Page 48: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

48

Terminales de despliegue de Terminales de despliegue de caracterescaracteres

• El controlador almacena en ROM los patrones de bits de cada carácter

• El carácter que el procesador escribe en la memoria RAM de vídeo aparece en la pantalla transcurrido un cierto tiempo

• Un byte asociado a cada carácter

• Son rápidos

• Imagen de 25x80 => 4000 bytes

Page 49: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

49

Terminales de mapas de bitsTerminales de mapas de bits

• Considera la pantalla como una matriz de elementos de imagen llamados pixels

200x320 480x640 800x1024

• Cada pixel controlado por un bit de la RAM

• Permite crear varios patrones para las letras

• Planos de bits para los colores ( n planos => 2 colores )

• Requieren mucha memoria

n

1024x1024 => 128 Kbytes

con 4 bits por pixel => 0,5 Mbytes

Page 50: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

50

Programación del terminalProgramación del terminal

• Software de entrada

• Software de salida

Page 51: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

51

Software de entrada (I)Software de entrada (I)

• El manejador obtiene los caracteres de teclado

• Dos modos de funcionamiento» Modo puro: secuencia ASCII » Modo elaborado: edición dentro de la línea

• Tablas de correspondencia

• Buffer para guardar líneas

• ioctl : llamada al sistema para controlar los parámetros del terminal

Page 52: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

52

Software de entrada (II)Software de entrada (II)

• Funciones» Eco en pantalla» Truncar la línea» Tabuladores» Conversión de intro» Borrado de caracteres» Borrado de líneas» Secuencias de escape» CTRL-S CTRL-Q» DEL BREAK CTRL-D

Page 53: 0 TEMA 7: Gestión de Entrada/Salida Introducción Software de E/S Discos Relojes Terminales

53

Software de salidaSoftware de salida

• En terminales de interfaz RS-232» El manejador copia un carácter del buffer de salida

y se bloquea hasta que llega la interrupción

• En terminales de interfaz por memoria» los caracteres se copian en la RAM de vídeo

» posición en la RAM de vídeo

» scroll de pantalla

» Posicionamiento del cursor

» Inserción de texto