come fa la funzione time () raccontano l'ora corrente e anche quando il computer è stato spento in precedenza?

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

  •  13-09-2019
  •  | 
  •  

Domanda

come possiamo lavorare su offerte timer con millisecondi (0.001) come potremmo dividere secondo quanto vogliamo ?? come potremmo abbiamo a che fare con la seconda in sé ???

È stato utile?

Soluzione

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

  

Nel vostro computer (così come altri   gadget), La batteria alimenta un chip   chiamato il Real Time Clock (RTC) chip.   La RTC è essenzialmente un orologio al quarzo   che corre per tutto il tempo, anche se non   il computer è alimentato. La batteria   alimenta questo orologio. Quando il computer   parta, parte del processo è quello   interrogare il RTC per ottenere l'ora esatta   e la data. Un po 'come orologio al quarzo   questo potrebbe funzionare per cinque a sette anni   fuori di una piccola batteria. Allora è   il momento di sostituire la batteria.

Altri suggerimenti

Il PC avrà un orologio hardware , alimentato da una batteria in modo che mantiene ticchettio anche quando il computer è spento. Il PC sa quanto velocemente il suo orologio corre, in modo che possa determinare quando un secondo passa.

Inizialmente, il PC non sa che ora è (vale a dire che appena inizia a contare da zero), quindi deve essere detto che cosa l'ora corrente è - questo può essere impostato in impostazioni del BIOS e viene memorizzato nel CMOS , o possono essere ottenuti tramite Internet (ad esempio la sincronizzazione con gli orologi a NIST ).

Alcuni ricapitolare, e qualche informazione in più:

1) Il computer legge il Real-Time-Clock durante l'avvio, e lo utilizza per impostare è l'orologio interno

2) Da allora in poi, il computer utilizza è solo di clock della CPU -. Che non si ri-leggere il RTC (normalmente)

3) L'orologio interno del computer è soggetto alla deriva -. Causa di instabilità termica, fluttuazioni di potenza, imprecisioni nel trovare un divisore esatto per secondi, la latenza di interrupt, raggi cosmici, e la fase della luna

4) La grandezza della deriva dell'orologio potrebbe essere nell'ordine di secondi al giorno (decine o centinaia di secondi al mese).

5) maggior parte dei computer sono in grado di connettersi a un server di tempo (su internet) per reimpostare periodicamente il loro orologio.

6) Utilizzo di un server di tempo può aumentare la precisione entro decine di millisecondi (normalmente). Il mio computer aggiorna ogni 15 minuti.

Computer conoscere il tempo perché, come te, hanno un orologio digitale guardano di volta in volta.

Quando si riceve un nuovo computer o spostare in un nuovo paese è possibile impostare quell'orologio, o il computer può chiedere internet che ore sono, che aiuta a smettere si forma in esecuzione lenta o veloce.

Come utente del computer, è possibile chiedere l'ora corrente, oppure si può chiedere al computer di agire come una sveglia. Alcuni computer può anche trasformarsi in in un momento particolare, per eseguire il loro in su, o ti svegli con un brano preferito.

Internamente, il computer è in grado di raccontare il tempo in millisecondi, microsecondi o talvolta anche nanosecondi. Tuttavia, questo non è del tutto esatto, e due computer uno accanto all'altro avrebbe idee diverse circa il tempo in nanosecondi. Ma può ancora essere utile.

Il computer può impostare un allarme per pochi millisecondi in futuro, e comunemente lo fa in modo che sa quando smettere di pensare al tuo programma di posta elettronica e passare un po 'di tempo a pensare al tuo browser web. Poi imposta un altro allarme in modo che sa di andare di nuovo al vostro e-mail pochi millisecondi più tardi.

Come programmatore è possibile utilizzare questo strumento anche, ad esempio, è possibile impostare un limite di tempo su un livello in un gioco, utilizzando un 'timer'. Oppure si potrebbe utilizzare un timer per dire quando si dovrebbe mettere il fotogramma successivo dell'animazione sul display -. Forse il 25 il tempo di un secondo (vale a dire ogni 40 millisecondi)

Per rispondere alla domanda principale, l'orologio del BIOS dispone di una batteria sulla scheda madre, come la risposta di Jian dice. Che mantiene ora quando l'apparecchio è spento.

Per rispondere a quello che penso la tua seconda domanda è, è possibile ottenere la seconda dal valore millisecondo facendo una divisione intera per 1000, in questo modo:

second = (int) (milliseconds / 1000);

Se stai chiedendo come siamo in grado di ottenere il tempo con la precisione che, guarda risposta di Esteban ... il cristallo di quarzo vibra in un certo periodo di tempo, diciamo 0,00001 secondi. Abbiamo appena fare un circuito che conta le vibrazioni. Quando abbiamo raggiunto 100000 vibrazioni, si dichiara che un secondo è passato e aggiornare l'orologio.

Siamo in grado di ottenere qualsiasi precisione contando le vibrazioni in questo modo ... esattezza questo è maggiore del periodo di vibrazione del cristallo che stiamo usando.

La scheda madre ha un orologio che zecche. Ogni tick rappresenta un'unità di tempo.

Per essere più precisi, l'orologio è di solito un cristallo di quarzo che oscilates ad una data frequenza; alcune frequenze di clock della CPU comuni sono 33,33 e 40 MHz.

Il tempo assoluto è arcaico misurata con un contatore a 32 bit di secondi dal 1970. Ciò può causare il "2038 problema", dove trabocca semplicemente. Di qui le API di tempo a 64 bit utilizzati su piattaforme Windows e Unix moderni (questo include basata su BSD MacOS).

Molto spesso un utente di PC è interessato a intervalli di tempo piuttosto che il tempo assoluto dal momento che un evento di profonda ha avuto luogo. Un'implementazione comune di un computer ha cose chiamate temporizzatori che permettono solo che ciò accada. Questi timer potrebbe anche funzionare quando il PC non è con finalità di hardware polling per lo stato di sveglia, commutazione modalità sospensione o provenienti dal sonno. docs processori Intel vanno in dettaglio incredibile su questi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top