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===


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


CLOCK_MONOTONIC
* 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)


<pre>
Üldiselt linux töötamisel ajaga on neli asjaolu, väljakutset, abivahendit jne
root@ubuntu-2604-01:~# cat clock_monotonic.py
#!/usr/bin/python3


import time
* 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)


def main():
Mõõtkavad
    # 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()
* 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
    monotonic_ns = time.monotonic_ns()
* mikrosekund - cpu peale järgmise task saatmise otsuse tegemise aeg, arvuti tava-mälu latsentsus
    print(f"Current clock_monotonic value (nanoseconds): {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
 
* sekund - mitme node klastri õla ümberlülitus (nt keepalived abil)
if __name__ == "__main__":
* minut - google authenticator lubab minuti sisestada koodi
    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 16: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