پایان نامه کارشناسی کامپیوتر
مقدمه
ویندوز NT نسبت به سیستمهای عامل OS/2 و UNIX و ویندوز 16 بیتی دارای برتریهایی است که این خصوصیات و امکاناتی که ویندوز NT دارد، با یک سیستم عامل یا بیشتر نیز قابل دسترسی است. ولی هیچکدام از سیتم عاملها قابلیتهای ویندوز NT را ندارد. در این قسمت مهمترین خصوصیات NT را معرفی میکنیم و یکسری خصوصیات کلیدی NT را شرح میدهیم.
1- آدرسدهی 32 بیتی
در انیجا لازم است توضیحی در مورد اینکه آدرس چیست و نحوه آدرسدهی که میکروسافت DOS چگونه است بدهیم. آدرس کلاً محل یک بایت از اطلاعات در حافظه کامپیوتر یا Mass storage میگویند. آدرس بر دو نوع است. آدرس میتواند فیزیکی و یا میتواند مجازی باشد.
1-1- آدرسدهی فیزیکی: به بایت داده معین در محل فیزیکی معینی از حافظه یا دیسک اشاره میکنند.
2-1- آدرسدهی مجازی: به آدرس منطقی (نرمافزاری) اشاره میکند که سیستم عامل به آدرس فیزیکی معینی اشاره میکند.
مطلب قابل توجه در انیجا این است که ویندوزNT از بین دو آدرسدهی، از آدرسدهی مجازی استفاده میکند که برای هر درخواست اصولاً چهار گیگابایت اختصاص داده میشود که البته 2 گیگابایت آن برای سیستم عامل منظور میشود.
به دنبال پیشرفت مایکروسافت DOS به دلیل محدودیتهای حافظه، میکروپروسسورهایی از قبیل 8086 و 8088 شانزده بیتی که یک فضای آدرسدهی بیست بیتی را عرضه میداشتند طراحی کردند. یعنی در واقع این میکروپروسسورهای میتوانستند یک مگابایت از حافظه را به طور فیزیکی آدرسدهی کنند. با توجه به این که بیست بیت به خوبی در کلمه (word) شانزده بیتی جای نمیگرفت مهندسین INTEL برای دستیابی به هر آدرس، طرحی به نام تقسیم حافظه ارائه دادند.
در این نوع آدرسدهی آمدند یک مگابایت را به 16 قسمت تقسیم کردند که هر قسمت 64 کیلوبایتی با ghunk بود. این کار بدین دلیل بود که برنامهنویسان اصولاً در پردازندههای 8 بیتی قدیمی مانند INTEL 8085 و ZILOG Z80 با آدرسدهی 64 kdyte آشنایی داشتند.
برای اینکه برنامنویسان بتوانند به هر آدرسی در داخل فضای آدرس یک مگابایتی دست پیدا کنند آدرس حافظه فیزیکی محاسبه شد. (قسمت در 16 ضرب کرده و سپس یک offset به آن اضافه میشود. نتیجه به بایت مورد نظر اشاره میکند.) بقیه پردازندههای 6 بیت مانند 68000 Motorola از آدرسدهی خطی استفاده میکردند که هربیت از حافظه مستقیماً و بدون استفاده از offset & segment آدرسدهی میکرد. و علاوه بر تسهیلاتی مانند MS-DOS 5.0 و windows 3.1، طراحان زیادی طرحهای خود را برای آدرسدهی و بیش از 640 کیلوبایت حافظه پیشنهاد کردند. میتوان از معروفترین نمونهها QEMM QUALAS’ 386 MAو QUARTERDECK’S را نام برد.
کل این و طرحها حافظه مورد استفاده را بیش از حد 640 کیلوبایتی بسط داند، ولی مجبور کردن آنها به کار با یک موقعیت خاص PC و دنباله درخواستها و تسهیلات نرمافزاری معمولاً یک هدر کردن زمان، پردازش خنثیکننده است. همیشه اینطور به نظر میرسد که حداقل یک درخواست مهم با یکی از تسهیلات با مدیریت حافظه شما سازگار نیست.
اولین پردازنده که فضای آدرسدهی خطی را به کار برد و نیز با DOS سازگاری داشت INTEL 386 بودکه میبایست تقسیمبندی حافظه در کنار آن احتیاج به مدیریت شخص ثالث را حذف کرد که در واقع فضای آدرسدهی 32 بیتی INTEL 386 با برنامهها نوشته شده برای پردازندههای INTEL قبلی سازگاری نداشت.
این برنامههای ناسازگار، DOS و تمام برنامههای اجرا شده تحت DOS بودند. برایایجاد سازگاری با DOS و درخواستهای آن INTEL یک طریقه دیگر آدرسدهی را طرح کرد بنام Real Mode .
این نوع آدرسدهی با سایر نرمافزارهای قبل سازگاری داشت ولی متذسفانه در هنگام کار با این نوع آدرسدهی یعنی Real moed ، 386 و (486) بیش از یک 8086 خیلی سریع عمل نمیکند. DOS که در مقابل محدودیتهای 8086 و 8088 نوشته شده بود، هنوز بسیار شبیه نسخه سریع حد خود در سال 1981 با تمام محدودیتهای آدرسدهی عمل میکنند.
دو طریق آدرسدهی حافظه:
Real Mode : یک طریقه آدرسدهی حافظه است که از آدرسدهی نوع تقسیمبندی حافظه یعنی همان segment & offset استفاده میکنند. ماننده پردازنده INTEL 8086.
Protected Mode : یک طریقه دیگر آدرسدهی حافظه که برای دستیابی به بایت حافظه به جای segment & offset از آدرسدهی خطی استفاده میکند. این نوع آدرسدهی مشخصات حفاظت سختافزاری که windows و windows NT آن را به کار گرفتهاند، فعال میکند.
windows NT برای تهیه آدرسدهی 32 بیتی واقعی Trune 32-bit addressing از آدرسدهی خطی 386 و 186 و پنتوم (INTELS586) و همچنین پردازنده pisk همچنون Mips و DigtalAlpha استفاده می کند. قابل ذکر است که دیگر NT از سازگار بودن با DOS و windos 16بیتی صرفنظر می کند و دارای طرحی است بنام (viriul dos machine) که در این صورت این امکان را به ویندوز NT می دهد که بتواند در خواستهای Dos و windows16 بیتی را اجرا کند (بعدا در مورد VDM صحبت خواهیم کرد ) .
مزیت های آدرس دهی 32 بیتی :
1-توسعه نرم افزار با حذف قسمت بندی حافظ آسانتر و سریع تر می شود.
2- برنامه نویسان دیگر لآزم نیست حافظه مورد در خواستهایشان آشنا باشد .
3-کارسیستم باحذف سربارپردازشی که موردلزوم مدیریت حافظه است بهبود می یابد.یعنی در هیچ گونه نیازی به حافظه ثالثی ندارد.رهایی از مدیریت حافظه سازگاریهای NT واقع ویندوز مختلف سخت افزار ونرم افزار را نیزحذفمی کندیعنی وضعیت استقرارنرم افزار می تواند ساده و 16 بیتی باشد WindowsیاDos ابتدایی تر از
4- میزان برنامه قابل دسترسی و اندازه داده در آدرس دهی 32 بیتی زیاد می شود.
ویندوز NT از ترکیب برنامه و سیستم با اندازه چهار گیگا با یت که صدها برابر بزرگتر از حدودقابل اجرا روی بر نامه های DOS و ویندوز 16 بیتی تشکیل شده است . فایلهای بزرگ که توسط ویندوز NT قابل پردازش می باشد غیر ممکن است که توسط DOS ویاwindos16 بیتی پردازش شوددر خواست کننده های (در خواستهای ) پیچیده که فایلهای بزرگ را پردازش میکنند فقط با ویندوز NT عمل می کندو آن هم فقط به دلیل آدرس دهی 32 بیتی است . در خواستهای پیچیده همچون رزرواسیون، مبادله دارایی وسیستمهای پردازش طلبهای بیمه است
از دیگر خصوصیات کلیدی ویندوز NT ،حافظه مجازی و یا VM است که در زیر توضیح می دهیم .
2-VIRTUAL MEMORY (حافظه مجازی)
هر در خواست در ویندوز NT میتواند به 4 گیگا بایت حافظه دست پیدا کند (به خاطر فضای 32 بیتی )
که البته از مقدار تصور شده برای هر در خواست بیشتر است . دو نوع حافظه اصلی کامپیوتر به شرح زیر است :
RAM :RAM یا حافظه تصادفی (حافظه دسترسی تصادفی ) از نوع دیگر سریعتر است . مزیتهای آن به شرح زیر است :
1-PC برای اینکه بتوانند یک بایت داده را در 70 بیلیونیم ثانیه دریافت و بعد ذخیره کننداز RAM استفاده می کنند
2-برنامه ها به طور مستقیم می توانند به آدرس حافظه بروند و بایت مورد نظر خود را دریافت کنند درواقع بجای اینکه به بلاک مورد نظر در روی دیسک مراجعه کند و با یتها ی بلاک را بایت به بایت بخواند وبه بایت مورد نظر برسد می تواند به طور مستقیم به آدرس حافظه بروند . ترجیحا استفاده از RAM را پیشنهاد می کنند.
عیوب استفاده ازRAM :
1 -در هنگام قطع برق تمام اطلاعات ذخیره شده در RAMاز بین می رود.این نوع حافظه را VOLATL STORAGE نامیده میشود . در این جا قابل ذکر است که در بسیاری از کامپیوتر هایی که قابل حمل هستند
هنگامی که کامپیوتر خاموش است مقداری برق به حافظه RAM کامپیوترمی رسدکه باعث می شود داده های ذخیره شده در آن از بین نرود و در هنگام تمام شدن باطری آن اطلاعات در آن با تمام شدن باطری از بین می رود.
2-عیب دیگر RAM ها در قیمت آن مشاهده می شودوآن نیزگران بودن قیمت RAMها است در واقع هر مگا بایت از RAM ها برای pc ها حدود 35 دلار فروخته می شود . از روی این قیمت می تواند تعداد RAMهایی که در یک pc می توان نصب کردرا حدس زد .اصولا به pc های kigh-end 8 مگا بایت RAM وصل می شود و این مقدار را خیلی ها می توانند تا 20 مگابایت افزایش دهند و بعضی نیز این مقدار را به 64 مگابایت میرسانند .برای این امر به RAM با چگالی بالا تری نیاز است که قیمت آن به ازای هر مگابایت افزایش می یابد ولی فضای فیزیکی کمتری را اشغال میکند نوع دیگر حافظه اصلی در کامپیوتر hard disk است که در زیر شرح داده شده است :(نوع دیگر حافظه Mass storage ها هستند که روی hard disk سواری می شوند.
Mass STORAGE :HARD DISK
همان طور که در بالا گرفته شده نوع دیگر حافظه اصلی Mass storage ها هستند که بر رویhard disk سوار می شوندhard disk ها به مراتب کند تر از RAM ها هستند .
از نظر قابلیت ذخیره سازی hard disk ها از 40 مگا بایت تا حدود 2 گیگا بایت قابلیت ذخیره سازی دارند .
از نظر قیمت هم یک pc hard 200 مگابایتی تقریبا 400 دلار ویا به عبارتی دو دلار به ازای هر مگا بایت می باشد که در مقایسه با قیمت RAM که در حدود قیمت یک مگا بایت RAM است . در هنگام قطع برق محتویات hard ها از بین نمی رود به این گونه حافظه Nonvolatile storage می شود .
استفاده از هر دو نوع حافظه برای pc ضروری به نظر می رسد.از RAM برای برنامه های اجرایی و ذخیره.
دادههای حساس هنگامی که اجرا ضروریست استفاذه می شود واز hard disk برای ذخیره طولانی اطلاعات در زمانی که قیمت به ازای هر بایت مهم می باشد، استفاده میشود .
در این جا یک سئوالی که پیش می آید این است که اگر به بیش از RAM قابل ذسترسی نیاز پیدا کردیم چه می کنیم؟مثلآ فرض کنید که یک برنامهspreed sheet به دو مگا بایت وRAM ویک فایل spreed sheetکه به دو مگا بایت احتیاج دارد داشته باشیم . این سئوال پیش می آید که آیا فقط به همین 4 مگابایت نیاز داریم ؟ خود سیستم عامل به مقداری زیاد RAM احتاج دارد . پس ما میزان لازم RAM برای سیستم عامل و پردازنش speed sheet به طور همزمان در دست نداریم .
در DOS برای فراخوانی برنامه و داده اگر RAM به مقدارکافی نداشتیم مجبوربودیم یک RAM اضافه دیگر خریداری می کردیم وبه PC نصب می کردیم. ولی در ویندوز NT ما راه چاره ای داریم وآن این است که امکان تبدیل قسمتی از hard به فضای RAM وجود دارد.به طوری که در خواستهایی بزرگتر از آن هستند که در حافظه RAM جای بگیرند ، می توانیم اجرا کنیم . این خصوصیت ویندوزNT را viriual Memory نامگذاری کردند . بعدا به طرز کار VM تحت ویندوز NT وتوضیح وشرح آن خواهیم پرداخت .
در هنگام نصب ویندوز NT (برای اولین )کاربران و یا مدیرسیستم موظف است که برنامه راه اندازNT را چک کند تا به فضای قابل دسترسی پذیرRAM وHARDدر سیستم عالملی پی ببرد.برپایه فضای دسترسی پذیر دیسک RAM یک swap file ایجاد میکنند که اندازه آن حداکثر می تواند به اندازه RAM موجود در سیستم باشد . در هنگام نصب ویندوز NT کاربر میتواند اندازهswap file را تغییر بدهد . رابطه swap file با حافظه مجازی از نظر اندازه مستقیم است . یعنی هر چه اندازه swap file بزرگ باشد ، حافظه مجازی نیز بزرگ میباشد. ولی قابل ذکر است که بزرگی آن تا اندازه فضای ذخیره سازی فایل ثابت، اذامه خواهد داشت .
اندازه نهایی swap file را جابجایی وظرفیت کل دیسک مشخص می کند.در زیر توضیحی در مورد swap fileو این که swap file چیست می دهیم .
SWAP FILE
swap file قسمتی از حافظه سخت است که توسط مدیریت حافظه مجازی بکار می رود که کارش در واقع نگهداری موقت بخشی از محتویات RAM است تا اینکه به سیستم این امکان داده شود که برنامه هلآیی که از نظر اندازه از RAM قابل دسترسی بزرگترند ،را بتواند اجرا کند.
دنباله بحث :بعد از نصب ویندوز NT و اجرای آن swap file به عنوان یک انباره موقت برای محتویات RAM بکار برده می شود. در زیر دو وظیفه مهم مدیر حافظه مجازی را بررسی می کنیم:
1-مدیریت داده ذخیره شده بر روی دیسک وانتقال آدرس داده های روی پایه دیسک به فضای آدرس دهی 32 بیتی ویندوز NT .در خواست میتواند عملیاتی را بر روی داده انجام دهد بدون اینکه توجه به این داشته باشد که داده از نظر فیزیکی درکجا قرارگرفته است.یعنی میتواند عملآیاتی را برروی داده درفضای حافظه مجازی انجام دهد
2-در ویندوز NT هنگامی که بخواهند از RAM بیشتر از آنچه که در دسترس است استفاده کنند این مدیریت حافظه مجازی است که قسمتی ازRAM رابه swap file منتقل می کندتا اینکه فضایی برای داده های لازم باز کند و در زمان لازم دوباره بهRAM بازگردانده می شود .برای جلوگیری از هدر رفتن زمان ،به جای اینکه داده ها بایت به بایت از RAM به ذیسک ویا از دیسک به RAM منتقل شوند ،این انتقال به این صورت است که داده های به صورت4kilopages منتقل می شوند نه بایت به بایت.برنامه درخواستی لزومی نداردکه چیزی در مورد پردازش swaping بداند swaping تکرار شونده روی پاسخ خرابی سیستم وهمچنین روی فعالیتهای سنگین دیسک تاثیر گذار است .
برنامه ای که یک فایل راروی فضای آدرس دهی مجازی ویندوزطNT مورد پردازش قرار می دهد(روی هارد )از نظر سرعت خیلی کند تر از برنامه ای است که از دادها در داخل RAM استفاده میکند .یعنی برنامه اولی از برنامه دومی کندتر اجرا می شود .مدیریت حافظه مجازی برای این طرحی که در فایلهای داده ای خیلی بزرگتر و سیستمهای چند برنامه ای از به وجود آمدنswaping ها خیلی ضروری جلو گیری کند ولی در واقع میزان کار به مقدار RAM قابل دسترس بستگی دارد یعنی هر چه مقدار RAM قابل دسترس بیشترباشد کار کلی بیشتراست ویندوز 16 بیتی هم نیز از حافظه مجازی استفاده می کند ولی در طرز کار آن در ویندوز NT پیچیده تر است .اندازه فضای swap حافظه مجازی در ویندوز 16 بیتی وابسته به مقدار RAMقابل دسترس است وتا تقریبا اندازه 30 مگا بایت مجاز است .این نکته قابل ذکر است که اگر کارتصمیم به حذف swap file ها با خاموش کردن حافظه مجازی بگیرد،و به این ترتیب در خواستهای بزرگتری را انجام دهد ،بهswap file این نیاز نیست .
این حدود اندازه swap file در ویندوز 16 بیتی برایtop disk desk ها (desk top pc ) ها مناسب میباشد .اگر مقدار ram دسترس پذیر شما در حدود 32 مگا بایت یا بیشتر باشد ،کمترین مقدارswap فضای یکdiskرا اشغال میکنددرحالی که30مگابایت از فضایseap برای بسیاری تزدز خواستهایRAMبسیار کم است .ولی ویندوز NT این خصوصیت را دارد که شما هر مقدار swap (زیاد وکم )که نیازدارد ،اختصاص دهید . ولی این موضوع هم هست که حافظه مجازی نمی تواند جوابگوی تمام مشکلات با شد .این امکان را می دهد (حافظه مجازی )که با مقداریRAM محدود برنامه های بزرگ را پردازش کنیم ولی بدون توجه به سرعت پردازش آن یعنی ممکن است سرعت پردازش خیلی کم باشد .در هنگام کار با ویندوز NTهنگامی که حافظه مجازی مشغول مبادلهdata بهhard ازRAM بهhard ویا بالعکس است.توجه داشته باشیدکه به محض پایین آمدن کارایی سیستم ،به RAM اضافه کنیم.البته ممکن است که با اضافه کردن hard سریعتر به اصلاحاتی دست یابیم ولی مزایای بالا بردن مقدار دیسک سریعتر قابل مقایسه با اضافه کردن RAM نمی باشد .از دیگر خصوصیات (خصوصیت سوم) در زیر توضیح داده می شود .