Sistem saati

Bilgisayar bilimi ve bilgisayar programlamasında sistem zamanı, bir bilgisayar sisteminin zaman geçişi kavramını temsil eder. Bu anlamda, zaman, takvim üzerinde gün geçişi de içerir.

Sistem saati, bir çağrı adı verilen bazı keyfi başlangıç tarihlerinden bu yana gerçekleşen kenelerin sayısının basit bir sayımı olarak uygulanan bir sistem saatiyle ölçülür. For example, Unix and POSIX-compliant systems encode system time ("Unix time") as the number of seconds elapsed since the start of the Unix epoch at 1 January 1970 00:00:00 UT, with exceptions for leap seconds. Systems that implement the 32-bit and 64-bit versions of the Windows API, such as Windows 9x and Windows NT, provide the system time as both SYSTEMTIME, represented as a year/month/day/hour/minute/second/milliseconds value, and FILETIME, represented as a count of the number of 100-nanosecond ticks since 1 January 1601 00:00:00 UT as reckoned in the proleptic Gregorian calendar.

Sistem saati, insanların anlaması için daha uygun bir form olan takvim süresine dönüştürülebilir. Örneğin, çağın başlangıcından bu yana 1.000.000.000 saniyelik Unix sistem saati, 9 Eylül 2001 01:46:40 UT takvim süresine çevrilir. Bu tür işlemleri gerçekleştiren kitaplık altprogramları, saat dilimleri, gün ışığından yararlanma saati (DST), sıçrama saniyeleri ve kullanıcının yerel ayarları için yapılan ayarlamalarla da ilgilenebilir. Takvim zamanlarını sistem zamanlarına dönüştüren kitaplık rutinleri de genellikle sağlanmaktadır.

  Diğer zaman ölçümleri 
Sistem zamanı ile yakından ilişkili olan süreç zamanı, yürütmekte olan bir işlem tarafından tüketilen toplam işlemci saatinin bir sayısıdır. Sırasıyla, kullanıcı kodu ve sistem çekirdeği kodunu gerçekleştirmek için harcanan süreyi temsil eden kullanıcı ve sistem CPU süresine bölünebilir. İşlem süreleri, CPU talimatlarının veya saat çevrimlerinin bir toplamıdır ve genellikle duvar zamanı ile doğrudan bir bağıntıya sahip değildir.

