جمعه, ۳۱ فروردین, ۱۴۰۳ / 19 April, 2024
مجله ویستا

مشکل ۲۰۳۸ چیست؟


مشکل ۲۰۳۸ چیست؟
شاید از تبلیغات رسانه‌ها در مورد مشکل سال ۲۰۰۰ یا Y۲K چیزی یادتان بیاید
و جنجالی که شرکت‌های هواپیمایی و مخابراتی به راه انداختند را یادتان باشد. گرچه سال ۲۰۰۰ هم شد و زمین به آسمان نیامد!
اگر اهل کامپیوتر و این حرف‌ها باشید حتماً نام برنامه نویسی به زبان C به گوشتان خورده است. این زبان برنامه نویسی از اهمیت بالایی برخوردار است و اکثر نرم‌افزار‌هایی که روزانه از آن استفاده می‌کنید تحت آن نوشته می‌شوند.
مشکل سال ۲۰۰۰ به همین زبان‌های برنامه نویسی بر می‌گشت ولی برنامه‌های تحت C از این مشکل در امان بودند. ولی شاید در سال ۲۰۳۸ این برنامه‌ها خیلی هم خوش شانس نباشند!
این به این دلیل است که برنامه‌های C با سیستمی به نام کتابخانه استاندارد زمان یا Standard Time Library کار می‌کنند. این کتابخانه فرمت ۴ بایتی برای ذخیره کردن زمان به کار می‌برد و خاصیت‌های دیگری برای تغییر و تبدیل زمان دارد.
این استاندارد فرض می‌کند که شروع زمان ساعت ۱۲:۰۰:۰۰ اول ژانویه ۱۹۷۰ به وقت Pacific Time Zone است و هر زمان دیگری بر طبق این زمان سنجیده می‌شود و ساعت‌ها و روز‌ها و سال‌ها بر اساس ثانیه‌هایی که از این زمان گذشته شناخته می‌شوند. برای مثال ۹۱۹۶۴۲۷۱۸ مقدار ثانیه‌هایی است که از آن زمان می‌گذرد و ساعت ۱۶:۱۸:۳۸ بیست و یکم فوریه سال ۱۹۹۹ را نشان می‌دهد.
کار کردن با این روش برای کامپیوتر آسان است چون با انجام عملیات ساده جمع و تفریق می‌تواند فاصله بین دو تاریخ را محاسبه کند.
اگر کمی بیشتر در مورد کارکرد کامپیوتر اطلاعات داشته باشید می‌دانید که یک مقدار ۴بایتی در کامپیوتر ماکسیمم می‌تواند ۲۱۴۷۴۸۳۶۴۷ باشد. این مقدار در کتابخانه استاندارد زمان برنامه‌های C برابر روز ۱۹ ژانویه ۲۰۳۸ است و مقدار‌های بعد از آن منفی و غیر قابل قبول حساب می‌شوند.
این مشکل ساده تر از مشکل سال ۲۰۰۰ است. خوشبختانه برنامه‌هایی که ساختار خوب و مناسبی دارند را با ایجاد کمی تغیر در ساختار کتابخانه آن از این مشکل در امان نگاه داشت. برای مثال مقدار متغیر آن‌ها را از ۴بایتی به ۸بایتی تغییر داد.
این گونه مشکلات ساختاری در اکثر سیستم‌های کامپیوتری رایج است. برای مثال برای سیستم‌های PC IBM با توجه به اینکه شروع سال برای آن‌ها ۱۹۸۰ میلادی است و مقادیر زمان ۳۲ بایتی است؛ مشکلی در سال ۲۱۱۶ پیش بینی می‌شود.
وینذوز NT مقیاس ۱۰۰ نانو ثانیه دارد و با ۶۴ بایت زمان را ذخیره می‌کند و شروع زمان برای آن ابتدای سال ۱۶۰۱ است. از این رو پیش‌بینی می‌شود که در سال ۲۱۸۴ مشکلی برای آم پیش بیاید. البته اگر کسی تا آن زمان نام ویندوز NT را به خاطر داسته باشد!
در این میان سیستم‌های مکینتاس حالا حالاها وقت دارند که با خیال راحت به کار ادامه دهند چون تا سال ۲۹۹۴۰میلادی مشکلی برایشان پیش نمی‌آید!

رشید عسگری
منبع : همشهری آنلاین


همچنین مشاهده کنید