[]

bilgisayar saati nasıl anlıyor/ölçüyor?

sorum özellikle programcılara. bilgisayara bir iş yaptırmak için program yazılıyor, bilgisayar da komutlara göre işlemleri yapıyor. bu kısmı anlaşılır. ekrana şunu yaz, şu döngüye 100 kere gir filan onları yapıyor 100'e kadar sayarak. bunu hafızada bir değişken oluşturarak ve her seferinde 1 ekleyerek yapabilir kolayca. ama anlayamadığım şey bilgisayara 5 dk. bekle dersek bunu nasıl yapıyor? 5 dk.yı nasıl hesaplıyor? zaman kavramını nasıl anlıyor? umarım sormak istediğim soruyu anlatabilmişimdir.




 
anakartta saat var bildiğiniz.

img.dxcdn.com

rtc (real time clock) kendine ait pili var bilgisayarı kapatsan da çalışmaya devam ediyor.

edit:

biraz daha açıklamak gerekirse bildiğimiz saat değil aslında 1970-01-01 00:00:00 +0000 (UTC) tarihinden itibaren ne kadar süre geçmiş milisaniye cinsinden sayan bir cihaz diyelim.

Zaten bu veriyi aldıktan sonra işletim sistemi veya işletim sistemi yoksa senin yazdığın program bunu gerçek zamana dönüştürebiliyor basit bir şekilde.

(bkz: unix time)
  • ocanal  (29.10.17 12:44:18 ~ 12:51:47) 
@ocanal
evet milisaniyeden hesaplanır ama milisaniyeyi nasıl ölçüyor? yani sormak istediğim o milisaniyeyi nasıl hesaplıyor? pilin zayıflaması filan etkiler mi saatin doğruluğunu?

  • gonul_isleri  (29.10.17 12:52:09) 
işin donanım boyutunu merak ediyorsun galiba,

osilatörleri araştırabilirsin.

frekans aralığına göre ne kadar süre geçtiğini hesap edebiliyorsun osilatör sinyalleriyle.

en.gowikipedia.org

şurdaki timing başlığına göz atabilirsin.

edit: pilin zayıflama ihtimali çok düşük çünkü sayma işi çok enerji harcayan bir iş değil haliyle bilgisayar yıllarca kapalı olsa bile yetecektir, bilgisayarı şarj ettiğinde zaten rtc'nin pili de şarj olacaktır.

bir de network'e bağlandığın anda ntp protokolü ile bu hizmeti veren servislerle saatini sync eder sistem.

tf.nist.gov
  • ocanal  (29.10.17 12:59:36 ~ 13:04:22) 
Osilatör sürekli aynı frekansta kare dalga üretiyor. Kaç tane kare dalga ürettiğini sayarak(counter ile) ne kadar süre geçtiği bulunuyor. Mesela 32768 Hz(genelde saatlerde kullanılan) olsun frekansı yani saniyede o kadar dalga üretiyor. Saniye bazında hesap yapılacaksa kullanılır. Milisaniye için direk 32kHz daha uygun olur.


  • reactionic  (29.10.17 13:13:45 ~ 13:15:14) 
standart pc içinde bir adet RTC (pil ile beslenen real time clock devresi) ve işletim sistemi tarafından tutulan bir tick timer var. tick timer 1 ms periyotlarla hep artar.
değişken çok büyük olduğu için bu artma işlemi yıllarca devam edebilir orada sorun yok.


şimdi bu sorduğun sorunun net yanıtı için hangi programlama dili ile çalıştığını bilmek lazım. mesela C ile çalışıyorsan bu sana kalmış ister o anda tick timer değerini okur bundan 5 dakika ilerisini hesaplar ve belli periyotlarda o değere ulaşıp ulaşmadığını kontrol edersin. istersen sistem satini okur aynı şeyi gene yaparsın.

daha gelişmiş c# gibi dillerde derleyici arka planda bunu senin için yapar.

fakat bence bu işin temelini anlamak için yazılımsal kesmeler konusunu araştırmalısın.
  • orpheus  (29.10.17 17:05:43) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.