Sei sulla pagina 1di 22

Sistemas Operativos

Time Management

2018

Xavier Bonnaire
xavier.bonnaire@inf.utfsm.cl

Departamento de Informática
Universidad Técnica Federico Santa María
Valparaíso, Chile

Última versión: 26 de marzo de 2018


Temario
Sistemas Operativos

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

Introducción Lista FIFO de interrupciones


Interrupciones 5 INTR ordenadas por Prioridades
Registro Reloj Masking (IRQ Number)

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

FETCH DECODE EXECUTE WRITE BACK

PC+4

@intr CALL @intr


Departamento de
Informática
Universidad Técnica INTR
Federico Santa María
Valparaíso, Chile
Vector Table

Ú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

Xavier Bonnaire Funcionamiento


Introducción I El sistema inicializa el registro con el valor RTMAX
Interrupciones
Registro Reloj
I El registro se decrementa a cada impulso del cuarzo
Reloj y Temporizador
El Temporizador 10
I Cuando llega al valor 0, genera la interrupción IRQ 0
Interrupción del Reloj
Hora Universal
Ejemplo de Linux
NTP
I Para los procesadores rápido Linux usa una interrupcíon
Timers List

del reloj a una frecuencia de 1000 veces por segundos


I Ed decir cada 0,001s = 1ms = 10−3 s
I Suponga que el cuarzo del procesador es de 3Ghz
I Es decir una impulsión cada 3 × 10−9 s
I Para que el temporizador interrumpa el procesador 1000
veces por segundos hay que inicializarlo con el valor
Departamento de
Informática
10−3
= 106
Universidad Técnica
Federico Santa María RTMAX =
Valparaíso, Chile
10−9
Última versión
26 de marzo de 2018 21
Time Management
El Registro Temporizador (Watchdog)

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

Xavier Bonnaire Se ejecuta a cada interrupción del temporizador


Introducción I Sirve para ejecutar varias rutinas de gestión del sistema
Interrupciones
Registro Reloj
I Permite recuperar la mano si una tarea no hace ninguna
Reloj y Temporizador
E/S
El Temporizador
Interrupción del Reloj
12 I Gestión del quantum de tiempo
Hora Universal
NTP
I Mantiene la hora universal
Timers List
I Actualiza las prioridades de las tareas
I Hace la contabilidad
I Tiempo de ejecución
I Tiempo de respuesta
I Tiempo de espera
I El tiempo entre dos interrupciones del reloj se llama un
TICK
Departamento de
Informática
Universidad Técnica
I Linux mantiene también un contador llamado JIFFIES
Federico Santa María
Valparaíso, Chile I Tiempo que pasó desde que se inicio el sistema
Última versión
I La cantidad de JIFFIES se incrementa cada TICK
26 de marzo de 2018 21
Time Management
La interrupción del reloj

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

Xavier Bonnaire INTR

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

Each Tick Each K Ticks Each N Ticks

Update Update Task CPU


Real Clock Priorities Preemption

Update Update Task


Scheduling
Timers List Stats
Departamento de
Informática
Universidad Técnica
Federico Santa María
Valparaíso, Chile
Task Switch
Última versión
26 de marzo de 2018 21
Time Management
La interrupción del reloj

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

Interrupciones I Entre dos interrupciones paso un tiempo de un TICK


Registro Reloj

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:

Hora = Hora + TICK − RTempo


Departamento de
Informática
Universidad Técnica
I RTempo se vuelve negativo después de la interrupción
Federico Santa María
Valparaíso, Chile I Su valor absoluto corresponde casi al tiempo de ejecución
Última versión de la rutina de interrupción
26 de marzo de 2018 21
Time Management
La interrupción del reloj - Hora Universal

Sistemas Operativos

Xavier Bonnaire Sin embargo


Introducción

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

Xavier Bonnaire Lista de Plazos


Introducción

Interrupciones La lista de plazos (o Timers List) contiene una lista de


Registro Reloj
cosas que el sistema tiene que hacer después de un
Reloj y Temporizador
El Temporizador
tiempo t o a una hora fija h
Interrupción del Reloj
Hora Universal
I Despertar una tarea
NTP 20
Timers List I Ejecutar una tarea de forma recurrente (CronTab)
I Etc...

Solución simple
I Usar una lista enlazada de los plazos

I A cada interrupción del reloj el sistema busca los plazos


vencidos en la lista
Departamento de
Informática
I Costo en O(N) con N plazos
Universidad Técnica
Federico Santa María
Valparaíso, Chile
I Para todos los plazos vencidos cambia el estado de la
Última versión tarea de BLOQUEADA a LISTA
26 de marzo de 2018 21
Time Management
Lista de plazos - Timers List

Sistemas Operativos

Xavier Bonnaire
Solución eficiente
I Mantener una lista con plazos relativos
Introducción

Interrupciones Lista de Plazos


Registro Reloj (Timers List)
Reloj y Temporizador
El Temporizador
Interrupción del Reloj
Tarea A Plazo Real
Plazo Real Tarea A Tarea D 20 ms 20 ms
Hora Universal
20 ms 20 ms 35 ms
NTP
Timers List 21
Tarea B Plazo Real
Plazo Real Tarea B 10 ms 30 ms
30 ms 10 ms

Tarea D Plazo Real


Plazo Real Tarea C 5 ms 35 ms
47 ms 17 ms

Tarea C Plazo Real


12 ms 47 ms

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

Potrebbero piacerti anche