Dosya sistemleri, her bir dosya ve dizinin dosya denetim bloğuna (veya inode'una) zaman damgalarını depolayarak, dosyaların oluşturulduğu, değiştirildiği ve / veya erişildiği süreleri tutar.

 Uygulama 
Sistem saati, periyodik olarak CPU'yu kesen ve daha sonra bir zamanlayıcı kesme servisi rutini yürütmeye başlayan programlanabilir bir zaman sayacı olarak uygulanır. Bu rutin sistem saatine bir kron ekler (basit bir sayaç) ve kesintiden önce CPU'nun yaptıklarına geri dönmeden önce diğer periyodik temizlik görevlerini (önleme vs.) gerçekleştirir.

 Sistem zamanı alınıyor 

  UTC

Aşağıdaki tablolar, çeşitli işletim sistemlerinde, programlama dillerinde ve uygulamalarda sistem saatini alma yöntemlerini göstermektedir. (*) Ile işaretlenmiş değerler sisteme bağlıdır ve uygulamalar arasında farklılık gösterebilir. Tüm tarihler Gregoryen veya Gregoryen takvimi olarak verilmiştir.

Bir uygulamanın zaman ölçümünün çözünürlüğünün bu ölçümlerin aynı doğruluğunu ima etmediğini unutmayın. Örneğin, bir sistem, geçerli saati mikrosaniye cinsinden ölçülen bir değer olarak geri getirebilir, ancak aslında sadece 100 Hz (10 ms) frekanslı tek tek saat işaretlerini ayırt edebilecek durumdadır.

 İşletim sistemleri 

 İşletim sistemi Komut veya işlev Çözüm Çağ veya aralıkAndroid java.lang.System.currentTimeMillis()1 ms1 Aralık 1970BIOS (IBM PC) INT 1Ah, AH=00hRalf Brown, "Int 0x1A, AH=0x00" in Ralf Brown's Interrupt List, 2000, http://www.delorie.com/djgpp/doc/rbinter/ix/1A/00.html  54.931 ms 18.204 Hz  Geçerli günün gece yarısı INT 1Ah, AH=02hRalf Brown, "Int 0x1A, AH=0x02" in Ralf Brown's Interrupt List, 2000, http://www.delorie.com/djgpp/doc/rbinter/ix/1A/02.html  1 s Geçerli günün gece yarısı INT 1Ah, AH=04hRalf Brown, "Int 0x1A, AH=0x04" in Ralf Brown's Interrupt List, 2000, http://www.delorie.com/djgpp/doc/rbinter/ix/1A/04.html  1 gün 1 Ocak 1980 - 31 Aralık 1999 veya 31 Aralık 2079 (sisteme bağlı) CP/M Plus System Control Block: scb$base+58h, Days since 1 Jan 1978 scb$base+5Ah, Hour (BCD) scb$base+5Bh, Minute (BCD) scb$base+5Ch, Second (BCD) 1 s 1 Ocak 1978 - 20 Eylül 2067 BDOS function 69h (T_GET): word, Days since 1 January 1978 byte, Hour (BCD) byte, Minute (BCD) byte, Second (BCD) DOS (Microsoft) DATETIME 10 ms 1 Ocak 1980 - 31 Aralık 2099 INT 21h, AH=2Ch SYSTEM TIMERalf Brown, "Int 0x21, AH=0x2c" in Ralf Brown's Interrupt List, 2000, http://www.delorie.com/djgpp/doc/rbinter/ix/21/2C.html </tt>INT 21h, AH=2Ah SYSTEM DATERalf Brown, "Int 0x21, AH=0x2a" in Ralf Brown's Interrupt List, 2000, http://www.delorie.com/djgpp/doc/rbinter/ix/21/2A.html </tt> iOS (Apple) CFAbsoluteTimeGetCurrent()"Time Utilities Reference"  in iOS Developer Library (Apple, 2007). < 1 ms 1 Ocak 2001 ±10,000 yıl Mac OS (Apple) CFAbsoluteTimeGetCurrent()"Time Utilities Reference"  in Mac OS X Developer Library (Apple, 2007). < 1 ms"CFRunLoopTimer Reference"   in Mac OS X Developer Library (Apple, 2007).The Apple Developer Documentation is not clear on the precision & range of CFAbsoluteTime/CFTimeInterval, except in the CFRunLoopTimerCreate documentation which refers to 'sub-millisecond at most' precision. However, the similar type   NSTimeInterval  appears to be interchangeable, and has the precision and range listed.  1 Ocak 2001 ±10,000 yıl OpenVMS (HP) SYS$GETTIM() 100 ns 17 Kasım 1858'den AD 31.086'a z/OS (IBM) STCKz/Architecture Principles of Operation (Poughkeepsie, New York:International Business Machines, 2007) 7-187. 2−12 μs 244.14 psz/Architecture Principles of Operation, (Poughkeepsie, New York:International Business Machines, 2000) 4-45, 4-46. 1 Ocak 1900 - 17 Eylül 2042 UTIBM intends to extend the date range on future systems beyond 2042. z/Architecture Principles of Operation, (Poughkeepsie, New York:International Business Machines, 2007) 1-15, 4-45 to 4-47. Unix, POSIX (ayrıca bakınız
C tarih ve saat işlevleri) datetime() 1 s(*) 1 Ocak 1970 t- 19 Ocak 2038 1 Ocak 1970 - AD 292,277,026,596 () 1 μs () 1 ns Windows (Microsoft) GetSystemTime() 1 ms1 Ocak 1601 - AD 30,828 GetSystemTimeAsFileTime() 100 ns

 Programlama dilleri ve uygulamaları 

