Bagaimana komputer melacak waktu?

69

Bagaimana komputer dapat memberi tahu waktu dan tanggal yang benar setiap waktu?

Setiap kali saya menutup komputer (matikan) semua koneksi dan proses dalam berhenti. Bagaimana bisa ketika saya membuka komputer lagi ia memberi tahu waktu yang tepat tepat? Apakah komputer tidak mati sepenuhnya ketika saya mematikannya? Apakah ada beberapa proses yang masih berjalan di dalamnya? Tetapi kemudian bagaimana laptop saya memberi tahu waktu yang tepat ketika saya mengeluarkan baterai (dan dengan demikian menghentikan semua proses dengan paksa) dan mulai lagi setelah beberapa hari?

setan
sumber
3
Apakah pertanyaan ini benar-benar tentang topik untuk situs ini? Tampaknya lebih tepat untuk Pengguna Super bagi saya.
Ilmari Karonen
3
@IlmariKaronen Tampaknya ini dianggap sebagai pertanyaan tentang "arsitektur komputer", jika saya memahami istilah tersebut dengan benar.
PyRulez

Jawaban:

96

Komputer memiliki "jam waktu nyata" - perangkat perangkat keras khusus (misalnya, berisi kristal kuarsa) pada motherboard yang mempertahankan waktu. Selalu aktif, bahkan saat Anda mematikan komputer. Selain itu, motherboard ini memiliki baterai kecil yang digunakan untuk memberi daya pada perangkat jam bahkan ketika Anda melepaskan komputer dari daya. Baterai tidak bertahan selamanya, tetapi akan bertahan setidaknya beberapa minggu. Ini membantu komputer melacak waktu bahkan ketika komputer Anda dimatikan. Jam waktu nyata tidak membutuhkan banyak daya, jadi itu tidak membuang-buang energi. Jika Anda mengeluarkan baterai jam selain melepas baterai utama dan melepaskan kabel daya maka komputer akan kehilangan jejak waktu dan akan meminta Anda untuk memasukkan waktu dan tanggal saat Anda me-restart komputer.

Untuk mempelajari lebih lanjut, lihat Jam waktu nyata dan baterai CMOS dan Mengapa motherboard saya memiliki baterai .

Juga, pada banyak komputer, ketika Anda menghubungkan komputer Anda ke koneksi Internet, OS akan mencari server waktu di jaringan dan menanyakan server waktu untuk waktu saat ini. OS dapat menggunakan ini untuk mengatur jam lokal komputer Anda dengan sangat akurat. Ini menggunakan Network Time Protocol , juga disebut NTP.

DW
sumber
1
Bisakah OS mengatur waktu BIOS? Apa yang saya maksud adalah, jika saya secara paksa mengatur ulang jam perangkat keras, lalu boot dan sambungkan ke NTP atau atur jam itu sendiri, apakah BIOS akan mengenali ini?
kucing
1
Iya. Mengubah waktu sistem OS menetapkan jam waktu nyata alias waktu BIOS. Secara internal jam hanya menghitung jumlah detik (atau milidetik) sejak Zaman (biasanya 1 Januari 1970 00:00), sehingga tidak melakukan banyak pekerjaan dan dapat didukung oleh baterai ukuran koin selama bertahun-tahun. Fungsi tingkat yang lebih tinggi di OS melakukan pekerjaan konversi yang menghitung ke tanggal / waktu untuk ditampilkan.
Chris Nava
Kristal kuarsa bukan perangkat perangkat keras khusus yang melacak waktu (meskipun merupakan satu komponen).
user253751
1
@tatan tidak, telepon selama ini ditenagai oleh baterai. Sebagian besar sama dengan Anda dapat menyalakan PC Anda dengan menekan tombol daya ketika PC seharusnya dimatikan (tetapi tidak terputus dari stopkontak di dinding).
Ruslan
1
Saya akan ulangi paragraf terakhir, mengubah komputer ke OS. Setiap PC yang terhubung ke Internet mungkin tidak, dan sebaliknya - itu adalah tugas OS untuk melakukan ini, bukan PC (perangkat keras yang menyiratkan).
MatthewRock
13

Jika Anda melepas baterai pada motherboard maka komputer tidak akan memiliki cara untuk mengetahui waktu.

