[ TAG 101 ][31.07.2021] -Erfolgreich -IAP-20210601-20210722-1145
Ich beginne die Worksession um [31.07.2021][2211]. Durch die Worksession von gestern, die bis früh in den heutigen Morgen verlief, habe ich gemessen, dass das auslesen des Shared-Memory in der selben Nanosekunde passiert.
Der ersten Frage, der ich nachgehen muss, besteht aus dem Wertebereich der C-Datentypen. Ich erinnere mich damals an C++ - Wertebereiche. Jedoch weiß ich zu diesen Zeitpunkt nicht, ob diese Wertebereiche auch für C-Datentypen gelten.
- Quelle
Ich beginne mit der Frage welcher C-Datentyp sich für den Timestamp eignet. Mit der Methode [time.time_ns()] wird der Timestamp seit der Beginn der Epoche in Nanosekunden gemessen. Bei den Messungen [ 2021-07-31 ][ 07:10:57 ] haben wir eine Zahl in Nanosekunden [1.627.683.608.686.257.400ns]. In Exponentieller Schreibweise sieht die Zahl vereinfacht so aus [1,6*10^18].Um so eine große Zahl speichern zu können, kommt nur ein Datentyp in Frage. Es ist der [ctypes.c_uint64]
Der C-Datentyp [ctypes.c_uint64] ist [8Byte] groß und ein Wertebereich von [0] bis [18.446.744.073.709.551.615]
Differenz:
18.446.744.073.709.551.615-1.627.683.608.686.257.400
= 16.819.060.465.023.294.215 ns
Umrechnungsfaktor:
1/(1.000.000.000*60*60*24*30*12)
Rechnungscode:
16.819.060.465.023.294.215*(1/(1.000.000.000*60*60*24*30*12))
16.819.060.465.023.294.215 Nanosekunden
16.819.060.465,023294216 Sekunden
4.671.961,2402842483933333333333333 Stunden
194.665,05167851034972222222222222 Tage
6.488,8350559503449907407407407407 Monate
540,7362546625287492283950617284 Jahre
Antwort:
16.819.060.465.023.294.215 ns = 540 Jahre
In 540 Jahren sind die [8Bytes][64Bit] aufgebraucht. Somit sind die Ressourcen, die [ctype.c_unit64] bereit stellt zu meinen Lebzeiten nicht aufzubrauchen.
Für die Berechnung von DEON sind diese Datentypen jedoch zu klein.
Die nächste Frage besteht, wie sieht der Wertebereich von PID aus?
Dieser Quelle zufolge ist der Wertebereich zwischen [0] und [99.999]. Ein [16 Bit] unsigned Integer hat nur ein Wertebereich von [0] bis [65.535]. [16 Bit] sind somit für PID meiner Meinung nach zu wenig.
Für die Speicherung der PID eignet sich [ctype.c_unit32][32 Bit][4 Byte]. Der Wertebereich von [ctype.c_unit32] liegt bei [0] bis [4.294.967.295].
Ich werde noch ein Sicherheitsmechanismus programmieren müssen, der überprüft ob alle Prozesse, die man initialisiert hat auch beendet werden. Ob der Prozess im Augenblick ausgeführt wird oder nicht liefert die [ is_alive() ]-Methode.
- Quelle - Prozessstatus erfragen
- Quelle
Kommentare
Kommentar veröffentlichen