Linux operatsioonisüsteemis töötab aeg: erinevus redaktsioonide vahel

Allikas: Imre kasutab arvutit
Mine navigeerimisribaleMine otsikasti
(Uus lehekülg: '===Sissejuhatus=== TODO CLOCK_MONOTONIC <pre> root@ubuntu-2604-01:~# cat clock_monotonic.py #!/usr/bin/python3 import time def main(): # Retrieve the current value of the monotonic clock (in seconds) monotonic_time = time.monotonic() print(f"Current clock_monotonic value (seconds): {monotonic_time}") # If you need nanosecond precision, you can use time.monotonic_ns() monotonic_ns = time.monotonic_ns() print(f"Current clock_monotonic value (nano...')
 
Resümee puudub
1. rida: 1. rida:
 
===Sissejuhatus===
 
===Sissejuhatus===
   
  +
Linux operatsioonisüsteemis ajaga töötamisest tekkiv kasu seisneb selles, et arvutis toimuvad tegevused saavad juhtuda nö õigel ajal
TODO
 
   
  +
* mingi tegevus käivitatakse ettenäidatud ajal tulevikus (nö kalendriaja mõttes nt 8 juuni 2026 kell 13:54:55.002 UTC)
CLOCK_MONOTONIC
 
  +
* mingid tegevused käivitatakse ettenäidatud intervalliga (nt iga minuti järel kusjuures minut on pikk 60 sekundit ja * millisekundi täpsusega) - sekund on kusjuures see rahvusvaheliselt kokkulepitud sekund oma vältusega nagu ta on, tseesiumi isotoop jne (ehk SI mõõtühikute süsteemi sekund)
  +
* arvutis toimuvale ajaarvestusega seoses on olemas veahinnang (nt 1 ms, nt kui öeldakse et '8 juuni 2026 kell 13:54:55.002 UTC' siis kindlasti oli see vahemikus kell 13:54:55.001 kui 13:54:55.003)
  +
* logikirjetes on õige aeg
  +
* klastri komponendid ei eksi ära kuna saavad kellaajast erinevalt aru
  +
* saladused töötavad (nt sisselogimine, cookie, sertifikaat jms)
   
  +
Üldiselt linux töötamisel ajaga on neli asjaolu, väljakutset, abivahendit jne
<pre>
 
root@ubuntu-2604-01:~# cat clock_monotonic.py
 
#!/usr/bin/python3
 
   
  +
* riistvaraline metronoom-loendur (nt clocksource väärtuseks on 'tsc') - loeb cpu siseseid tikseid alates süsteemi viimasest reboodist
import time
 
  +
* metronoom-loenduri teisendamine kellaajaks (8 juuni 2026 kell 13:54:55.002 UTC moodi kujule)
  +
* välise kellaaja (8 juuni 2026 kell 13:54:55.002 UTC) abil süsteemi nö distsiplieerimine (korrigeerimine) - ntp, chrony, systemd-timesyncd
  +
* esitada süsteemile efektiivsed vahendid kellaaja küsimiseks (clock_gettime() üle vDSO)
   
  +
Mõõtkavad
def main():
 
# Retrieve the current value of the monotonic clock (in seconds)
 
monotonic_time = time.monotonic()
 
print(f"Current clock_monotonic value (seconds): {monotonic_time}")
 
   
  +
* nanosekund - protsessori sees on füüsikalised võnked üksteisest ajaliselt eemal nanosekundites (nt registrite jms liitmistehe) - 'cpu cycle', cpu sisemise cache latentsus - tsc conter iseensest ei liigu SI moodi ühikutest, aga kui ajaliselt mõõte siis jäävad need liikumised nanosekunditesse
# If you need nanosecond precision, you can use time.monotonic_ns()
 
  +
* mikrosekund - cpu peale järgmise task saatmise otsuse tegemise aeg, arvuti tava-mälu latsentsus
monotonic_ns = time.monotonic_ns()
 
  +
* millisekund - cpu plaanur annab cpu peal järjestikuliseks olekuks task'ile aega mõni millisekund, storage io latentsuses ok piiriks arvestatakse 4 ms tavaliselt, arvutis hoiatakse kellaaega õigena 1 ms täpsuse ümbruses tavaliselt
print(f"Current clock_monotonic value (nanoseconds): {monotonic_ns}")
 
  +
* sekund - mitme node klastri õla ümberlülitus (nt keepalived abil)
 
  +
* minut - google authenticator lubab minuti sisestada koodi
if __name__ == "__main__":
 
main()
 
 
root@ubuntu-2604-01:~# ./clock_monotonic.py
 
Current clock_monotonic value (seconds): 2423313.122769894
 
Current clock_monotonic value (nanoseconds): 2423313122804008
 
</pre>
 

Redaktsioon: 9. juuli 2026, kell 19:24

Sissejuhatus

Linux operatsioonisüsteemis ajaga töötamisest tekkiv kasu seisneb selles, et arvutis toimuvad tegevused saavad juhtuda nö õigel ajal

  • mingi tegevus käivitatakse ettenäidatud ajal tulevikus (nö kalendriaja mõttes nt 8 juuni 2026 kell 13:54:55.002 UTC)
  • mingid tegevused käivitatakse ettenäidatud intervalliga (nt iga minuti järel kusjuures minut on pikk 60 sekundit ja * millisekundi täpsusega) - sekund on kusjuures see rahvusvaheliselt kokkulepitud sekund oma vältusega nagu ta on, tseesiumi isotoop jne (ehk SI mõõtühikute süsteemi sekund)
  • arvutis toimuvale ajaarvestusega seoses on olemas veahinnang (nt 1 ms, nt kui öeldakse et '8 juuni 2026 kell 13:54:55.002 UTC' siis kindlasti oli see vahemikus kell 13:54:55.001 kui 13:54:55.003)
  • logikirjetes on õige aeg
  • klastri komponendid ei eksi ära kuna saavad kellaajast erinevalt aru
  • saladused töötavad (nt sisselogimine, cookie, sertifikaat jms)

Üldiselt linux töötamisel ajaga on neli asjaolu, väljakutset, abivahendit jne

  • riistvaraline metronoom-loendur (nt clocksource väärtuseks on 'tsc') - loeb cpu siseseid tikseid alates süsteemi viimasest reboodist
  • metronoom-loenduri teisendamine kellaajaks (8 juuni 2026 kell 13:54:55.002 UTC moodi kujule)
  • välise kellaaja (8 juuni 2026 kell 13:54:55.002 UTC) abil süsteemi nö distsiplieerimine (korrigeerimine) - ntp, chrony, systemd-timesyncd
  • esitada süsteemile efektiivsed vahendid kellaaja küsimiseks (clock_gettime() üle vDSO)

Mõõtkavad

  • nanosekund - protsessori sees on füüsikalised võnked üksteisest ajaliselt eemal nanosekundites (nt registrite jms liitmistehe) - 'cpu cycle', cpu sisemise cache latentsus - tsc conter iseensest ei liigu SI moodi ühikutest, aga kui ajaliselt mõõte siis jäävad need liikumised nanosekunditesse
  • mikrosekund - cpu peale järgmise task saatmise otsuse tegemise aeg, arvuti tava-mälu latsentsus
  • millisekund - cpu plaanur annab cpu peal järjestikuliseks olekuks task'ile aega mõni millisekund, storage io latentsuses ok piiriks arvestatakse 4 ms tavaliselt, arvutis hoiatakse kellaaega õigena 1 ms täpsuse ümbruses tavaliselt
  • sekund - mitme node klastri õla ümberlülitus (nt keepalived abil)
  • minut - google authenticator lubab minuti sisestada koodi