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