گذري بر دنياي محاسبات 64 بيتي
مقايسه
در يك سيستمعامل 32 بيتي مثل نسخههاي 32 بيتي ويندوز 2003 از يك حافظه مجازي (Virtual memory) براي انجام پردازشهاي مختلف استفاده ميشود. اين حافظه مجازي كه حداكثر 4 گيگابايت ميتواند ظرفيت داشته باشد به دو قسمت تقسيم ميشود. يك قسمت 2 گيگابايتي آن به وسيله برنامه در حال اجرا اشغال شده و 2 گيگابايت ديگر در اختيار سيستمعامل قرار ميگيرد.
تا اينجا همه چيز بسيار عادي به نظر ميرسد اما مشكل زماني پيش ميآيد كه 2 گيگابايت سهم برنامههاي در حال اجرا به مرز پرشدن نزديك ميشود. به عنوان مثال يك بانك اطلاعاتي SQL Server را در نظر بگيريد كه براي اتصال هر كاربر به سرور و انجام عمليات موردنظر وي 20 مگابايت حافظه مجازي را در نظر ميگيرد. با رسيدن تعداد كاربران به مرز يكصد نفر، كل حافظه مجازي 2 گيگابايتي در اختيار SQL Server قرار ميگيرد و اين به معناي نزديك شدن سيستم به يك نقطه بحراني در عمليات سرويسدادن به كاربران است.
در نسخههاي 32 بيتي يكي از راههايي كه براي اين مسأله در نظر گرفته ميشد، اختصاص 3 گيگابايت از حافظه مجازي به برنامههاي درحالاجرا بود. اين روش كه با استفاده از دستكاري در فايل boot.ini انجام ميگرفت، يك گيگابايت از حافظه مجازي در اختيار سيستمعامل را به سهميه حافظه مجازي برنامههاي در حال اجرا واگذار ميكرد و تا حدودي مشكل كمبود حافظه مجازي را رفع ميكرد. اما خود اين عمل هم عوارض جانبي خاص خود را دارد و آن محدود شدن كرنل سيستمعامل به يك گيگابايت حافظه مجازي براي انجام عمليات cache است.
اين محدود شدن باعث افت سرعت انتقال اطلاعات از سرور به كلاينتها ميشود. ضمن اينكه باز هم در نهايت با زيادترشدن تعداد كاربران يا پردازشهاي موردنظر آنان، اين 1 گيگابايت الحاقشده نيز به مرز اشتغال شدن كامل نزديك ميشود و مديران سيستم را به ناچار مجبور به افزايش تعداد سرورها براي رفع مشكل ميكند. با آمدن ويندوز 2003 نسخه 32 بيتي، قدرت آدرسدهي سيستمعامل براي حافظههاي فيزيكي (RAM) به 32 گيگابايت براي نسخه Enterprise و 64 گيگابايت در نسخه DataCenter افزايش يافت و اين به معناي نياز كمتر سيستم به استفاده از حافظه مجازي و در نتيجه كمتر شدن مشكل مربوط به محدوديت حافظههاي مجازي بود.
اما به هر حال استفاده از حافظه مجازي براي پردازش اطلاعات امري گريزناپذير است و بههمين دليل توجه سازندگان سيستمعامل همواره معطوف به پيدا كردن راهحلي براي عبور از اين مشكل بود. سرانجام با مطرح شدن و تولد سيستمعامل 64 بيتي ويندوز 2003 كه با استفاده از قدرت پردازندههاي 64 بيتي جديد قادر بود از يك سيستم آدرسدهي 40 بيتي استفاده كند، ميزان حافظه مجازي قابل دسترسي سيستم از 4 گيگابايت به 40 2 يعني 16 ترابايت (هزار گيگابايت) افزايش يافت.
بدينترتيب 8 ترابايت از اين ظرفيت در اختيار برنامههاي در حال اجرا و 8 ترابايت ديگر در اختيار سيستمعامل قرار گرفت. مهمترين سؤالي كه در اينجا ميتوانست مطرح شود اين است كه آيا برنامههاي سابق محيط 32 بيتي كه براي استفاده از حداكثر 3 گيگابايت حافظه مجازي كامپايل شدهاند قادر به بهره بردن از اين 8 ترابايت فضاي جديد هستند يا خير. پاسخ اين سؤال هم ميتواند مثبت باشد و هم منفي. بدينصورت كه برخي برنامههاي كامپايلشده در محيطهاي 32 بيتي كه به صورت صريح قدرت استفاده از حداكثر 3 گيگابايت حافظه مجازي را دارند، با ورود به محيط 64 بيتي هيچ تغييري را احساس نخواهند كرد.
اما برخي ديگر كه با تكنولوژي Large Addressware كامپايل شدهاند قادر خواهند بود تا 4 گيگابايت از حافظه مجازي را در محيط جديد مورد استفاده قرار دهند. از لحاظ سرعت انجام عمليات نيز برخي برنامههاي كامپايل شده در محيط 32 بيتي (مثلاً برنامههاي نوشته شده با ASP.NET كه از تكنولوژي Multithreading براي اجراي موازي چند دستورالعمل در آن واحد استفاده ميكنند)، به دليل قدرت بينظير پردازندههاي 64 بيتي در انجام اين كار ميتوانند از مزاياي محيط جديد اجرا استفاده كرده و سرعت اجراي خود را افزايش دهند.
اما اگر برنامهاي (مثلاً يك فايل Exe) در محيط توسعهاي مثل ويژوال بيسيك نسخه ششم براي دسترسي به يك پايگاه داده و كار با آن بدون استفاده از مكانيسم پردازشي موازي و به صورت ساده نوشته شده باشد، اين برنامه حتي اگر برروي يك سرور 64 بيتي هم اجرا شود نميتواند از قابليتهاي محيط جديد سودي ببرد. بنابراين اگر قرار است اين برنامه برروي كلاينت نصب شده و پايگاه داده موردنظر كه SQL Server است برروي يك سرور باشد، بهتر آن است كه كلاينت در همان وضعيت 32 بيتي باقي بماند و سرور به نسخه 64 بيتي ويندوز 2003 ارتقاء دادهشود.
در اين صورت موتور بانكاطلاعاتي SQL Server كه در تمام نسخههاي خود از شيوه Multithreading براي انجام دستورات موردنظر كاربران استفاده ميكند، ميتواند در محيط جديد با سرعت بهتري فرامين رسيده از طرف كلاينتها را پردازش كرده و نتيجه را سريعتر به آنها برگرداند و كارايي كلي اين سيستم بانك اطلاعاتي را به نحو مطلوبي افزايش دهد. اصولاً برنامههاي نوشته شده براي محيطهاي 32 بيتي با استفاده از رابطي به نام WOW64 قادر خواهند بود در محيط 64 بيتي اجرا شوند و از مزاياي ارتقاء سيستم عامل و دسترسي به حافظه بيشتر بهره ببرند.
پردازنده
هر دو شركت اينتل و AMD از همان آغاز توليد پردازندههاي 64 بيتي، تمام تمركز خود را برروي پردازندههايي كه در رده كامپيوترهاي سرور مورد استفاده قرار ميگيرد، گذاشتند. پردازنده اُپترون (Opteron) محصول شركت AMD وXeon محصول اينتل هر دو به همين منظور طراحي و توليد شدند.
پس از آن استفاده از تكنولوي 64 بيتي در رده كامپيوترهاي كلاينت نيز مدنظر هر دو شركت قرار گرفت و از آنجا كه سروصداي ظهور سيستمعامل 64 بيتي ويندوزXP به تدريج نويد يك دگرگوني در كارايي اين رده از كامپيوترها را ميداد، اين دو شركت پردازندههاي 64 بيتي جديدي را با قيمت ارزانتر براي كار در كلاينتها روانه بازار كردند. پردازنده Athlon 64 و پنتيوم 4 سري EM46T از جمله اين پردازندههاي جديد بودند.
ضمن اينكه در رده سرور نيز هر دو به ارتقاء پردازندههاي ويژه خود پرداختند. پردازندههاي اُپترون و پردازندههاي ايتانيوم از اينتل نتيجه اين ارتقاء محسوب ميشوند كه از آخرين دستآوردهاي تكنولوژي 64 بيتي بهشمار ميروند.
هماكنون AMD پردازندههاي Opteron را براي استفاده در كامپيوترهاي دسكتاپ و سرور با سيستمعامل 64 بيتي، پردازندههاي Athlon 64 را جهت استفاده در كامپيوترهاي دسكتاپ و كيفي با سيستمعامل 32 يا 64 بيتي و پردازندههاي Turion را براي استفاده در كامپيوترهاي كيفي با سيستمعامل 64 بيتي به بازار عرضه ميكند. اينتل هم انواع پردازندههاي نوع Xeon خصوصاً سري MP را براي كار در محيط 32 يا 64 بيتي و انواع پردازندههاي رده ايتانيوم را براي سرورهاي با سيستمعامل 64 بيتي توليد ميكند.
نرمافزار
با تحولي كه در دنياي پردازندهها و سيستمعاملها در حال وقوع بود، قاعدتاً دنياي نرمافزار نيز بايد شاهد تغييراتي در نحوه انجام پردازشها و سرعت و كارايي اجرا ميشد. در اولين گام كليه سرويسهايي كه به همراه ويندوز 2003 نسخه 64 بيتي ارايه شد همگي با اين تكنولوژي جديد همراه شدند.
اين سرويسها كه متعلق به مقوله نرمافزار به حساب ميآمدند، از اكتيودايركتوري گرفته تا Terminal service و وبسرور IIS با امكانات جديد محيط 64 بيتي مثل استفاده از فضاي بسيار بزرگ حافظه، افزايش سرعت عمليات I/O و استفاده مناسب و بهينه از زمان CPU كاملاً هماهنگ شدند.
از طرفي ديگر بلافاصله خبر از ارايه شدن نسخههاي جديد برخي نرمافزارهاي سمت سرور مايكروسافت براي كار در محيط 64 بيتي رسيد. نسخه 64 بيتي SQL Server2000 و بعد از آن حرف و حديثهاي مربوط به نسخه 2005 كه مرزهاي سرعت و كارايي را پشتسر ميگذارد، از اين دست به شمار ميروند. در همين حال خبرهاي ديگري حاكي از اقبال اين دگرگوني از سمت برنامهنويسان بود.
محيط برنامهنويسي محبوب داتنت اينبار با سروصداي جديدي وارد معركه شد و Visual Studio2005 را براي نوشتن برنامههاي كاربردي 64 بيتي به علاقمندان ارايه كرد. از سوي ديگر رقباي مايكروسافت هم بيكار ننشستند. اوراكل با محصول oracle 10g و آيبيام با توليد DB2 64 و بسياري ديگر از سازندگان نرمافزار و خصوصاً سازندگان برنامههاي سرور محيط بزرگ (Enterprise) با سعي و تلاش خود نشان دادند كه پلتفرم جديد پردازشهاي 64 بيتي براي آنها از اهميت ويژهاي برخوردار است. به هر حال در آينده نزديك شاهد رونق فناوري محاسبات 64 بيتي در بسياري از نرمافزارهاي مختلف خواهيم بود. در شمارههاي آينده ماهنامه شبكه سعي خواهيم كرد دستاوردهاي جديد اين فناوري را مورد بررسي قرار دهيم.
ماهنامه شبکه