Πρόβλημα του έτους 2038

Το πρόβλημα 
Η μεγαλύτερη ημερομηνία που μπορεί να παρασταθεί χρησιμοποιώντας 32 μπιτ προσημασμένους ακεραίους σε συστήματα Unix είναι η 19η Ιανουαρίου 2038, 03:14:07 (2-1 = 2.147.483.647 δευτερόλεπτα μετά την 1η Ιανουαρίου 1970). 
Το πρόβλημα μπορεί να παρουσιαστεί σε ενσωματωμένα συστήματα που χρησιμοποιούν ημερομηνίες είτε για υπολογισμούς είτε για τη λειτουργία τους. Επίσης πολλές δομές δεδομένων στο υπάρχον λογισμικό ή σε υπάρχουσες βάσεις δεδομένων, χρησιμοποιούν προσημασμένους ακεραίους 32 μπιτ για ημερομηνίες.

 Λύση 
Δεν υπάρχει γενική καθολική λύση για το πρόβλημα αυτό. Η μετατροπή των δομών ή των χρονικών σημάνσεων σε μη προσημασμένους ακεραίους θα επέκτεινε τη διάρκεια ζωής κατά 68 χρόνια στο μέλλον αλλά παράλληλα θα μείωνε τη χρηστικότητά του κατά 68 χρόνια στο παρελθόν καθιστώντας άχρηστες τις ημερομηνίες πριν την 1η Ιανουαρίου του 1970. Η απλή αντικατάσταση των ακεραίων 32 μπιτ με ακεραίους 64 μπιτ θα έχει επιπτώσεις σε συναρτήσεις που περιμένουν τη μορφή της ημερομηνίας σε προσημασμένο 32 μπιτ ακέραιο.

Δεν υπάρχει καθολικά αποδεκτή λύση ούτε για τα συστήματα Digital Video Broadcasting και Advanced Television Systems Committee λόγω του λογισμικού που χρησιμοποιείται στους ήδη εγκατεστημένους δέκτες.

Τα περισσότερα λειτουργικά συστήματα που είναι σχεδιασμένα για χρήση σε υλικό το οποίο χρησιμοποιεί 64 bit, χρησιμοποιούν ήδη χρονοσήμανση 64 bit. Η χρονοσήμανση αυτή έχει μετακινήσει την εμφάνιση του αντίστοιχου προβλήματος κατά περίπου 292 δισεκατομμύρια έτη (στην 4η Δεκεμβρίου του έτους 292.277.026.596), χρόνος που είναι μεγαλύτερος από την εκτιμούμενη ηλικία του σύμπαντος.

Πολλά από αυτά τα λειτουργικά συστήματα χρησιμοποιούν κάποιο μηχανισμό εκτέλεσης προγραμμάτων τα οποία είναι σχεδιασμένα για αρχιτεκτονική 32 μπιτ. Σε αυτά τα προγράμματα το πρόβλημα του 2038 θα συνεχίσει να υπάρχει. 

Παραπομπές

Κατηγορία:Φαινόμενα
Κατηγορία:Ημερολόγια