entrada / salida. relojes y terminalesalram/so/clase18.pdf · pero no controlan ningun dispositivo...

29
Entrada / Salida. Relojes y terminales Dr. Alonso Ramírez Manzanares 4-Nov-2010

Upload: others

Post on 16-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Entrada / Salida.Relojes y terminales

Dr. Alonso Ramírez Manzanares4-Nov-2010

Relojes

Tambien conocidos como timers o temporizadores.

Son esenciales en sistemas de tiempo compartido.

El software de reloj es un manejador de dispositivo.

Hardware de relojLos relojes simples causan una interrupción a 50 o 60 hz, tomandolo de los ciclos de la corriente alterna, por ejemplo.

Los relojes mas sofisticados se componen de un cristal oscilador, un contador y un registro contador de retención.

Hardware de reloj

Un cristal de cuarzo, bajo una tensión electrica genera ciclos de alta presición en el rango de 5 a 100 Mhz.

La señal se introduce para decrementar un contador a cero, momento en el cual se genera una interrupción.

Hardware de relojLos relojes programables tienen básicamente 2 modos de programación:

Modo de un disparo. Una vez que se llega a cero y se genera la interrupción, el reloj se para y se queda detenido hasta que explicitamente se reinicia por software.

Modo de señal cuadrada. Una vez que se llega a cero y se genera la interrupción, el valor del registro de retención se copia de nuevo al contador y el proceso se repite de manera infinita. Esto genera los bien conocidos ticks-de-reloj.

Hardware de reloj

Con los relojes programables, la frecuencia de interrupción se controla por software. Las variables son la frecuencia del cristal y el tamaño en bits del registro contador.

¿Un ejemplo?

Hardware de reloj

El reloj de tiempo de la CPU.

Se usa una batería para almacenar la hora de un reloj de respaldo.

Cuando ya no hay batería (el hardware indica esto) se pide la hora al usuario (también se puede obtener por red).

Usualmente la hora se cuenta como el número de ticks desde una fecha en particular, mucho tiempo fué desde las 12 am del 1º de Enero de 1970.

Software de relojLa tareas de este software son (podemos tener muchos relojes virtuales con un solo reloj físico):

Tener la hora del dia

Evitar que los procesos se ejecuten por periodos más largos de los permitidos (se usan contadores temporales y se guardan valores en tablas de procesos).

Contar el uso del CPU

Manejar el sistema de llamadas de alarma usado por los procesos.

Proveer watchdog-timers

Poder hacer estadísticas de como se usan los procesos.

Software de reloj, estrategias para sortear el overflow al calcular la hora

un contador de ticks de 32 bits es muy pequeño

Software de reloj, Contabilizar el tiempo de un

procesoEl planificador inicia un contador con el valor del cuanto de ese proceso expresado en ticks.

En cada interrupción de reloj se decrementa.

Cuando llega a cero el controlador de reloj llama al planificador de procesos.

Software de reloj,Contabilizar uso de CPU

Se inicia un temporizador cada vez que se incia un proceso.

Cuando se detiene el proceso se ve el tiempo transcurrido.

Cada vez que se lleva a cabo una interrupción, este temporizador debe de guardarse y reestablecerse después. Pero esto es costoso y casi nunca se usa.

Software de reloj,Otras aplicaciones

Generar muchas alarmas. Por ejemplo para manejo reintentos en paquetes de datos en red.

Solo se tiene un reloj, y necesitamos simular que tenemos muchos temporizadores.

Software de reloj

Generación de muchas señales con una cola

Notese que todas las operaciones de reloj deben de implementarse de manera que sean muy rapidas: el manejador de int. actua sobre variables globales y solo llama a la tarea de reloj cuando se vence

una alarma o se acaba el cuanto

Software de reloj

Los watchdogs sirven para poder contar delays en el manejo de dispositivos de entrada salida.

La diferencia es que en vez de generar un señal, se hace la llamada, el manejador de reloj llama a un procedimiento que fué indicado por el que hizo la requisición.

No necesita que se llamen interrupciones y señales en programas del kenel.

Software de relojEstadísticas

Software de relojEstadísticas

Software de relojen MINIX

Watchdogs

Manda un mensaje, se necesita que el proceso receptor haga un receive, se usa en el manejador de red para recibir datos o recibir un mensaje de expiración.

La tarea de reloj acepta estos mensajesEl mensaje cuando ha vencido una alarma o el proceso en curso ha agotado su quantum

Diagrama de la tarea reloj

Terminales

Normalmente se tienen 3 tipos de terminales

Terminales mapeadas en memoria (teclado y pantalla)

Terminales conectadas por RS-232 (modem)

Conectadas por red.

Terminales

Terminales mapeadas en memoria

Aqui se guardan los mapas de caracteres en ROM

Aqui se guarda el estado actual de la pantalla.

El teclado tiene inerfase serial o paralelo

Terminales mapeadas en memoria

En las terminales de caracteres se tiene informacion caracter por caracter

En las terminales de mapas de bits se tiene información pixel por pixel. En color tenemos 8 bits por canal de color RGB. ¿cuantos megas necesitamos para almacenar una pantalla de resolución 1024x768?

Terminales mapeadas en memoria

Con respecto al teclado, tiene su propio chip manejador en la tarjeta madre.

se genera una interrupción cuando se presiona cualquier tecla y tambien cuando se suelta.

El hardware proporciona el numero de tecla, no el codigo ASCII ¿para que sirve esto?

Terminales RS-232

¿Han visto en las películas las que escriben a impresora?

Terminales XContienen un CPU, megabytes de memoria, un teclado y un mouse.

Usualmente se conectan por ethernet.

Un terminal X es una computadora que ejecuta software X.

El software en la terminal X que acepta entradas de mouse y teclado y comandos de una computadora remota es el X-Server.

Se comunica por medio de red con clientes X que corren en algún host remoto (continua...)

Terminales X

Un cliente-X es el manejador de ventanas, el cual controla creación, borrado y movimiento de ventanas. Le

dice al server X que hacer por medio de comandos.

La tarea de sistema de MINIX

Comunica el memory-manager y el file-system con el kernel.

Ejemplo: un fork se maneja por el MM pero el kernel debe de saber que hay un nuevo proceso.

La tarea de sistema de MINIX

ST se parece a otras tareas que hemos visto, pero no controlan ningun dispositivo de entrada salida.

Acepta 19 mensajes de la siguiente forma: Acepta el mensaje, despacha el correpondiente procedimiento de servicio y manda una respuesta.

La tarea de sistema de MINIX, mensajes.