دوشنبه، 16 تیر 93 - 11:57

 

2038

احتمالاً بسیاری از شما مشکلی که برای سال ۲۰۰۰ پیش بینی میشد را به یاد دارید. مشکلی که تصور میشد بخاطر بازگشت دو رقم سال میلادی در سال ۲۰۰۰ به ۰۰ ایرادات منطقی به وجود آمده و موجب اختلال در شبکه های کامپیوتری شود. اما خوشبختانه کامپیوترها در آن سال آنقدر باهوش نبودند که چنین مشکلی پدیدار شود.اما وضع ممکن است در مورد سال ۲۰۳۸ اندکی متفاوت باشد. همانطور که میدانید بسیاری از برنامه های کامپیوتری با زبان C نوشته شده اند. زبان C از یک کتابخانه برای آگاهی از زمان استفاده می کند که به Standard Time Library شناخته می شود. این کتابخانه از یک عدد ۴ بایتی (۳۲ بیتی) برای شمارش زمان استفاده می کند. در واقع تبدیل این عدد ۳۲ رقمی در برنامه ها و سیستم عامل ها، زمان را بر اساس سال و ماه و روز و ساعت و دقیقه و ثانیه برای ما قابل فهم می کند.

این عدد ۴ بایتی از بامداد اول ژانویه ۱۹۷۰ ساعت ۱۲:۰۰:۰۰ مشغول شمارش است. در آن لحظه عدد مزبور صفر بوده و هر ثانیه یکی به آن اضافه شده است. پس برای مثال عددی مانند ۹۱۹۶۴۲۷۱۸ مشخص کننده گذرِ ۹۱۹ میلیون و ۶۴۲ هزار و ۷۱۸ ثانیه از اولین ثانیه بامداد اول ژانویه ۱۹۷۰ است و ساعت ۱۶:۱۸:۳۸ در ۲۱ فوریه ۱۹۹۹ به وقت غربی آمریکا را مشخص می کند.استفاده از این فرمت زمانی برای کامپیوترها بسیار ساده است. به این خاطر که با تبدیل عدد مربوطه به ثانیه و دقیقه و ساعت و روز و ماه و سال و تعیین اختلاف از ساعت مبدا می توانند زمان دقیق فعلی را تخمین بزنند و بفهمند دقیقا چقدر زمان از لحظه مبدا زمانی شان گذشته است.

اگر -همانقدر که ما انتظار داریم- آنقدر گیک باشید که از بیت و بایت سر در بیاورید، می توانید با یک محاسبه ساده بفهمید که حداکثر ارزش یک عدد ۴ بایتی رفم ۲٫۱۴۷٫۴۸۳٫۶۴۷ است. اگر این عدد را به زمان قابل فهم ترجمه کنید خواهید فهمید که در ۱۹ ژانویه ۲۰۳۸ به پایان میرسد. مشکل سال ۲۰۳۸ همینجاست. در آن زمان با به پایان رسیدن این عدد، کلیه برنامه ها و سیستم عامل های مبنتی بر زبان C برای درک زمان دچار مشکل شده و ممکن است باگ های بسیاری هویدا شود.

البته خوشبختانه به احتمال زیاد رفع این مشکل به مراتب از مشکل سال ۲۰۰۰ ساده تر است. بسیاری از برنامه های نوشته شده با C می توانند با فرمت زمانی جدید کامپایل شوند تا برای استفاده از کتابخانهٔ جدید آماده باشند. برای مثال یک فرمت ۸ بایتی می تواند جایگزین نسخه فعلی شود. به هر حال با توجه به اینکه زمان زیادی تا سال ۲۰۳۸ باقی مانده و راه حل هم وجود دارد، گذرِ بی خطر از آن چندان هم مشکل نیست.

[button color=”green” size=”medium” link=”http://computer.howstuffworks.com/question75.htm” target=”blank” ]منبع[/button]

logo-samandehi