Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Time Management
2018
Xavier Bonnaire
xavier.bonnaire@inf.utfsm.cl
Departamento de Informática
Universidad Técnica Federico Santa María
Valparaíso, Chile
Xavier Bonnaire
Introducción
Interrupciones
Registro Reloj
Introducción
Reloj y Temporizador
El Temporizador
Interrupción del Reloj Interrupciones
Hora Universal
NTP Registro Reloj
Timers List
Reloj y Temporizador
El Temporizador
Interrupción del Reloj
Hora Universal
NTP
Timers List
Departamento de
Informática
Universidad Técnica
Federico Santa María
Valparaíso, Chile
Última versión
26 de marzo de 2018 21
Time Management
Introducción
Sistemas Operativos
Xavier Bonnaire
Introducción 2
Interrupciones
¿Para qué sirve la gestión del tiempo?
Registro Reloj I Mantener la hora universal
Reloj y Temporizador
El Temporizador
I Gestión de eventos
Interrupción del Reloj
Hora Universal
I Para medir
NTP
Timers List
I El tiempo de ejecución de una tarea
I Para usar timers (despertar una tarea después de un
tiempo t)
I Llamada de sistema sleep()
I Para la adquisición de datos
I A frecuencia fija (audio ripping, mp3, ...)
I Para los sistemas en tiempo real
Departamento de
I Reaccionar a un evento antes de un tiempo máximo t
Informática
Universidad Técnica
Federico Santa María
Valparaíso, Chile
Última versión
26 de marzo de 2018 21
Time Management
Interrupciones
Sistemas Operativos
Xavier Bonnaire
Introducción
Interrupciones 3
Registro Reloj
Interrupción
Reloj y Temporizador
El Temporizador
Interrupción del Reloj
Hora Universal
I Una interrupción es una señal para el procesador
NTP emitido por hardware o software que indica un
Timers List
evento que necesita una atención inmediata
I Una interrupción alerta al procesador de una
condición de alta prioridad que requiere la
interrupción del código actual que el procesador
está ejecutando
Departamento de
Informática
Universidad Técnica
Federico Santa María
Valparaíso, Chile
Última versión
26 de marzo de 2018 21
Time Management
Interrupciones
Sistemas Operativos
Xavier Bonnaire
Introducción
Interrupciones 4
Registro Reloj
Excepción
Reloj y Temporizador
El Temporizador I Una excepción es un evento anormal o sin
Interrupción del Reloj
Hora Universal precedentes que ocurre durante la ejecución de un
NTP
Timers List programa
I Es un error durante la ejecución, un resultado o un
evento no deseado que afecta el flujo normal del
programa
I División por 0
I Segmentation Fault
I Overflow,...
Departamento de
Informática
Universidad Técnica
Federico Santa María
Valparaíso, Chile
Última versión
26 de marzo de 2018 21
Time Management
Interrupciones - Funcionamiento
Sistemas Operativos
Xavier Bonnaire
Reloj y Temporizador
El Temporizador 1 22 INTR 1 22
Interrupción del Reloj Temporizador 2 21 2 21
INTR 3 20 3 20
Hora Universal IRQ 0 IRQ
4 19 4 CPU 19
NTP Controler
5 18 5 18
Teclado
IRQ Number
Timers List
6 17 6 17
IRQ 1 7 16 7 16
8 15 8 15
Tarjeta Video 9 14 9 14
IRQ 9 10 13 10 13
11 12 11 12
Tarjeta Audio
IRQ 5
IRQ Number
ATA HDD
IRQ 14,15 IRQ Number
Departamento de INTR
Informática Vector Table
Universidad Técnica
Federico Santa María
Valparaíso, Chile
Última versión
26 de marzo de 2018 21
Time Management
Interrupciones - Funcionamiento
Sistemas Operativos
Xavier Bonnaire
1 22
Introducción INTR 2 21
Interrupciones 6 3 20
4 CPU 19
Registro Reloj
5 18
Reloj y Temporizador
¿Hay Registro 6 17
El Temporizador
INTR? PC 7 16
Interrupción del Reloj 8 15
Hora Universal 9 14
NTP PC 10 13
Timers List 11 12
No
YES
PC+4
Última versión
26 de marzo de 2018 21
Time Management
Interrupciones - Funcionamiento
Sistemas Operativos
Xavier Bonnaire
Introducción
Interrupciones 7
INTR
Registro Reloj INTR
INTR NUMBER Vector Table
Reloj y Temporizador
El Temporizador
Interrupción del Reloj
Hora Universal
NTP
Timers List MOV eax, ebx JUMP PUSH eax EAX
CALL @intr
INC eax MOV eax, [200] PC
PC
(FETCH) CMP eax, 0 PUSH PC ... value
JNZ 100 ...
Pila de ejecución
(STACK)
PC
EAX
value
POP EAX PC
Pila de ejecución RET value
(STACK)
Pila de ejecución
Departamento de POP PC (STACK)
Informática
Universidad Técnica
Federico Santa María
Valparaíso, Chile
Última versión
26 de marzo de 2018 21
Time Management
Relojes y Temporizadores
Sistemas Operativos
Xavier Bonnaire
Introducción
Interrupciones
I El Procesador
Registro Reloj I Esta controlado por una señal (reloj) con una frecuencia
Reloj y Temporizador 8 (clock signal)
El Temporizador
Interrupción del Reloj
I Generado por un cuarzo (ciclos)
Hora Universal
NTP
I El Registro Reloj
Timers List I Es un registro que se incrementa a cada pulso del cuarzo
I Generalmente un cuarzo diferente de cuarzo del procesador
I Permite mantener la hora universal
I Almacena impulsos durante varios años
I Tiene una pila para mantenerlo cuando el computador está
apagado
I Se puede leer en modo usuario o sistema (ver Interfaces y
Procesos)
Departamento de
Informática
I Se puede escribir solamente en modo sistema
Universidad Técnica
Federico Santa María
Valparaíso, Chile
Última versión
26 de marzo de 2018 21
Time Management
Relojes y Temporizadores
Sistemas Operativos
Xavier Bonnaire
Introducción
I El Registro Temporizador (Watchdog)
Interrupciones
I Se inicializa con un valor RTMAX
Registro Reloj I Se decrementa a cada impulso del cuarzo
Reloj y Temporizador I Cuando llega al valor 0, genera la interrupción IRQ 0
El Temporizador 9
Interrupción del Reloj
I Interrupción del Reloj (Clock Interrupt)
Hora Universal I La interrupción tiene la más alta prioridad
NTP
Timers List I Durante la interrupción el temporizador se vuelve negativo
(complemento 2)
I Usos del Temporizador
I Medir el tiempo
I Generar eventos
I Menejar el quantum de tiempo
I Gestión de Time Out
I Contabilizar el tiempo (ejecución, respuesta)
Departamento de
Informática I Gestión de cuotas de usuarios
Universidad Técnica
Federico Santa María
Valparaíso, Chile
I Sistemas en tiempo real
Última versión
26 de marzo de 2018 21
Time Management
El Registro Temporizador (Watchdog)
Sistemas Operativos
Sistemas Operativos
Xavier Bonnaire
Introducción
Interrupciones
Registro Reloj
Registro INTR
Reloj y Temporizador Inicialización Runtina de
Temporizador
El Temporizador 11 RTMAX Interrupción
Interrupción del Reloj
(RTempo)
Hora Universal
NTP
Timers List
Rtempo se Duración
vuelve negativo t
Inicialización Runtina de
RTMAX Interrupción
Departamento de
Informática
Universidad Técnica
Federico Santa María
Valparaíso, Chile
Última versión
26 de marzo de 2018 21
Time Management
La interrupción del reloj
Sistemas Operativos
Sistemas Operativos
Xavier Bonnaire
Introducción
En consecuencias
Interrupciones
Registro Reloj I La precisión mínima que tiene el sistema para el manejo
Reloj y Temporizador del tiempo es de un TICK
El Temporizador
Interrupción del Reloj 13 I El quantum de tiempo es un multiple del TICK
Hora Universal
NTP I En hardware más modernos (Core i3, i5, i7, etc...)
Timers List
I Linux maneja timers de alta resolución (del orden del
microsegundos): High Resolution Timers
I Linux mantiene la hora universal relativamente al tiempo
Epoch
I El tiempo Epoch corresponde al 01-01-1070
I Fecha cuando salió la primera versión de UNIX
I Funciones de la biblioteca de programación permite hacer
Departamento de
Informática
la translación hacia la hora actual.
Universidad Técnica
Federico Santa María
Valparaíso, Chile
Última versión
26 de marzo de 2018 21
Time Management
La interrupción del reloj
Sistemas Operativos
Introducción
Interrupciones In Linux:
Registro Reloj - 100 times per seconds for slow CPUs Clock
End of Quantum
Reloj y Temporizador - 1000 times per seconds for fast CPUs Interrupt
El Temporizador
Interrupción del Reloj 14
Hora Universal
NTP
Timers List
Sistemas Operativos
Xavier Bonnaire
Introducción
Interrupciones
Registro Reloj
Reloj y Temporizador
La rutina de gestión del reloj tiene que ser la más rápida
El Temporizador posible
Interrupción del Reloj 15
Hora Universal
NTP
I Para que el registro temporizador no pase de los valores
Timers List negativo a 0
I Para minimizar el costo (overhead)
I Un alto costo implica mucho tiempo pasado en gestión y
poco tiempo en ejecución de tareas
I Un bajo costo implica un mejor rendimiento del computador
I Menos tiempo ocioso
Departamento de
Informática
Universidad Técnica
Federico Santa María
Valparaíso, Chile
Última versión
26 de marzo de 2018 21
Time Management
La interrupción del reloj - Hora Universal
Sistemas Operativos
Xavier Bonnaire
La interrupción del reloj permite actualizar la hora
universal
Introducción
Reloj y Temporizador
I Entonces la actualización de la hora debería ser
El Temporizador Hora = Hora + TICK
Interrupción del Reloj
Hora Universal
NTP
16
Pero...
Timers List I La ejecución de la rutina del reloj toma un tiempo t
I Si no se toma en cuenta, la hora universal se atrasa de un
tiempo t a cada interrupción
I La actualización correcta al final de la rutina de
interrupción es:
Sistemas Operativos
Interrupciones
Registro Reloj
void clock_intr()
Reloj y Temporizador
I No se puede tomar en {
El Temporizador cuenta el tiempo de ...
Interrupción del Reloj
Hora Universal 17 modificación de la variable ...
NTP
Timers List
time
I No se puede tomar en time=time+TICK-RTempo;
cuenta el tiempo que toma return();
la instrucción return() }
Conclusión
I La hora universal se atrasa de algunos ns a cada
Departamento de
Informática
interrupción
Universidad Técnica
Federico Santa María I Lo que lleva a minutos de atraso después de días o
Valparaíso, Chile
semanas
Última versión
26 de marzo de 2018 21
Time Management
La interrupción del reloj - Hora Universal
Sistemas Operativos
Xavier Bonnaire
Introducción
Interrupciones
Registro Reloj
Reloj y Temporizador
El Temporizador
Solución
Interrupción del Reloj I Network Time Protocol
Hora Universal
NTP 18 I El computador se sincroniza usando un servidor de tiempo
Timers List
I El servidor mantiene la hora UTC
I El servidor tiene una tarjeta hardware que recibe la señal
de un reloj atómico
I EE.UU., Europa
I NTP maintiene un reloj de tipo Drifting Clock
Departamento de
Informática
Universidad Técnica
Federico Santa María
Valparaíso, Chile
Última versión
26 de marzo de 2018 21
Time Management
La interrupción del reloj - Hora Universal
Sistemas Operativos
Xavier Bonnaire
Introducción
Interrupciones
Registro Reloj
Reloj y Temporizador
El Temporizador
Interrupción del Reloj
Hora Universal
NTP 19
Timers List
Departamento de
Informática
Universidad Técnica
Federico Santa María
Valparaíso, Chile
Última versión
26 de marzo de 2018 21
Time Management
Lista de plazos - Timers List
Sistemas Operativos
Solución simple
I Usar una lista enlazada de los plazos
Sistemas Operativos
Xavier Bonnaire
Solución eficiente
I Mantener una lista con plazos relativos
Introducción
Departamento de
Informática
Universidad Técnica
Federico Santa María
Valparaíso, Chile I Búsqueda de plazos en O(1)
Última versión
26 de marzo de 2018
I Inserción de plazo en O(N) (poco frecuentes)
21