Ini juga terjadi pada ponsel. Jika Anda membiarkan telepon keluar dan tidak mengisi ulang selama lebih dari beberapa minggu, itu juga akan "melupakan waktu" karena baterai tambahan kecil benar-benar habis dan tidak ada yang menyalakan jam waktu nyata.

Anda dapat mencoba menyalakan ponsel lama jika Anda memilikinya dan memeriksanya sendiri untuk memastikan bahwa ponsel itu "lupa waktu".

Beginilah tampilan baterai. https://yandex.com/images/touch/search?text=mobo%20battery&source=tabbar

Saya harus membeli beberapa kali ketika saya mulai bertahan kurang dari sehari. Saya harus mengkonfigurasi jam setiap kali saya menyalakan PC.

yoyo_fun
sumber
3
Banyak sistem operasi sekarang menggunakan NTP (Network Time Protocol) dan dapat menggunakannya untuk me-reset sendiri secara otomatis pada saat startup, sehingga mereka tidak benar-benar membutuhkan jam bawaan.
James Snell
3
@JamesSnell Namun itu akan mengacaukan perangko waktu dalam file log serta setiap file yang dimodifikasi selama boot sebelum NTP dimulai.
kasperd
@kasperd - cap waktu benar-benar tidak sepenting dulu seperti banyak sistem menggunakan metadata lainnya (versi). Lihatlah log boot dari sistem yang tidak memiliki RTC seperti router atau raspberry pi dan mereka log ketika waktu diperbarui (dan apa yang harus). Mungkin lebih penting dalam sistem yang terputus, tetapi itu menjadi kurang penting dari waktu ke waktu.
James Snell
1
@ JamesSnell Saya memiliki beberapa komputer papan tunggal yang mampu menjalankan sistem operasi x86 standar, tetapi mereka tidak memiliki RTC yang didukung baterai. Pada akhirnya saya meminta mereka menjalankan tumpukan jaringan minimal absolut dari dalam ramdisk untuk menjalankan `ntpdate 'sebelum akses disk apa pun akan terjadi.
kasperd
@ JamesNell Ya, tetapi laptop dan tablet terhubung ke wifi setelah mereka boot (setidaknya sebagian besar dari mereka melakukan itu) dan mereka tidak memiliki koneksi ethernet, jadi baterai masih digunakan di hampir semua komputer. Juga komputer desktop tidak memiliki internet setiap saat. Beberapa orang menutup router mereka di malam hari atau tidak menggunakan internet sepanjang waktu jika mereka ingin bermain game atau menonton film dan tidak menyalakan router. Tidak semua orang ingin terhubung ke internet setiap saat.
yoyo_fun
2

Saat Anda memulai Windows, Windows memperoleh akses langsung ke memori Real Time Clock (RTC) dan menggunakan tanggal dan nilai waktu untuk mengatur tanggal dan waktu komputer. Timer yang terputus menjaga waktu komputer ketika Windows sedang berjalan. Time Daemon di Windows berjalan kira-kira sekali setiap jam setelah Windows dimulai. Time Daemon membandingkan waktu di Windows dengan waktu di RTC. Jika dua kali terpisah lebih dari satu menit, Windows mengubah waktu dan tanggal agar cocok dengan RTC. Anda tidak dapat mengubah interval waktu untuk menjalankan Daemon Waktu.

Jika Anda menggunakan layanan sinkronisasi waktu, seperti alat TimeServ.exe yang disertakan dengan Windows NT 4.0 Resource Kit, alat memperbarui waktu di Windows dan RTC komputer. Jika Layanan Waktu Windows berjalan pada komputer berbasis Windows 2000, Daemon Waktu di Windows tidak dapat berjalan kira-kira satu kali setiap jam setelah Windows dimulai.

Untuk detail lebih lanjut kunjungi tautan ini: http://msdn2.microsoft.com/en-us/library/ms724936.aspxhttp://msdn2.microsoft.com/en-us/library/ms724942.aspx

Budhathoki Bijaya
sumber
Menarik. Jadi, bagaimana Windows menentukan waktu saat ini yang tepat (untuk mikrodetik) untuk menanggapi panggilan dari suatu program (misalnya time.time () dengan python) dan seberapa sering dan bagaimana cara memutakhirkan nilai saat ini untuk waktu itu?
jacanterbury