Bilgisayarlar zamanı nasıl takip eder?


69

Bilgisayarlar her seferinde doğru saati ve tarihi nasıl söyleyebilir?

Bilgisayarı kapattığımda (kapattığımda) tüm bağlantılar ve işlemler durdu. Bilgisayarı tekrar açtığımda, doğru zamanı tam olarak söylemesi nasıl oluyor? Kapattığımda bilgisayar tamamen kapanmıyor mu? Hala içinde çalışan bazı işlemler var mı? Peki dizüstü bilgisayarım pili çıkardığımda (ve dolayısıyla tüm işlemleri zorla durdurduğumda) ve birkaç gün sonra tekrar başlattığımda doğru zamanı nasıl söyler?


3
Gerçekten bu soru mı konuda bu site için? Süper Kullanıcı benim için daha uygun görünüyor .
Ilmari Karonen

3
@IlmariKaronen Eğer terimi doğru anlıyorsam, bu "bilgisayar mimarisi" hakkında soru olarak sayılıyor.
PyRulez

Yanıtlar:


96

Bilgisayarların bir "gerçek zamanlı saati" vardır - anakartta zamanı koruyan özel bir donanım cihazı (örneğin, bir kuvars kristali içeren). Bilgisayarınızı kapatsanız bile, her zaman güç vardır. Ayrıca, anakartta, bilgisayarınızı güç kaynağından çıkarsanız bile, saat aygıtını çalıştırmak için kullanılan küçük bir pil bulunur. Batarya sonsuza kadar dayanmıyor, ancak en az birkaç hafta dayanacak. Bu, bilgisayarınız kapalı olsa bile zamanı izlemenize yardımcı olur. Gerçek zamanlı saat çok fazla güce ihtiyaç duymaz, bu yüzden enerji harcamaz. Ana pili çıkarmanın ve güç kablosunu çıkarmanın yanı sıra saat pilini de çıkarırsanız, bilgisayar zaman izini kaybeder ve bilgisayarı yeniden başlattığınızda saat ve tarihi girmenizi ister.

Daha fazla bilgi için, bkz. Gerçek zamanlı saat ve CMOS pili ve Neden anakartımın pili var .

Ayrıca, çoğu bilgisayarda, bilgisayarınızı bir Internet bağlantısına bağladığınızda, işletim sistemi ağdaki bir zaman sunucusunu bulur ve zaman sunucusunu geçerli saat için sorgular. İşletim sistemi, bilgisayarınızın yerel saatini doğru bir şekilde ayarlamak için bunu kullanabilir. Bu, NTP olarak da adlandırılan Ağ Zaman Protokolünü kullanır .


1
Bir işletim sistemi BIOS saatini ayarlayabilir mi? Demek istediğim, eğer donanım saatini zorla sıfırlarsam, o zaman NTP'ye önyükleyip bağlanırsam veya saati kendim ayarlarsam, BIOS bunu anlayacak mı?
kedi,

1
Evet. İşletim sisteminin sistem saatini değiştirmek, gerçek zamanlı saati, yani BIOS saatini ayarlar. Dahili olarak saat, Epoch'tan (genellikle 1 Ocak 1970 00:00) bu yana geçen saniye sayısını (veya milisaniyeyi) sayar, bu yüzden fazla çalışma yapmaz ve yıllarca bozuk para büyüklüğünde bir pil ile çalıştırılabilir. İşletim sistemindeki daha yüksek seviyeli işlevler, sayımı tarih / saate dönüştürmek için yapar.
Chris Nava

Kuvars kristali, zamanın kaydını tutan özel bir donanım değildir (bir bileşen olmasına rağmen).
user253751

1
@ tatan hayır, telefon bataryasıyla her zaman çalışır. PC'nizi kapatmanız gerektiğinde (ancak duvar prizinden çıkarılmadığında) güç düğmesine basarak PC'nizi açabildiğiniz gibi.
Ruslan

1
Bilgisayarları işletim sistemlerine dönüştürerek son paragrafı yeniden yazardım. İnternete bağlanan herhangi bir PC olmayabilir ve bunun tersi olabilir - PC'leri değil (donanımı ima ederek) bunu yapmak OS'ın işidir.
MatthewRock

13

Anakarttaki pili çıkarırsanız, bilgisayarın saati söyleme imkânı kalmaz.

