सिस्टम टाइम

From Vigyanwiki
Revision as of 15:17, 13 June 2023 by Manidh (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
यूनिक्स डेट (यूनिक्स) कमांड

कंप्यूटर विज्ञान और कंप्यूटर प्रोग्रामिंग में, सिस्टम टाइम समय बीतने के बारे में कंप्यूटर सिस्टम की धारणा का प्रतिनिधित्व करता है। इस अर्थ में, समय में कैलेंडर पर बीतने वाले दिनों को भी सम्मिलित किया जाता है।

सिस्टम टाइम को एक सिस्टम क्लॉक द्वारा मापा जाता है, जिसे सामान्यतः टिक की संख्या की एक साधारण गिनती के रूप में लागू किया जाता है, जो कि कुछ मनमाने ढंग से प्रारम्भ होने की तारीख से स्थानांतरित हो गया है, जिसे युग कहा जाता है। उदाहरण के लिए, यूनिक्स और पॉज़िक्स-संगत सिस्टम सिस्टम टाइम ("यूनिक्स टाइम") को एन्कोड करते हैं क्योंकि 1 जनवरी 1970 00:00:00 यूटी पर यूनिक्स युग की प्रांरम्भ के बाद से लीप सेकंड के अपवाद के साथ सेकंड की संख्या। सिस्टम जो विंडोज एपीआई के 32-बिट और 64-बिट संस्करणों को लागू करते हैं, जैसे कि विंडोज 9एक्स और विंडोज एनटी, सिस्टम टाइम दोनों सिस्टम टाइम के रूप में प्रदान करते हैं, जो वर्ष/माह/दिन/घंटा/मिनट/सेकंड/मिलीसेकंड मान के रूप में प्रतिनिधित्व करते है, और FILETIME, 1 जनवरी 1601 00:00:00 यूटी के बाद से 100-नैनोसेकंड टिक्स की गिनती के रूप में प्रस्तुत किया गया है, जैसा कि प्रोलेप्टिक ग्रेगोरियन कैलेंडर में माना गया है।

सिस्टम टाइम को कैलेंडर समय में परिवर्तित किया जा सकता है, जो मानवीय समझ के लिए अधिक उपयुक्त है। उदाहरण के लिए, युग की प्रांरम्भ के बाद से यूनिक्स प्रणाली का समय 1000000000 सेकंड कैलेंडर समय 9 सितंबर 2001 01:46:40 यूटी में अनुवाद करता है। लाइब्रेरी सबरूटीन्स जो इस तरह के रूपांतरणों को संभालते हैं, वे समय क्षेत्र, डेलाइट सेविंग टाइम (डीएसटी), लीप सेकंड और उपयोगकर्ता की लोकेल सेटिंग के समायोजन से भी निपट सकते हैं। पुस्तकालय दिनचर्या भी सामान्यतः प्रदान की जाती है जो कैलेंडर समय को सिस्टम टाइम में परिवर्तित करती है।

अन्य समय माप

सिस्टम टाइम से निकटता से संबंधित प्रक्रिया समय है, जो निष्पादन प्रक्रिया द्वारा खपत कुल सीपीयू समय की गणना है। यह उपयोगकर्ता और सिस्टम सीपीयू समय में विभाजित हो सकता है, क्रमशः उपयोगकर्ता कोड और सिस्टम कर्नेल कोड को निष्पादित करने में लगने वाले समय का प्रतिनिधित्व करता है। प्रक्रिया समय सीपीयू निर्देशों या घड़ी चक्रों का एक मिलान है और सामान्यतः दीवार के समय से कोई सीधा संबंध नहीं है।

फाइल सिस्टम प्रत्येक फाइल और निर्देशिका के फाइल नियंत्रण ब्लॉक (या इनोड) में टाइमस्टैम्प को संग्रहीत करके फ़ाइलों के निर्माण, संशोधन और/या एक्सेस किए जाने के समय को ट्रैक करता है।

इतिहास

अधिकांश पहली पीढ़ी के पर्सनल कंप्यूटर तारीखों और समय को ट्रैक नहीं करते थे। इनमें वे सिस्टम सम्मिलित थे जो सीपी/एम ऑपरेटिंग सिस्टम चलाते थे, साथ ही साथ एप्पल II, बीबीसी माइक्रो, और कमोडोर पीईटी के प्रारंभिक मॉडल भी सम्मिलित थे। ऐड-ऑन पेरिफेरल बोर्ड जिसमें ऑनबोर्ड बैटरी बैकअप के साथ रीयल-टाइम क्लॉक चिप्स सम्मिलित थे, आईबीएम पीसी और एक्सटी के लिए उपलब्ध थे, लेकिन आईबीएम एटी पहला व्यापक रूप से उपलब्ध पीसी था जो मदरबोर्ड में निर्मित डेट/टाइम हार्डवेयर से सुसज्जित था। कंप्यूटर नेटवर्क की व्यापक उपलब्धता से पहले, सिस्टम टाइम को ट्रैक करने वाले अधिकांश पर्सनल कंप्यूटर सिस्टम केवल स्थानीय समय के संबंध में ऐसा करते थे और विभिन्न समय क्षेत्रों के लिए अनुमति नहीं देते थे।

वर्तमान तकनीक के साथ, अधिकांश आधुनिक कंप्यूटर स्थानीय नागरिक समय को ट्रैक करते हैं, जैसा कि वीसीआर, डीवीआर, केबल टीवी रिसीवर, पीडीए, पेजर, सेल फोन, फैक्स मशीन, जैसे कई अन्य घरेलू और टेलीफोन आंसरिंग मशीन, कैमरा, कैमकॉर्डर, एयर कंडीशनर और माइक्रोवेव ओवन निजी उपकरण करते है।

एम्बेडेड सिस्टम (जैसे कि रास्पबेरी पाई, अरुडिनो, और अन्य समान सिस्टम) के भीतर काम करने वाले माइक्रोकंट्रोलर्स में हमेशा समय का ट्रैक रखने के लिए आंतरिक हार्डवेयर नहीं होता है। ऐसे कई नियंत्रक तंत्र बाह्य समय के ज्ञान के बिना कार्य करते हैं। जिन लोगों को इस तरह की जानकारी की आवश्यकता होती है, वे सामान्यतः बाहरी स्रोत से वर्तमान समय प्राप्त करके, जैसे समय सर्वर या बाहरी घड़ी से, या उपयोगकर्ता को वर्तमान समय में मैन्युअल रूप से प्रवेश करने के लिए संकेत देकर अपने आधार समय को प्रारंभ करते हैं।

कार्यान्वयन

सिस्टम क्लॉक को सामान्यतः प्रोग्रामेबल इंटरवल टाइमर के रूप में लागू किया जाता है जो समय-समय पर सीपीयू को बाधित करता है, जो तब टाइमर इंटरप्ट सर्विस रूटीन (बाधित सेवा दिनचर्या) को निष्पादित करना प्रारम्भ कर देता है। यह रूटीन सामान्यतः सिस्टम क्लॉक (साधारण काउंटर) में एक टिक जोड़ता है और अन्य आवधिक हाउसकीपिंग कार्यों (प्रीमेशन, आदि) को उस कार्य पर लौटने से पहले संभालता है जो सीपीयू रुकावट से पहले निष्पादित कर रहा था।

सिस्टम टाइम को पुनः प्राप्त करना

निम्नलिखित सारणी विभिन्न ऑपरेटिंग सिस्टम, प्रोग्रामिंग भाषाओं और अनुप्रयोगों में सिस्टम टाइम को पुनः प्राप्त करने के तरीकों को दर्शाती है। (*) द्वारा चिन्हित मान सिस्टम पर निर्भर हैं और कार्यान्वयन के दौरान भिन्न हो सकते हैं। सभी तिथियों को ग्रेगोरियन या प्रोलेप्टिक ग्रेगोरियन कैलेंडर तिथियों के रूप में दिया गया है।

ध्यान दें कि कार्यान्वयन के समय के मापन का संकल्प इस तरह के मापों की समान सटीकता का अर्थ नहीं है। उदाहरण के लिए, सिस्टम वर्तमान समय को माइक्रोसेकंड में मापे गए मान के रूप में लौटा सकता है, लेकिन वास्तव में केवल 100 हर्ट्ज (10 एमएस) की आवृत्ति के साथ अलग-अलग घड़ी की टिक को समझने में सक्षम हो सकता है।

ऑपरेटिंग सिस्टम

ऑपरेटिंग सिस्टम कमांड अथवा फंक्शन रेसोलुशन युग या श्रेणी
एंड्रॉयड java.lang.System.currentTimeMillis() 1 ms 1 जनवरी 1970
बायोस (आईबीएम पीसी) INT 1Ah, AH=00h[1] 54.9254 ms
18.2065 Hz
वर्तमान दिन की मध्यरात्रि
INT 1Ah, AH=02h[2] 1 s वर्तमान दिन की मध्यरात्रि
INT 1Ah, AH=04h[3] 1 day 1 जनवरी 1980 से 31 दिसंबर 1999 या 31 दिसंबर 2079 (सिस्टम निर्भर)
सीपी/एम प्लस System Control Block:[4]
scb$base+58h, Days since 31 December 1977
scb$base+5Ah, Hour (BCD)
scb$base+5Bh, Minute (BCD)
scb$base+5Ch, Second (BCD)
1 s 31 दिसंबर 1977 से 5 जून 2157 तक
BDOS function 69h> (T_GET):[5]
word, Days since 1 January 1978
byte, Hour (BCD)
byte, Minute (BCD)
byte, Second (BCD)
डॉस (माइक्रोसॉफ्ट) C:\>DATE
C:\>TIME
10 ms 1 जनवरी 1980 से 31 दिसंबर 2099 तक
INT 21h, AH=2Ch SYSTEM TIME[6]
INT 21h, AH=2Ah SYSTEM DATE[7]
आईओएस (एप्पल) CFAbsoluteTimeGetCurrent()[8] < 1 ms 1 जनवरी 2001 ± 10,000 वर्ष
मैक ओएस CFAbsoluteTimeGetCurrent()[9] < 1 ms[10][note 1] 1 जनवरी 2001 ±10,000 वर्ष
ओपन वीएमएस SYS$GETTIM() 100 ns[11] 17 नवंबर 1858 से 31 जुलाई 31,086
gettimeofday() 1 μs[12] 1 जनवरी 1970 से 7 फरवरी 2106
clock_gettime() 1 ns[12]
जेड/ओएस STCK[13]: 7–187  2−12 μs
244.14 ps[13]: 4–45, 4–46 
1 जनवरी 1900 से 17 सितंबर 2042 यूटी
STCKE 1 जनवरी 1900 से 36,765 ई. तक
यूनिक्स , पॉज़िक्स

(सी तिथि और समय कार्यों को भी देखें)

$date
time()
1 s (*)

1 जनवरी 1970 ( लिनक्स 5.9 से पहले 19 जनवरी 2038 तक) से 2 जुलाई 2486 (लिनक्स 5.10 के बाद से) 1 जनवरी 1970 से 4 दिसंबर एडी 292,277,026,596

gettimeofday() 1 μs
clock_gettime() 1 ns
ओएस/2 DosGetDateTime() 10 ms 1 जनवरी 1980 से 31 दिसंबर 2079
विंडोज GetSystemTime() 1 ms 1 जनवरी 1601 से 14 सितंबर 30828, 02:48:05.4775807
GetSystemTimeAsFileTime() 100 ns
GetSystemTimePreciseAsFileTime()

प्रोग्रामिंग लैंग्वेज और एप्लिकेशन

भाषा/अनुप्रयोग फंक्शन या चर रेसोलुशन युग या श्रेणी
एडीए Ada.Calendar.Clock 100 μs to
20 ms (*)
1 जनवरी 1901 से 31 दिसंबर 2099 (*)
एडब्ल्यूके systime() 1 s (*)
बेसिक, ट्रू बेसिक DATE, DATE$
TIME, TIME$
1 s (*)
बिजनेस बेसिक DAY, TIM 0.1 s (*)
सी (सी तिथि और समय कार्य देखें) time() 1 s (*)[note 2] (*)
सी ++ std::time()
std::chrono::system_clock::now()
1 s (*)[note 2]
1 ns (C++11, ओएस निर्भर)
(*)
सी# System.DateTime.Now[14]
System.DateTime.UtcNow[15]
100 ns[16] 1 जनवरी 0001 से 31 दिसंबर 9999
सीआईसी ASKTIME 1 ms 1 जनवरी 1900
कोबोल FUNCTION CURRENT-DATE 1 s 1 जनवरी 1601
कॉमन लिस्प (get-universal-time) 1 s 1 जनवरी 1900
डेल्फी (बोरलैंड) date
time
1 ms
(फ्लोटिंग पॉइंट)
1 जनवरी 1900
डेल्फी

(एम्बरकेडेरो टेक्नोलॉजीज)

System.SysUtils.Time[17] 1 ms 0/0/0000 0:0:0:000 से 12/31/9999 23:59:59:999 [एसआईसी]
System.SysUtils.GetTime[18] (alias for System.SysUtils.Time)
System.SysUtils.Date[19] 0/0/0000 0:0:0:000 से 12/31/9999 0:0:0:000 [sic]
System.DateUtils.Today[20]
System.DateUtils.Tomorrow[21]
System.DateUtils.Yesterday[22]
System.SysUtils.Now[23] 1 s 0/0/0000 0:0:0:000 से 12/31/9999 23:59:59:000 [sic]
System.SysUtils.DayOfWeek[24] 1 day 1 से 7
System.SysUtils.CurrentYear[25] 1 year (*)
इमाक्स लिस्प (current-time) 1 μs (*) 1 जनवरी 1970
एरलांग erlang:system_time(), os:system_time()[26] ओएस निर्भर, उदा। लिनक्स 1ns पर[26] 1 जनवरी 1970
एक्सेल date() ? 0 जनवरी 1900
फोरट्रान DATE_AND_TIME
SYSTEM_CLOCK
(*)[27]

[28]

1 जनवरी 1970
CPU_TIME 1 μs
गो time.Now() 1 ns 1 जनवरी 0001
हास्केल Time.getClockTime 1 ps (*) 1 जनवरी 1970 (*)
Data.Time.getCurrentTime 1 ps (*) 17 नवंबर 1858 (*)
जावा java.util.Date()
System.currentTimeMillis()
1 ms 1 जनवरी 1970
System.nanoTime()[29] 1 ns मनमाना
Clock.systemUTC()[30] 1 ns मनमाना
जावास्क्रिप्ट , टाइपस्क्रिप्ट (new Date()).getTime()
Date.now()
1 ms 1 जनवरी 1970
मैटलैब now 1 s 0 जनवरी 0000
मम्प्स $H (short for $HOROLOG) 1 s 31 दिसंबर 1840
लैबव्यू Tick Count 1 ms 00:00:00.000 1 जनवरी 1904
Get Date/Time in Seconds 1 ms 00:00:00.000 1 जनवरी 1904
ऑब्जेक्टिव-सी [NSDate timeIntervalSinceReferenceDate] < 1 ms[31] 1 जनवरी 2001 ±10,000 वर्ष
ओकैमल Unix.time() 1 s 1 जनवरी 1970
Unix.gettimeofday() 1 μs
विस्तारित पास्कल GetTimeStamp() 1 s (*)
टर्बो पास्कल GetTime()
GetDate()
10 ms (*)
पर्ल time() 1 s 1 जनवरी 1970
Time::HiRes::time[32] 1 μs
पीएचपी time()
mktime()
1 s 1 जनवरी 1970
microtime() 1 μs
प्योरबेसिक Date() 1 s 1 जनवरी 1970 से 19 जनवरी 2038 तक
पायथन datetime.now().timestamp() 1 μs (*) 1 जनवरी 1970
आरपीजी CURRENT(DATE), %DATE
CURRENT(TIME), %TIME
1 s 1 जनवरी 0001 से 31 दिसंबर 9999
CURRENT(TIMESTAMP), %TIMESTAMP 1 μs
रूबी Time.now()[33] 1 μs (*) 1 जनवरी 1970 (रूबी 1.9.2  से पहले 19 जनवरी 2038 तक )
स्मॉलटॉक Time microsecondClock
(VisualWorks)
1 s (एएनएसआई)
1 μs (विजुअल वर्क्स)
1 s (स्क्वीक)
1 जनवरी 1901 (*)
Time totalSeconds
(Squeak)
SystemClock ticksNowSinceSystemClockEpoch
(Chronos)
एसक्यूएल CURDATE() or CURRENT DATE
CURTIME() or CURRENT TIME
GETDATE()
NOW() or CURRENT TIMESTAMP
SYSDATE()
3 ms 1 जनवरी 1753 से 31 दिसंबर 9999 (*)
60 s 1 जनवरी 1900 से 6 जून 2079 तक
मानक एमएल Time.now() 1 μs (*) 1 जनवरी 1970 (*)
टीसीएल [clock seconds] 1 s 1 जनवरी 1970
[clock milliseconds] 1 ms
[clock microseconds] 1 μs
[clock clicks] 1 μs (*) (*)
विंडोज पॉवरशेल Get-Date[34][35] 100 ns[16] 1 जनवरी 0001 से 31 दिसंबर 9999
[DateTime]::Now[14]
[DateTime]::UtcNow[15]
विजुअल बेसिक .नेट System.DateTime.Now[14]
System.DateTime.UtcNow[15]
100 ns[16] 1 जनवरी 0001 से 31 दिसंबर 9999

यह भी देखें

टिप्पणियाँ

  1. 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.
  2. 2.0 2.1 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.

संदर्भ

  1. Ralf D. Brown (2000). "Int 0x1A, AH=0x00". Ralf Brown's Interrupt List.
  2. Ralf D. Brown (2000). "Int 0x1A, AH=0x02". Ralf Brown's Interrupt List.
  3. Ralf D. Brown (2000). "Int 0x1A, AH=0x04". Ralf Brown's Interrupt List.
  4. "CP/M Plus (CP/M Version 3.0) Operating System Guide" (PDF).
  5. "BDOS system calls".
  6. Ralf D. Brown (2000). "Int 0x21, AH=0x2c". Ralf Brown's Interrupt List.
  7. Ralf D. Brown (2000). "Int 0x21, AH=0x2a". Ralf Brown's Interrupt List.
  8. "Time Utilities Reference". iOS Developer Library. 2007.
  9. "Time Utilities Reference". Mac OS X Developer Library. 2007.
  10. "Time Utilities - Foundation". Apple Developer Documentation. Retrieved 6 July 2022.
  11. Ruth E. Goldenberg; Lawrence J. Kenah; Denise E. Dumas (1991). VAX/VMS Internals and Data Structures, Version 5.2. Digital Press. ISBN 978-1555580599.
  12. 12.0 12.1 "VSI C Run-Time Library Reference Manual for OpenVMS Systems" (PDF). VSI. November 2020. Retrieved 2021-04-17.
  13. 13.0 13.1 z/Architecture Principles of Operation (PDF). Poughkeepsie, New York: International Business Machines. 2007.
  14. 14.0 14.1 14.2 "DateTime.Now Property". Microsoft Docs.
  15. 15.0 15.1 15.2 "DateTime.UtcNow Property". Microsoft Docs.
  16. 16.0 16.1 16.2 "DateTime.Ticks Property". Microsoft Docs.
  17. "System.SysUtils.Time". Embarcadero Developer Network. 2013.
  18. "System.SysUtils.GetTime". Embarcadero Developer Network. 2013.
  19. "System.SysUtils.Date". Embarcadero Developer Network'. 2013.
  20. "System.DateUtils.Today". Embarcadero Developer Network. 2013.
  21. "System.DateUtils.Tomorrow". Embarcadero Developer Network. 2013.
  22. "System.DateUtils.Yesterday". Embarcadero Developer Network. 2013.
  23. "System.SysUtils.Now". Embarcadero Developer Network. 2013.
  24. "System.SysUtils.DayOfWeek". Embarcadero Developer Network. 2013.
  25. "System.SysUtils.CurrentYear". Embarcadero Developer Network. 2013.
  26. 26.0 26.1 "Time and Time Correction in Erlang". www.erlang.org.
  27. "SYSTEM_CLOCK". Intel Fortran Compiler 19.0 Developer Guide and Reference. 29 April 2019. Retrieved 23 July 2019.
  28. "SYSTEM_CLOCK — Time function". The GNU Fortran Compiler. Retrieved 27 October 2011.
  29. "System.nanoTime() method". Java Platform, Standard Edition 6: API Specification. 2015. Retrieved 23 July 2019.
  30. "Clock.systemUTC() and other methods". Java Platform, Standard Edition 8: API Specification. 2014. Retrieved 15 January 2015.
  31. "NSTimeInterval - Foundation". Apple Developer Documentation.
  32. Douglas Wegscheild, R. Schertler, and Jarkko Hietaniemi, "Time::HiRes". CPAN - Comprehensive Perl Archive Network. 2011. Retrieved 27 October 2011.
  33. James Britt; Neurogami. "Time class". Ruby-Doc.org: Help and documentation for the Ruby programming language. Scottsdale, AZ. Retrieved 27 October 2011.
  34. "Using the Get-Date Cmdlet". Microsoft Docs. Retrieved 23 July 2019.
  35. "Windows PowerShell Tip of the Week – Formatting Dates and Times". Microsoft Docs. Retrieved 23 July 2019.

बाहरी संबंध