como é que o tempo function () contar o tempo atual e mesmo quando o computador foi desligado anteriormente?

StackOverflow https://stackoverflow.com/questions/973524

  •  13-09-2019
  •  | 
  •  

Pergunta

como podemos trabalhar em negócios temporizador com milissegundos (0,001) como poderíamos dividir segunda como queremos ?? como nós poderíamos lidar com a própria ???

segunda
Foi útil?

Solução

http://computer.howstuffworks.com/question319.htm

Em seu computador (bem como outras aparelhos), os poderes da bateria de um chip chamado de chip relógio de tempo real (RTC). O RTC é essencialmente um relógio de quartzo que corre o tempo todo, ou não há energia no computador. a bateria poderes este relógio. Quando o computador botas para cima, que faz parte do processo é a consultar o RTC para obter a hora correta e data. Um pequeno relógio de quartzo como isso pode funcionar por cinco a sete anos fora de uma pequena bateria. Então é altura de substituir a bateria.

Outras dicas

Seu PC vai ter um relógio de hardware, alimentado por uma bateria para que ele mantém assinalando mesmo quando o computador está desligado. O PC sabe o quão rápido seus funcionamentos do relógio, para que ele possa determinar quando um segundo passa.

Inicialmente, o PC não sabe qual é a hora (ou seja, ele só começa a contar a partir de zero), por isso deve ser dito o que o tempo atual é - isso pode ser definido na noreferrer configurações da BIOS e é armazenado no CMOS , ou podem ser obtidos através da Internet (por exemplo, através da sincronização com os relógios em NIST ).

Alguns repescagem, e mais algumas informações:

1) O computador lê o-Time-Clock real durante a inicialização, e usos que definir é o relógio interno

2) A partir de então, os usos do computador que do relógio da CPU única -. Ele não voltar a ler o RTC (normalmente)

3) O relógio interno do computador está sujeita à deriva -., Devido à instabilidade térmica, oscilações de energia, imprecisões em encontrar um divisor exato para segundos, latência de interrupção, raios cósmicos, e a fase da lua

4) A magnitude da deriva relógio poderia ser da ordem de segundos por dia (dezenas ou centenas de segundos por mês).

5) A maioria dos computadores são capazes de se conectar a um servidor de tempo (através da internet) para reiniciar periodicamente o seu relógio.

6) Usando um servidor de tempo pode aumentar a precisão para dentro de dezenas de milissegundos (normalmente). Meu computador atualiza a cada 15 minutos.

Computadores saber a hora, porque, como você, eles têm um relógio digital de eles olham para de vez em quando.

Quando você começa um novo computador ou mudança para um novo país que você pode definir o relógio, ou o seu computador pode pedir a internet o que o tempo é, o que ajuda a pará-lo formulário em execução lenta ou rápida.

Como um usuário do computador, você pode pedir a hora atual, ou você pode pedir que o computador funcione como um despertador. Alguns computadores pode até mesmo transformar-se em um momento particular, para voltar-se para cima ou para acordá-lo com uma música favorita.

Internamente, o computador é capaz de dizer o tempo em milissegundos, microssegundos ou às vezes até nanossegundos. No entanto, isso não é inteiramente precisa, e dois computadores ao lado do outro que têm idéias diferentes sobre o tempo em nanossegundos. Mas ele ainda pode ser útil.

O computador pode definir um alarme para alguns milissegundos no futuro, e normalmente faz isso para que ele saiba quando parar de pensar sobre o seu programa de e-mail e passar algum tempo pensando sobre o seu navegador web. Em seguida, ele define outro alarme para que ele saiba que voltar para o seu e-mail de alguns milissegundos mais tarde.

Como um programador pode usar esta facilidade também, por exemplo, você pode definir um limite de tempo em um nível em um jogo, usando um 'timer'. Ou você pode usar um temporizador para dizer quando você deve colocar o seguinte quadro da animação no visor -. Talvez 25 tempo de um segundo (ou seja, a cada 40 milissegundos)

Para responder à questão principal, o relógio da BIOS tem uma bateria na placa-mãe, como a resposta de Jian diz. Isso mantém o tempo quando o aparelho está desligado.

Para responder o que eu penso sua segunda pergunta é, você pode obter a segunda do valor de milissegundos, fazendo uma divisão em 1000, assim:

second = (int) (milliseconds / 1000);

Se você está perguntando como somos capazes de chegar a tempo com essa precisão, a olhar para a resposta de Esteban ... vibra de cristal de quartzo em um determinado período de tempo, digamos 0,00001 segundos. Nós apenas fazer um circuito que conta as vibrações. Quando atingimos 100000 vibrações, declaramos que um segundo passou e atualizar o relógio.

Podemos obter alguma precisão, contando as vibrações desta forma ... nenhum isso é precisão maior do que o período de vibração do cristal estamos usando.

A placa-mãe tem um relógio que carrapatos. Cada carrapato representa uma unidade de tempo.

Para ser mais preciso, o relógio é normalmente um cristal de quartzo que oscila a uma dada frequência; algumas freqüências de clock comum CPU são 33,33 e 40 MHz.

tempo

Absolute é archaically medida utilizando um contador de 32 bits de segundos a partir de 1970. Isto pode causar o "problema 2038," onde ele simplesmente transborda. Daí as APIs de tempo de 64 bits usados ??em plataformas Windows e Unix modernos (isso inclui MacOS baseados em BSD).

Muitas vezes um usuário de PC está interessado em intervalos de tempo, em vez do tempo absoluto desde um evento profunda ocorreu. Uma implementação comum de um computador tem coisas chamadas temporizadores que permitem apenas que isso aconteça. Estes temporizadores pode até ser executado quando o PC não é com o propósito de hardware de votação para o estado de despertar, alternando os modos de repouso ou saindo do sono. docs processador da Intel entrar em detalhes incríveis sobre estes.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top