RELÓGIO (TIMER)

•	ALIMENTADO EM 110 OU 220 V, CAUSANDO UMA INTERRUPÇÃO A CADA CICLO DA VOLTAGEM

•	CONSTITUÍDO POR UM OSCILADOR DE CRISTAL, UM CONTADOR E UM REGISTRADOR

UM CRISTAL DE QUARTZO PODE GERAR UM SINAL PERIÓDICO (ENTRE 5 A 100 MHz)
ESTE SINAL ALIMENTA O CONTADOR DE MANEIRA REGRESSIVA
QUANDO ZERADO O CONTADOR GERA UMA INTERRUPÇÃO

O REGISTRADOR SERVE PARA INICIALIZAR O CONTADOR E ISTO PODE ACONTECER DE MANEIRA:

EXPLÍCITA           - MODO ONE-SHOT

AUTOMÁTICA     - MODO SQUARE WAVE

CHIPS CONTÊM 2 OU 3 RELÓGIOS INDEPENDENTES E PODEM SER COMPLEXOS:

•	PERMITEM INIBIÇÃO PROGRAMADA DE INTERRUPÇÃO

•	AO INVÉS DE INTERRUPÇÃO TRABALHAM COM “POLLING”

•	TRABALHAM COM CONTAGEM PROGRESSIVA E, 

•	PARA NÃO PERDER O VALOR QUANDO O COMPUTADOR ESTÁ DESLIGADO, ESTE É ARMAZENADO EM REGISTRADORES ESPECIAIS ALIMENTADOS POR BATERIA (PILHA)

O RELÓGIO GERA INTERRUPÇÃO EM INTERVALOS FIXOS

•	OS DEMAIS ASPECTOS ENVOLVENDO TEMPO DEVEM SER TRATADOS PELO SOFTWARE (DRIVER)

•	MANUTENÇÃO DA DATA E HORA
 
NÃO PODEM SER MANTIDAS APENAS EM UM REGISTRADOR QUE É LIMITADO - UM REGISTRADOR DE 16 BITS SENDO ATUALIZADO A INTERRUPÇÕES DE 1 s PODE CONTABILIZAR ATÉ 65,535 ms; SOLUÇÕES :
•	AUMENTAR O REGISTRADOR (MAIS CARO, ADIA O PROBLEMA)
•	MANTER O TEMPO EM SEGUNDOS (ADIA O PROBLEMA)
•	CONTAGEM RELATIVA À HORA E DATA FORNECIDAS

•	PREVENÇÃO DA EXECUÇÃO DE PROCESSOS, ALÉM DO ESTABELECIDO (DEADLINE)

•	CONTABILIDADE DE USO DA CPU

RELÓGIO PRÓPRIO, SALVO QUANDO DE INTERRUPÇÕES 

CONTAGEM PROGRESSIVA EM ÁREA DO PCB

COM INTERRUPÇÕES É DIFÍCIL FAZER CONTABILIDADE

•	COLETA PERIÓDICA DE DADOS (ESTATÍSTICAS, MONITORAÇÃO, PERFIS)

•	TIMERS PARA O S.O. E PROGRAMAS
 
TEMPO DE RESPOSTA PARA O FIM OU INÍCIO DE UM COMANDO (NA REDE, EM PERIFÉRICOS, ETC.)

CAI - APÓS UM TEMPO A RESPOSTA É DADA

NOTAR QUE APÓS UMA INTERRUPÇÃO DE RELÓGIO, O DRIVER TEM VÁRIAS TAREFAS A REALIZAR:

•	INCREMENTAR OS REGISTRADORES DE DATA E HORA

•	CHECAR A QUANTIDADE DE TEMPO E VERIFICAR SE CHEGOU A ZERO

•	CONTABILIZAÇÃO DE USO DE CPU

•	DECREMENTAR CONTADORES DE ALARME

•	CHAMAR ROTINAS ESPECÍFICAS PARA TRATAR COISAS COMO

PARAR UM MOTOR DE UM DISQUETE, 

ESPERAR A QUE A VELOCIDADE APROPRIADA DE UM MOTOR SEJA ALCANÇADA

ETC.

•	ETC.

ESSAS OPERAÇÕES PODEM CHEGAR A SER EXECUTADAS VÁRIAS VEZES POR SEGUNDO

Exercícios

1.	Suponha que um clock funciona decrementando seu contador na freqüência de 5Mhz (cada hz equivale a 1/seg). Qual o valor de um “tick” desse relógio, se este opera em modo automático (square-wave) com o contador projetado para ser inicializado com o valor 100 ?
2.	Qual deve ser o modo de operação de um clock que deve ser usado para controle de um escalonamento baseado em time-slice ? Resgate as estratégias de escalonamento antes de responder.
3.	Um relógio real em um SO é um contador de “ticks” gerados por um clock. Supondo que esse clock gere uma interrupção a cada micro-segundo. Se esse relógio marca a hora desde 01/01/70 em unidades de segundos e mili-segundos, explicar como um SO consegue mantê-lo atualizado.
4.	Explicar a causa do "bug do milênio", aquele problema em que na passagem de 1999 para o ano 2000, várias aplicações poderiam ter sua lógica afetada. 
5.	Haverá a possibilidade de um problema similar ao "bug do milênio" vir a se repetir com as mesmas aplicações que foram afetadas ?