بعد مشكلة الألفية: مشكلة أخرى مع السنين!
|
* إعداد : سناء عيسى
مشكلة عام 2038.. خطأ بسيط في حساب الزمن! كلنا نتذكر مشكلة عام 2000 أو «آفة الألفية» كما كان يسميها البعض.
وكلنا نتذكر كم نالت تلك المشكلة من اهتمام نتيجة للتغطية الإعلامية الكبيرة التي حظيت بها على مستوى العالم. معظم البرامج المكتوبة بلغة السي«C » كانت إلى حد كبير محصنة من مشكلة عام2000 لكنها ستعاني من مشكلة عام 2038 ومشكلة عام 2038 مرتبطة أساسا بالبرامج المكتوبة بلغة السي«C» .
وهذه اللغة تستخدم مجموعة من البرامج الموثقة وتسمى«قاعدة الزمن المعياري» standard time library time وتخصص هذه البرامج سعة تخزين قدرها 4 بايت لتسجيل قيمة الزمن عند لحظة معينة كما أنها تحتوي على المعادلات الرياضية اللازمة لتحويل القيم الزمنية وحسابها وعرضها. ويقوم هذا النظام الرقمي لتخزين القيم الزمنية في لغة السي بسعته التخزينية 4 بايت على افتراض أن الزمن يبدأ من 1 يناير 1970 في الساعة00:12صباحا أي أن القيمة الزمنية لهذه اللحظة رياضيا هو صفر. ومن وجهة النظر الرياضية فإن لغة السي تحول أي زمن إلى عدد معين من الثواني فمثلا عندما نقول ان قيمة الزمن تساوي 919642718 فهذا يعني عمليا أنه قد مر منذ 1 يناير 1970 هذا العدد من الثواني وهو ما يعني الأحد 21 فبراير1999 الساعة 38:18:9 بتوقيت المحيط الهادي (أمريكا وكندا).
وهذا النظام مناسب تماما لجميع البرامج التي تستخدم حسابات زمنية لأن الفرق بين قيمتين زمنيتين هو عدد الثواني بينهما.
ومن هذه القيمة نستطيع حساب الدقائق والساعات والأيام والشهور والسنوات بين القيمتين وإلى الآن لا تبدو أن هناك مشكلة قائمة ولكن الحقيقة أن مقدار 4 بايت المخصصة لتخزين العدد الصحيح للقيمة الزمنية هو قيمة محدودة فأكبر رقم صحيح يمكن تخزينه في سعة 4 بايت هو 2147483647 وهو ما يعني يوم 19 يناير 2038 فبعد هذا التاريخ ستخزن القيمة الزمنية بقيمة سالبة وهو أمر غير مقبول عمليا. وفي هذا التاريخ وبعده ستظهر أخطاء الحسابات الزمنية للغة «سي» وهذه المشكلة تبدو للوهلة الأولى معقدة ولكنها أسهل نسبيا من مشكلة عام2000 و خاصة بالنسبة للحاسبات العملاقة mainframes فالبرامج المكتوبة بدقةومهارة يمكن ببساطة إعادة تحويلها recompiled إلى برامج تنفيذية بعد عمل إصدارجديد لها يحتوي على نسخة معدلة من البرامج الموثقةLibrary. فعلى سبيل المثال في قاعدة حساب الزمن time تستبدل سعة القيمة الزمنية (4 بايت) ب 8 بايت.
.....
الرجوع
.....
|
|
|
|
توجه جميع المراسلات التحريرية والصحفية الى
chief@al-jazirah.com عناية رئيس التحرير
توجه جميع المراسلات الفنية الى
admin@al-jazirah.com عناية مدير وحدة الانترنت
Copyright 2002, Al-Jazirah Corporation, All rights Reserved
|