Dil / Uygulamaİşlev veya değişkenÇözümÇağ veya aralık Ada Ada.Calendar.Clock 100 μs to 20 ms (*) 1 Ocak 1901 - 31 Aralık 2099 (*) AWK systime() 1 s (*) BASIC, True BASIC DATE, DATE$ TIME, TIME$ 1 s (*) Business BASIC DAY, TIM 0.1 s (*) C (see C date and time functions) time() 1 s (*)The C standard library does not specify any specific resolution, epoch, range, or datatype for system time values. The C++ library encompasses the C library, so it uses the same system time implementation as C. (*) C++ std::time()  std::chrono::system_clock::now() 1 s (*)1 ns (C++11, OS dependent) (*) C# (Microsoft) System.DateTime.Now"DateTime.Now Property"  in MSDN (Microsoft, 2010) last updated July 2010. System.DateTime.UtcNow"DateTime.UtcNow Property"  in MSDN (Microsoft, 2011) 100 ns"DateTime.Ticks Property  in MSDN (Microsoft, 2010) last updated May 2010.  1 Ocak 0001 - 31 Aralık 9999 CICS (IBM) ASKTIME 1 ms 1 Ocak 1900 COBOL FUNCTION CURRENT-DATE 1 s 1 Ocak 1601 Common Lisp (get-universal-time) 1 s 1 Ocak 1900 Delphi (Borland) datetime 1 ms (kayan nokta) 1 Ocak 1900 Delphi (Embarcadero Technologies)"Date and Time Support"  in Embarcadero Developer Network (Embarcadero Technologies, 2013) System.SysUtils. Time"System.SysUtils.Time"  in Embarcadero Developer Network (Embarcadero Technologies, 2013) 1 ms 0/0/0000 0:0:0:000 to 12/31/9999 23:59:59:999 [sic] System.SysUtils.GetTime"System.SysUtils.GetTime"  in Embarcadero Developer Network (Embarcadero Technologies, 2013) (alias for System.SysUtils. Time) System.SysUtils.Date"System.SysUtils.Date"  in Embarcadero Developer Network (Embarcadero Technologies, 2013) 0/0/00000:0:0:000 - 12/31/9999 0:0:0:000 [sic] System.DateUtils. Today"System.DateUtils.Today"  in Embarcadero Developer Network (Embarcadero Technologies, 2013) System.DateUtils. Tomorrow"System.DateUtils.Tomorrow"  in Embarcadero Developer Network (Embarcadero Technologies, 2013) System.DateUtils.Yesterday"System.DateUtils.Yesterday"  in Embarcadero Developer Network (Embarcadero Technologies, 2013) System.SysUtils.Now"System.SysUtils.Now"  in Embarcadero Developer Network (Embarcadero Technologies, 2013) 1 s 0/0/00000:0:0:000 - 12/31/9999 23:59:59:000 [sic] System.SysUtils.DayOfWeek"System.SysUtils.DayOfWeek"  in Embarcadero Developer Network (Embarcadero Technologies, 2013) 1 gün 1 to 7 System.SysUtils.CurrentYear"System.SysUtils.CurrentYear"  in Embarcadero Developer Network (Embarcadero Technologies, 2013) 1 yıl (*) Emacs Lisp (current-time) 1 μs (*) 1 Ocak 1970 Erlang (Ericsson) erlang:system_time(), os:system_time() OS bağımlı, e.g. on Linux 1ns 1 Ocak 1970 Excel (Microsoft) date() ? 0 Ocak 1900"In the Microsoft Office Spreadsheet Component, the value 0 evaluates to the date December 30, 1899 and the value 1 evaluates to December 31, 1899. ... In Excel, the value 0 evaluates to January 0, 1900 and the value 1 evaluates to January 1, 1900." XL2000: Early Dates on Office Spreadsheet Component Differ from Excel  in (Microsoft Support, 2003). Fortran DATE_AND_TIME SYSTEM_CLOCK (*)"SYSTEM_CLOCK" , documentation for FORTRAN compiler, Intel Corp., accessed 27 October 2011.
SYSTEM_CLOCK — Time function"  in The GNU Fortran Compiler (Free Software Foundation) accessed 27 October 2011. 1 Ocak 1970 CPU_TIME 1 μs Go time.Now() 1 ns 1 Ocak 0001 Haskell Time.getClockTime 1 ps (*) 1 Ocak 1970 (*) Data. Time.getCurrentTime 1 ps (*) 17 Kasım 1858 (*)  Java (Sun) java.util.Date()System.currentTimeMillis() 1 ms 1 Ocak 1970 System.nanoTime()System.nanoTime() method  in Java Platform, Standard Edition 6: API Specification (Oracle, 2011) accessed 27 October 2011. 1 ns keyfi  Clock.systemUTC()Clock.systemUTC() and other methods  in Java Platform, Standard Edition 8: API Specification (Oracle, 2014) accessed 15 January 2015. 1 ns keyfiJSR-310 Java Time System  in Java Platform, Standard Edition 8: API Specification (Oracle, 2014) accessed 15 January 2015. JavaScript (new Date()).getTime() Date.now() 1 ms 1 Ocak 1970 Matlab now 1 s 0 Ocak 0000  Matlab Help MUMPS $H (short for $HOROLOG) 1 s 31 Aralık 1840 LabVIEW Tick Count  1 ms 00:00:00.000 1 Ocak 1904 Get Date/Time in Seconds 1 ms 00:00:00.000 1 Ocak 1904 Objective-C [NSDate timeIntervalSinceReferenceDate] < 1 ms"Foundation Data Types Reference"  in Mac OS X Developer Library (Apple, 2011) last modified 6 July 2011, section NSTimeInterval. 1 Ocak 2001 ±10,000 Yıl OCaml Unix.time() 1 s 1 Ocak 1970 Unix.gettimeofday() 1 μs Extended Pascal GetTimeStamp() 1 s (*) Turbo Pascal GetTime() GetDate() 10 ms (*) Perl time() 1 s 1 Ocak 1970 Time::HiRes::timeDouglas Wegscheild, R. Schertler, and Jarkko Hietaniemi, "Time::HiRes"  (CPAN
Comprehensive Perl Archive Network, 2011) accessed 27 October 2011. 1 μs PHP time()mktime() 1 s 1 Ocak 1970 microtime() 1 μs Python datetime.now().timestamp() 1 μs (*) 1 Ocak 1970 RPG CURRENT(DATE), %DATE CURRENT(TIME), %TIME 1 s 1 Ocak 0001 - 31 Aralık 9999 CURRENT(TIMESTAMP), %TIMESTAMP 1 μs Ruby Time.now()Time class  in Ruby-Doc.org: Help and documentation for the Ruby programming language (Scottsdale, AZ: James Britt and Neurogami) accessed 27 October 2011. 1 μs (*) 1 Ocak 1970 (kadar 19 Ocak 2038 
Ruby'den önce 1.9.2Ruby 1.9.2 Release Notes  in Ruby-Doc.org: Help and documentation for the Ruby programming language (Scottsdale, AZ: James Britt and Neurogami) accessed 27 October 2011.) Smalltalk Time microsecondClock  1 s  1 μs  1 s  1 Ocak 1901 (*) Time totalSeconds  SystemClock ticksNowSinceSystemClockEpoch  SQL CURDATE() CURTIME() GETDATE() NOW() SYSDATE() 3 ms 1 Ocak 1753 - 31 Aralık 9999 (*)  60 s 1 Ocak 1900 - 6 Haziran 2079  Standard ML Time.now() 1 μs (*) 1 Ocak 1970 (*) TCL [clock seconds] 1 s 1 Ocak 1970 [clock milliseconds] 1 ms [clock microseconds] 1 μs [clock clicks] 1 μs (*) (*) Windows PowerShell Get-Date 100 ns  1 Ocak 0001 - 31 Aralık 9999 [DateTime]::Now [DateTime]::UtcNow Visual Basic .NET (Microsoft) System.DateTime.Now System.DateTime.UtcNow 100 ns  1 Ocak 0001 - 31 Aralık 9999

Ayrıca bakınız

Notlar

Kaynakça

Dış bağlantılar
 Critical and Significant Dates, J. R. Stockton (retrieved 3 December 2015) 
 The Boost Date/Time Library (C++) The Boost Chrono Library (C++)
 The Chronos Date/Time Library (Smalltalk) Joda Time, The Joda Date/Time Library (Java)
 The Perl DateTime Project  (Perl) The Ruby Date/Time Library '' (Ruby)

Kategori:İşletim sistemleri
Kategori:Programlama dilleri
Kategori:Zamanın ölçülmesi