Bu aynı zamanda cep telefonları için de geçerlidir. Bir telefonun boşalmasına izin verirseniz ve birkaç haftadan daha uzun süre şarj etmiyorsanız, küçük yardımcı batarya tamamen boşaldığından ve gerçek zamanlı saatte hiçbir şey kullanılmadığından, aynı zamanda "zamanı unutur".

Eski bir cep telefonunu açmayı deneyebilir ve bir "zaman unuttuğunu" görmek için kendiniz kontrol edebilirsiniz.

Batarya böyle görünüyor. https://yandex.com/images/touch/search?text=mobo%20battery&source=tabbar

Benimki bir günden daha az dayanmaya başladığında birkaç tane almak zorunda kaldım. Bilgisayarı her açışımda saati yapılandırmak zorunda kaldım.


3
Artık birçok işletim sistemi NTP (Ağ Saati Protokolü) kullanıyor ve bunu başlangıçta kendilerini otomatik olarak sıfırlamak için kullanabilir, bu yüzden aslında yerleşik saate ihtiyaç duymazlar.
James Snell

3
@JamesSnell Ancak, NTP başlatılmadan önce önyükleme sırasında değiştirilen herhangi bir dosyanın yanı sıra günlük dosyalarındaki zaman damgalarını da karıştıracaktır.
kasperd

@ kasperd - zaman damgaları, çoğu sistemin diğer meta verileri (sürüm oluşturma) kullandığı kadar önemli değil. Router ya da ahududu pi gibi bir RTC bulunmayan sistemlerin önyükleme günlüklerine bakın ve zaman güncellendiğinde (ve ne için) günlüğe kaydederler. Bağlantısız sistemlerde daha önemli olabilir, ancak bu zamanla daha az önemli hale geliyor.
James Snell

1
@JamesSnell Standart bir x86 işletim sistemi çalıştırabilen birkaç tane tek kartlı bilgisayarım var, ancak pil destekli RTC'leri yok. Sonunda, herhangi bir disk erişimi gerçekleşmeden önce 'ntpdate' komutunu çalıştırmak için bir ramdisk içinden mutlak bir minimum ağ yığını çalıştırmalarını sağladım.
kasperd

@JamesSnell Evet, ancak dizüstü bilgisayarlar ve tabletler, önyükleme yaptıktan sonra wifi ağına bağlanır (en azından çoğu bunu yapar) ve ethernet bağlantısı yoktur, bu nedenle pil neredeyse tüm bilgisayarlarda hala kullanılmaktadır. Ayrıca masaüstü bilgisayarlarda da internet yoktur. Bazı insanlar yönlendiricilerini gece kapatır veya oyun oynamak ya da film izlemek ve yönlendiriciyi açmamak için sadece interneti kullanmazlar. Herkes her zaman internete bağlı olmak istemez.
yoyo_fun

2

Windows'u başlattığınızda, Gerçek Zamanlı Saatin (RTC) belleğine doğrudan erişim kazanır ve bilgisayarın tarih ve saatini ayarlamak için tarih ve saat değerlerini kullanır. Zamanlayıcı kesintileri, Windows çalışırken bilgisayarın zamanını korur. Windows'taki bir Time Daemon, Windows başladıktan yaklaşık her saat sonra bir kez çalışır. Time Daemon, Windows'taki zamanı RTC'deki zamanla karşılaştırır. İki kez bir dakikadan uzunsa, Windows saat ve tarihi RTC ile eşleşecek şekilde değiştirir. Time Daemon'un çalışması için zaman aralığını değiştiremezsiniz.

Windows NT 4.0 Kaynak Seti'nde bulunan TimeServ.exe aracı gibi bir zaman eşitleme hizmeti kullanıyorsanız, araç, Windows'taki ve bilgisayarın RTC'deki saatini güncelleştirir. Windows Time Service, Windows 2000 tabanlı bir bilgisayarda çalışıyorsa, Windows'taki Time Daemon, Windows başladıktan sonra her saat yaklaşık bir kez çalışamaz.

Daha fazla ayrıntı için bu bağlantıyı ziyaret edin: http://msdn2.microsoft.com/en-us/library/ms724936.aspxhttp://msdn2.microsoft.com/en-us/library/ms724942.aspx


İlginç. Öyleyse, Windows bir programdan gelen bir çağrıya cevap vermek için mevcut kesin zamanı (mikrosaniye kadar) nasıl belirler (örneğin python'da time.time ()) ve zamanın şu andaki değerini ne sıklıkta ve nasıl günceller?
jacanterbury
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.