مقاله مروری بر سیستم عامل های WIN NT وXINU و MINIX و UNIX


در حال بارگذاری
23 اکتبر 2022
فایل ورد و پاورپوینت
2120
2 بازدید
۷۹,۷۰۰ تومان
خرید

توجه : به همراه فایل word این محصول فایل پاورپوینت (PowerPoint) و اسلاید های آن به صورت هدیه ارائه خواهد شد

  مقاله مروری بر سیستم عامل های WIN NT وXINU و MINIX و UNIX دارای ۸۰ صفحه می باشد و دارای تنظیمات در microsoft word می باشد و آماده پرینت یا چاپ است

فایل ورد مقاله مروری بر سیستم عامل های WIN NT وXINU و MINIX و UNIX  کاملا فرمت بندی و تنظیم شده در استاندارد دانشگاه  و مراکز دولتی می باشد.

توجه : در صورت  مشاهده  بهم ریختگی احتمالی در متون زیر ،دلیل ان کپی کردن این مطالب از داخل فایل ورد می باشد و در فایل اصلی مقاله مروری بر سیستم عامل های WIN NT وXINU و MINIX و UNIX،به هیچ وجه بهم ریختگی وجود ندارد


بخشی از متن مقاله مروری بر سیستم عامل های WIN NT وXINU و MINIX و UNIX :

مقدمه
ویندوز NT نسبت به سیستمهای عامل OS/2 و UNIX و ویندوز ۱۶ بیتی دارای برتری‌هایی است که این خصوصیات و امکاناتی که ویندوز NT دارد، با یک سیستم عامل یا بیشتر نیز قابل دسترسی است. ولی هیچ‌کدام از سیتم عاملها قابلیتهای ویندوز NT را ندارد. در این قسمت مهمترین خصوصیات NT را معرفی می‌کنیم و یکسری خصوصیات کلیدی NT را شرح می‌دهیم.

۱- آدرس‌دهی ۳۲ بیتی
در انیجا لازم است توضیحی در مورد اینکه آدرس چیست و نحوه آدرس‌دهی که میکروسافت DOS چگونه است بدهیم. آدرس کلاً محل یک بایت از اطلاعات در حافظه کامپیوتر یا Mass storage می‌گویند. آدرس بر دو نوع است. آدرس می‌تواند فیزیکی و یا می‌تواند مجازی باشد.
۱-۱- آدرس‌دهی فیزیکی: به بایت داده معین در محل فیزیکی معینی از حافظه یا دیسک اشاره می‌کنند.
۲-۱- آدرس‌دهی مجازی: به آدرس منطقی (نرم‌افزاری) اشاره می‌کند که سیستم عامل به آدرس فیزیکی معینی اشاره می‌کند.

مطلب قابل توجه در انیجا این است که ویندوزNT از بین دو آدرس‌دهی، از آدرس‌دهی مجازی استفاده می‌کند که برای هر درخواست اصولاً چهار گیگابایت اختصاص داده می‌شود که البته ۲ گیگابایت آن برای سیستم عامل منظور می‌شود.
به دنبال پیشرفت مایکروسافت DOS به دلیل محدودیتهای حافظه، میکروپروسسورهایی از قبیل ۸۰۸۶ و ۸۰۸۸ شانزده بیتی که یک فضای آدرس‌دهی بیست بیتی را عرضه می‌داشتند طراحی کردند. یعنی در واقع این میکروپروسسورهای می‌توانستند یک مگابایت از حافظه را به طور فیزیکی آدرس‌دهی کنند. با توجه به این که بیست بیت به خوبی در کلمه (word) شانزده بیتی جای نمی‌گرفت مهندسین INTEL برای دستیابی به هر آدرس، طرحی به نام تقسیم حافظه ارائه دادند.

در این نوع آدرس‌دهی آمدند یک مگابایت را به ۱۶ قسمت تقسیم کردند که هر قسمت ۶۴ کیلوبایتی با ghunk بود. این کار بدین دلیل بود که برنامه‌نویسان اصولاً در پردازنده‌های ۸ بیتی قدیمی مانند INTEL 8085 و ZILOG Z80 با آدرس‌دهی ۶۴ kdyte آشنایی داشتند.

برای اینکه برنام‌نویسان بتوانند به هر آدرسی در داخل فضای آدرس یک مگابایتی دست پیدا کنند آدرس حافظه فیزیکی محاسبه شد. (قسمت در ۱۶ ضرب کرده و سپس یک offset به آن اضافه می‌شود. نتیجه به بایت مورد نظر اشاره می‌کند.) بقیه پردازنده‌های ۶ بیت مانند ۶۸۰۰۰ Motorola از آدرس‌دهی خطی استفاده می‌کردند که هربیت از حافظه مستقیماً و بدون استفاده از offset & segment آدرس‌دهی می‌کرد. و علاوه بر تسهیلاتی مانند MS-DOS 5.0 و windows 3.1، طراحان زیادی طرحهای خود را برای آدرس‌دهی و بیش از ۶۴۰ کیلوبایت حافظه پیشنهاد کردند. می‌توان از معروفترین نمونه‌ها QEMM QUALAS’ ۳۸۶ MAو QUARTERDECK’S را نام برد.

کل این و طرحها حافظه مورد استفاده را بیش از حد ۶۴۰ کیلوبایتی بسط داند، ولی مجبور کردن آنها به کار با یک موقعیت خاص PC و دنباله درخواستها و تسهیلات نرم‌افزاری معمولاً یک هدر کردن زمان، پردازش خنثی‌کننده است. همیشه این‌طور به نظر می‌رسد که حداقل یک درخواست مهم با یکی از تسهیلات با مدیریت حافظه شما سازگار نیست.
اولین پردازنده که فضای آدرس‌دهی خطی را به کار برد و نیز با DOS سازگاری داشت INTEL 386 بودکه می‌بایست تقسیم‌بندی حافظه در کنار آن احتیاج به مدیریت شخص ثالث را حذف کرد که در واقع فضای آدرس‌دهی ۳۲ بیتی INTEL 386 با برنامه‌ها نوشته شده برای پردازنده‌های INTEL قبلی سازگاری نداشت.

این برنامه‌های ناسازگار، DOS و تمام برنامه‌های اجرا شده تحت DOS بودند. برایایجاد سازگاری با DOS و درخواستهای آن INTEL یک طریقه دیگر آدرس‌دهی را طرح کرد بنام Real Mode .
این نوع آدرس‌دهی با سایر نرم‌افزارهای قبل سازگاری داشت ولی متذسفانه در هنگام کار با این نوع آدرس‌دهی یعنی Real moed ، ۳۸۶ و (۴۸۶) بیش از یک ۸۰۸۶ خیلی سریع عمل نمی‌کند. DOS که در مقابل محدودیتهای ۸۰۸۶ و ۸۰۸۸ نوشته شده بود، هنوز بسیار شبیه نسخه سریع حد خود در سال ۱۹۸۱ با تمام محدودیتهای آدرس‌دهی عمل می‌کنند.
دو طریق آدرس‌دهی حافظه:
Real Mode : یک طریقه آدرس‌دهی حافظه است که از آدرس‌دهی نوع تقسیم‌بندی حافظه یعنی همان segment & offset استفاده می‌کنند. ماننده پردازنده INTEL 8086.
‍‍‍‍‍Protected Mode : یک طریقه دیگر آدرس‌دهی حافظه که برای دستیابی به بایت حافظه به جای segment & offset از آدرس‌دهی خطی استفاده می‌کند. این نوع آدرس‌دهی مشخصات حفاظت سخت‌افزاری که windows و windows NT آن را به کار گرفته‌اند، فعال می‌کند.

windows NT برای تهیه آدرس‌دهی ۳۲ بیتی واقعی Trune 32-bit addressing از آدرس‌دهی خطی ۳۸۶ و ۱۸۶ و پنتوم (INTELS586) و همچنین پردازنده pisk همچنون Mips و DigtalAlpha استفاده می کند. قابل ذکر است که دیگر NT از سازگار بودن با DOS و windos 16بیتی صرفنظر می کند و دارای طرحی است بنام (viriul dos machine) که در این صورت این امکان را به ویندوز NT می دهد که بتواند در خواستهای Dos و windows16 بیتی را اجرا کند (بعدا در مورد VDM صحبت خواهیم کرد ) .
مزیت های آدرس دهی ۳۲ بیتی :

۱-توسعه نرم افزار با حذف قسمت بندی حافظ آسانتر و سریع تر می شود.
۲- برنامه نویسان دیگر لآزم نیست حافظه مورد در خواستهایشان آشنا باشد .
۳-کارسیستم باحذف سربارپردازشی که موردلزوم مدیریت حافظه است بهبود می یابد.یعنی در هیچ گونه نیازی به حافظه ثالثی ندارد.رهایی از مدیریت حافظه سازگاریهای NT واقع ویندوز مختلف سخت افزار ونرم افزار را نیزحذفمی کندیعنی وضعیت استقرارنرم افزار می تواند ساده و ۱۶ بیتی باشد WindowsیاDos ابتدایی تر از
۴- میزان برنامه قابل دسترسی و اندازه داده در آدرس دهی ۳۲ بیتی زیاد می شود.

ویندوز NT از ترکیب برنامه و سیستم با اندازه چهار گیگا با یت که صدها برابر بزرگتر از حدودقابل اجرا روی بر نامه های DOS و ویندوز ۱۶ بیتی تشکیل شده است . فایلهای بزرگ که توسط ویندوز NT قابل پردازش می باشد غیر ممکن است که توسط DOS ویاwindos16 بیتی پردازش شوددر خواست کننده های (در خواستهای ) پیچیده که فایلهای بزرگ را پردازش میکنند فقط با ویندوز NT عمل می کندو آن هم فقط به دلیل آدرس دهی ۳۲ بیتی است . در خواستهای پیچیده همچون رزرواسیون، مبادله دارایی وسیستمهای پردازش طلبهای بیمه است
از دیگر خصوصیات کلیدی ویندوز NT ،حافظه مجازی و یا VM است که در زیر توضیح می دهیم .
۲-VIRTUAL MEMORY (حافظه مجازی)
هر در خواست در ویندوز NT میتواند به ۴ گیگا بایت حافظه دست پیدا کند (به خاطر فضای ۳۲ بیتی )
که البته از مقدار تصور شده برای هر در خواست بیشتر است . دو نوع حافظه اصلی کامپیوتر به شرح زیر است :
RAM :RAM یا حافظه تصادفی (حافظه دسترسی تصادفی ) از نوع دیگر سریعتر است . مزیتهای آن به شرح زیر است :
۱-PC برای اینکه بتوانند یک بایت داده را در ۷۰ بیلیونیم ثانیه دریافت و بعد ذخیره کننداز RAM استفاده می کنند

۲-برنامه ها به طور مستقیم می توانند به آدرس حافظه بروند و بایت مورد نظر خود را دریافت کنند درواقع بجای اینکه به بلاک مورد نظر در روی دیسک مراجعه کند و با یتها ی بلاک را بایت به بایت بخواند وبه بایت مورد نظر برسد می تواند به طور مستقیم به آدرس حافظه بروند . ترجیحا استفاده از RAM را پیشنهاد می کنند.
عیوب استفاده ازRAM :
۱ -در هنگام قطع برق تمام اطلاعات ذخیره شده در RAMاز بین می رود.این نوع حافظه را VOLATL STORAGE نامیده میشود . در این جا قابل ذکر است که در بسیاری از کامپیوتر هایی که قابل حمل هستند
هنگامی که کامپیوتر خاموش است مقداری برق به حافظه RAM کامپیوترمی رسدکه باعث می شود داده های ذخیره شده در آن از بین نرود و در هنگام تمام شدن باطری آن اطلاعات در آن با تمام شدن باطری از بین می رود.

۲-عیب دیگر RAM ها در قیمت آن مشاهده می شودوآن نیزگران بودن قیمت RAMها است در واقع هر مگا بایت از RAM ها برای pc ها حدود ۳۵ دلار فروخته می شود . از روی این قیمت می تواند تعداد RAMهایی که در یک pc می توان نصب کردرا حدس زد .اصولا به pc های kigh-end 8 مگا بایت RAM وصل می شود و این مقدار را خیلی ها می توانند تا ۲۰ مگابایت افزایش دهند و بعضی نیز این مقدار را به ۶۴ مگابایت میرسانند .برای این امر به RAM با چگالی بالا تری نیاز است که قیمت آن به ازای هر مگابایت افزایش می یابد ولی فضای فیزیکی کمتری را اشغال میکند نوع دیگر حافظه اصلی در کامپیوتر hard disk است که در زیر شرح داده شده است :(نوع دیگر حافظه Mass storage ها هستند که روی hard disk سواری می شوند.

Mass STORAGE :HARD DISK
همان طور که در بالا گرفته شده نوع دیگر حافظه اصلی Mass storage ها هستند که بر رویhard disk سوار می شوندhard disk ها به مراتب کند تر از RAM ها هستند .
از نظر قابلیت ذخیره سازی hard disk ها از ۴۰ مگا بایت تا حدود ۲ گیگا بایت قابلیت ذخیره سازی دارند .
از نظر قیمت هم یک pc hard 200 مگابایتی تقریبا ۴۰۰ دلار ویا به عبارتی دو دلار به ازای هر مگا بایت می باشد که در مقایسه با قیمت RAM که در حدود قیمت یک مگا بایت RAM است . در هنگام قطع برق محتویات hard ها از بین نمی رود به این گونه حافظه Nonvolatile storage می شود .

استفاده از هر دو نوع حافظه برای pc ضروری به نظر می رسد.از RAM برای برنامه های اجرایی و ذخیره.
دادههای حساس هنگامی که اجرا ضروریست استفاذه می شود واز hard disk برای ذخیره طولانی اطلاعات در زمانی که قیمت به ازای هر بایت مهم می باشد، استفاده میشود .
در این جا یک سئوالی که پیش می آید این است که اگر به بیش از RAM قابل ذسترسی نیاز پیدا کردیم چه می کنیم؟مثلآ فرض کنید که یک برنامهspreed sheet به دو مگا بایت وRAM ویک فایل spreed sheetکه به دو مگا بایت احتیاج دارد داشته باشیم . این سئوال پیش می آید که آیا فقط به همین ۴ مگابایت نیاز داریم ؟ خود سیستم عامل به مقداری زیاد 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 بکار برده می شود. در زیر دو وظیفه مهم مدیر حافظه مجازی را بررسی می کنیم:
۱-مدیریت داده ذخیره شده بر روی دیسک وانتقال آدرس داده های روی پایه دیسک به فضای آدرس دهی ۳۲ بیتی ویندوز NT .در خواست میتواند عملیاتی را بر روی داده انجام دهد بدون اینکه توجه به این داشته باشد که داده از نظر فیزیکی درکجا قرارگرفته است.یعنی میتواند عملآیاتی را برروی داده درفضای حافظه مجازی انجام دهد

۲-در ویندوز NT هنگامی که بخواهند از RAM بیشتر از آنچه که در دسترس است استفاده کنند این مدیریت حافظه مجازی است که قسمتی ازRAM رابه swap file منتقل می کندتا اینکه فضایی برای داده های لازم باز کند و در زمان لازم دوباره بهRAM بازگردانده می شود .برای جلوگیری از هدر رفتن زمان ،به جای اینکه داده ها بایت به بایت از RAM به ذیسک ویا از دیسک به RAM منتقل شوند ،این انتقال به این صورت است که داده های به صورت۴kilopages منتقل می شوند نه بایت به بایت.برنامه درخواستی لزومی نداردکه چیزی در مورد پردازش swaping بداند swaping تکرار شونده روی پاسخ خرابی سیستم وهمچنین روی فعالیتهای سنگین دیسک تاثیر گذار است .

برنامه ای که یک فایل راروی فضای آدرس دهی مجازی ویندوزطNT مورد پردازش قرار می دهد(روی هارد )از نظر سرعت خیلی کند تر از برنامه ای است که از دادها در داخل RAM استفاده میکند .یعنی برنامه اولی از برنامه دومی کندتر اجرا می شود .مدیریت حافظه مجازی برای این طرحی که در فایلهای داده ای خیلی بزرگتر و سیستمهای چند برنامه ای از به وجود آمدنswaping ها خیلی ضروری جلو گیری کند ولی در واقع میزان کار به مقدار RAM قابل دسترس بستگی دارد یعنی هر چه مقدار RAM قابل دسترس بیشترباشد کار کلی بیشتراست ویندوز ۱۶ بیتی هم نیز از حافظه مجازی استفاده می کند ولی در طرز کار آن در ویندوز NT پیچیده تر است .اندازه فضای swap حافظه مجازی در ویندوز ۱۶ بیتی وابسته به مقدار RAMقابل دسترس است وتا تقریبا اندازه ۳۰ مگا بایت مجاز است .این نکته قابل ذکر است که اگر کارتصمیم به حذف swap file ها با خاموش کردن حافظه مجازی بگیرد،و به این ترتیب در خواستهای بزرگتری را انجام دهد ،بهswap file این نیاز نیست .

این حدود اندازه swap file در ویندوز ۱۶ بیتی برایtop disk desk ها (desk top pc ) ها مناسب میباشد .اگر مقدار ram دسترس پذیر شما در حدود ۳۲ مگا بایت یا بیشتر باشد ،کمترین مقدارswap فضای یکdiskرا اشغال میکنددرحالی که۳۰مگابایت از فضایseap برای بسیاری تزدز خواستهایRAMبسیار کم است .ولی ویندوز NT این خصوصیت را دارد که شما هر مقدار swap (زیاد وکم )که نیازدارد ،اختصاص دهید . ولی این موضوع هم هست که حافظه مجازی نمی تواند جوابگوی تمام مشکلات با شد .این امکان را می دهد (حافظه مجازی )که با مقداریRAM محدود برنامه های بزرگ را پردازش کنیم ولی بدون توجه به سرعت پردازش آن یعنی ممکن است سرعت پردازش خیلی کم باشد .در هنگام کار با ویندوز NTهنگامی که حافظه مجازی مشغول مبادلهdata بهhard ازRAM بهhard ویا بالعکس است.توجه داشته باشیدکه به محض پایین آمدن کارایی سیستم ،به RAM اضافه کنیم.البته ممکن است که با اضافه کردن hard سریعتر به اصلاحاتی دست یابیم ولی مزایای بالا بردن مقدار دیسک سریعتر قابل مقایسه با اضافه کردن RAM نمی باشد .از دیگر خصوصیات (خصوصیت سوم) در زیر توضیح داده می شود .

۳-PREEMPTIVE MULTITASKING
این خصوصیت به معنا ی چند کاره بودن یعنی قابلیت چند کاره بودن کامپیوتر برای انجام یک سری عملیات در واحد زمان است.این عملیات،اجرای برنامه ویا پردازش یک برنامه و یا به تمام رساندن یک کار ، می تواند باشد .درNT برنامه وپردازش ها از اجرایی به نامthread تشکیل شده اند که بعد در مورد آنها بحث می شود .

THREAD
معمولا قسمتی از پردازش به عهده سیستم عامل است که سیستم عامل آن را اجرا می کند که به آن قسمت thrad گفته می شود . یک thred نمی تواند متعلق به چند پردازش باشد ولی یک پردازش می تواند چند thread داشته باشد و می توانند به وسیله طرحی چند thread را به طور همزمان اجرا کند.

حال می خواهیم ببینیم مفهومmultiasking یعنی چه و برای چه کاری است؟برای اینکه به این مفهوم بیشتر آشنا بشوم قبل از هر توضیحی اشاره به مثالی می کنیم .می دانیم که نوشتن یک document کارراحتی است.هنگامی که داریم باDOS کارمی کنیم وبخواهیم ازنوشته پرینت تهیه کنیم قبل ازانجام هر کاری بایست فرمها،نوع قلم،کدهای خاص را به کدها یی قابل فهم برای .چابگرتبدیل کنیم سپس سیستم را اندازه فایل را که می داند چاپگر توانایی تحمل آن را دارد به چابگر می فرستد. چاپگر و سیستم عامل انقدر به تبادل اطلاعات ادامه می دهندکه تمام فایل به چاپگرفرستاده شود .در حین تبادل اطلاعات بین چابگر و سیستم عامل ،دیگر ما به عنوان یک کاربر هیچ کار دیگری نمی توانیم با کامپیوترانجام دهیم .وجود یک سیستم multitasking است که در اینجا لازم دیده می شود در واقعmultitasking این اجازه را به کاربرمی دهدکه همزمان با ارسال اطلاعات به چابگر ،بتواند عملیات دیگری بر روی کامپیوتر انجام دهد

همانطور که میدانیم پردازنده در هر زمان فقط یک کار را انجام می دهد ولی این کارها سریع تغییروضعیت می دهد که به نظرمی آید در هرزمان بیش ازیک کارانجام می شود.مثل دیگری که برای فهم بهتر multitasking می شود زد ،در مورد فیلم است .اگر ما یک حلقه فیلم را جلوی نور بگیریم می بینم از تعدادی تصویر و عکس ثابت تشکیل شده است ولی آن را با یک پروژکتور به صورت ۲۴ تصویر در ثانیه نمایش دهند ما همان تصویرهای ثابت رابه صورت یک فیلم متحرک می بینیم و برای ما غیر باور است که فکر کنیم آن همان عکسهای ثابت است که به صورت فیلم درآمده است .یک multitasking انعطاف پذیر خوب همانند این فیلم دنباله دار ومتحرک به نظر می آید .

در هنگام اجرای هر thread ، کنترل تمام کامپیوتر بدست آنها می افتد ولی در بعضی اوقات سیستم عامل می آید این thread و اطلاعات ضروری برای سیستم را به محلی که مشابه swap شرح شده در قبل می باشد ، انتقال دهد و thread دیگر بداخل فرستاده می شود و اجراو سپس به خارج فرستاده می شود این عمل این قدر سریع انجام می شودکه کاربر احساس می کند thread ها با هم در یک زمان اجرا می گردد .

دو نوع multitasking وجود دارد که اول آنها را نام برده سپس شرحمی دهیم .
۱-preemptive
۲- nonpreemptive
nonpreemptive :
دراین نوع multitasking ، قبل از جایگزین یک thread در حال اجرا با thread دیگر thread مشخص می کند که چه مدت زمان کار دارد .

Preemptive multitasking :
هر thread برایش مقدار ثابتی زمان مشخص می شود تا در این زمان ثابت کار خود را انجام دهند که به این زمانtimeslice گفته می شود.وقتی که یکthread زمانtime slic اش تمام شد موظف است که به خارج انتقال یابد. مسئله دیگری هم که است مسئله حق تقدم است یعنی یک thread با اولویت بالا میتواند جلوی اجرای thread با اولویت پایین تر را بگیرد.در عوض ویندوزNT که ازpreemptive استفاده می کند ویندوز ۱۶ بیتی از multitasking از نوع nonpreemptive استفاده می کنیم .

مقایسه nonpreemptive و Preemptive :
در nonpreemptive هر در خواست برای اجرای در خواستهای دیگر ناچاربه رها کردن کنترل پردازنده است که البته در مدل Preemptive دیگر به این صورت نیست بلکه سیستم عامل خود به طور اتوماتیک موقتا کنار کذاشته ودر خواستهای مورد لزوم برای کار،سرویس داده می شود .همان طور که در بالا گفته شدویندوز ۱۶بیتی ازnonpreemptive استفاده می کند به نام cooperative.دراین سیستمcooperative هردرخواستی برای اجرای درخواست دیگر کنترل پردازنده را رها می کند.
در یک سیستم nonpreemptive ،در حالی که یک thread خودش دارد اجرا می شود هیچ thread دیگری نمی تواند کامپیوتر را در اختیار گیرد. ولی در Preemptive اگر مدت زمان لازم برای هر thread X باشد برای دو thread دو برابر این مقدار ،برای سه thread سه برابر این مقدار و …می باشد . به علاوه threadهای با اولویت بالاتر می توانند بر thread ها با اولویت پایین تر تقدم یابند . برای فهمیدن بهتر مفهوم Preemptive و nonpreemptive به مثالی جوع می کنیم :

در این مدلها multitasking می توانیم پردازنده را مانند یک راهداری در جاده در نظر بگیریم .در یک سیستم Preemptive ، هر ماشینی زمانی که صرف ورود به راهدار وپول دادن و خروج می کند،برای هر ماشین یکسان است . مثال آ یک ماشین ،که حدودا دهمین ماشین است میتواند تخمین بزند که چه زمان دیگر نوبت او می رسد .(مثل سیستم عامل ویندوز (NT ولی در سیستم nonpreemptive دیگر این طور نیست یعنی فقط هر ماشین با ورود به راهداری می تواند تخمین بزند که چه مقدار کار دارد دیگر ماشینی که در صف ماشین های است نمی تواند تخمین بزند که کی و چه زمانی نوبت او فرا می رسد. حال برای اینکه بفهمیم که سیستم nonpreemptive سست است مثالی میزنیم :

در ویندوز ۱۶بیتی مدیریت چاپ برای مسیر دهی ducument ها به چاپگر استفاده می شود . به این ترتیب که مدیریت چاپ همواره با چاپگر دررابطه است که در صورت بیکاربودنducumentهارا منتقل کنددر غیر این صورت روی فضای hard ذخیره کند.در طی این اعمال کنترل به کاربر این قدر سریع انجام میشود که کاردیگری نمی تواند انجام دهد.ولی به صورت تئوری کارانتقال کنترل به کاربراین قدرسریع انجام می شود که کاربر به نظر می رسدکه دفعتآ کار کنترل را به عهده می تواند بگیرد. ولی در واقعیت حدود چند ثانیه ای طول می کشد.

ولی در Preemptive کاربر،براستی و واقعآ دفعتآ کنترل را به دست می گیرد .چون فعالیتهای کاربر دارای حق تقدم بالاتری است در نتیجه کنترول به او واگذار می شود .
حال می پردازیم به خصوصیات ذیگر سیستم عامل ویندوز NT بنام symmetric multipocess (چند پردازشگر متقارن )

۴- symmetric multipocess
تمام کامپیوتر های desk top ، دارای یک پردازنده یا CPU هستند .می توانیم از CPU ها ،از INTEL 80386 وهمینطور از MIPS4000 نام برد . یک CPU می تواند در زمان یک thread را اجرا نماید و این قدر بین آنها تغییر وضعیت می دهد که کار بر احساس می کندچند thread رااجرا می کند . جاییجایی بین threadها خود پردازشی است در پردازنده که احتاج به زمان دارد .هرچه threadهای بیشتری برای زمان پردازنده رقابت کنند ، منابع پردازنده درگیر در جابجایی بین thread ها قسمت بزرگتری از زمان قابل دسترس را مصرف میکنند و یا پردازنده دریافت thread های جدید را متوقف می کند ویا به هر یک از thread ها آن چنان زمان کمی می رسد که همه چیز در یک halt از بین می رود. در اواخر دهه هفتاد ،طراحان نعداد پردازنده سه برابر در خواستها زیاد افزایش دادند (muliprocceing).با دو پردازنده ،دو برابر در خواستهاوبا سه پردازنده سه برابر در خواستها را می توانید انجام دهید وبه … همچنین یک کامپیوتر که بیش از یک پردازنده داشته باشدمی تئاندد یک زمان چندthreadرابدون جابجایی کارها اجرا کند .همیشه میزان زیادی از نیروی پردازش صرف مدیریت فعالیتهای پردازنده های چند گانه می شود .
MULTIPROCESSING*
اگر در کامپیوتری بیش از یک پردازنده استفاده شود اصطلاحا می گوییم muliprocceing که این پردازنده ها با یک حافظه مشترک یا high –speed- link به هم متصلند .به کامپیوتری که از این سیستم استفاده می کنند میگوییم Multipoccesssor
LOAD BALANCING :در صورتی پردازنده ای اشغال باشد ،کارها برای افزایش در خواستها می توانند به سایر پردازتده ها منتقلآ شوند این خصوصیت load balancing گفته می شود .
انتقال کارها به پردازنده با توجه به حق تقدم صورت می گیرد .کارهای با حق تقدم بالاتر به پردازنده با ظرفیت کمتر و کارها با حق تقدم پاینتر می توانند در CPU های مشغول تروشلوغت و منتظر نوبت خود باشند .
سیستم های دارای چند پردازنده نیز دارای مشکلاتی بودند .مثلآ یکی از آنها این است که بدون توجه به تعداد پردازنده میبایستی کپی از بانک اطلاعاتی(data base ) داشته باشیم ولی اگر ما در حال اجرای یک برنامه پردازش تصویر باشیم،ترجیح می دهیم که فقط روی یک کوپی از تصویر ،بجای یک کپی برای هر پردازنده کار کنیم. داشتن کپی هایمتفاوت از یک data برای چند پردازنده فاقد کارائیست .
داشتن یک کپی نیز خطر می باشد. فرض کنید مثلآ پردازنده A یک رکورد را از بانک اطلاعاتی بخواند و آماده شود که تغییراتی در آن دهد .پردازنده دیگری مانند B هم همان رکورد را از بانک اطلاعاتی می خواند و تغییرات متفاوت در آن می دهد . بعد ، دو پردازنده Aو B رکوردهای تغییر یافته را (هر دو را )در بانک اطلاعاتی باز نویسی می کنند .اول پردازنده A رکورد تغییر یاقته را می نویسد وبعد B رکورد تغییر یافته را باز نویسی می کند. بدون سیستم حفاظتی نمی توان از درستی بانک اطلاغاتی اطمینان داشت و نمی توان فهمید که در حال آخرین نسخه جاری رکورد میباشیم.

MULTIPROCESSING متقارن و نا متقارن
سیستم عامل باید معمولآ دارای multiprocessing باشندو تقسیم کار در بین پردازنده ها را خوب باید بداندو دارای سیستم حفاظت باشد تا از درستی data اطمینان کامل کسب کند.
ما دو نوع سیستم عامل چند پردازنده داریم :۱-متقارن ۲- نا متقارن
در سیستم عامل چند پردازنده از نوع متقارن ،سیستمهای متقارن روی یک پردازنده انحصاری اجرا می شوند و سایر کارهای سیستم عامل روی دیگر پردازنده ها اجرا می شود .تمام ورودی خروجی هاI/O) ) توسط پردازنده اجرا کننده سیستم عامل ، مدیریت می شود .سیستمهای متقارن ،سیستم عامل را روی یک پردازنده از پردازندها اجرا می کنند . ویندوز NT از یک مدل پردازنده متقارن استفاده منی کند .سیستمهای متقارن در مقایسه با سیتمهای چند پردازندهنامتقارن که به یک پردازنده فرمان می دهند که سیستم عامل رااجرا کند ، سیستمهای متقارن قابل اطمینان بیشتری دارند چرا که برای خرابی یک پردازنده واحد بر خلاف بهم ریختن تمام سیستم است.
مزیتهاو عیوب سیستمها ی چند پرداشی نا متقارن :
اولین مزیت این است که راحتتربه انجام می رسد . برای افزایش در خواست ویا کارها تعداد زیادی پردازنده خادم اضافه می کنیم.این سیستمها RAM را در اختیار هر پردازنده قرار می دهدو برای درستی و یا بادرستی داده این کار انجام می شود .پردازنده پایه ممکن است برای حمایت پردازنده های دیگر احتیاج به تغییراتی داشته باشد .

معایب سیستم های متقارن :
از بز رگترین عیوب این است که شدیدا در معرض شکستن هستند یعنی خطر شکستن برای آنها وجود دارد .اگر یکی از پردازنده های خادم خراب شود پردازنده مخدوم می تواند کارها را بین پردازنده های باقیمانده تقسیم کند وشیفت دهد وبه این ترتیب سیستم را سر پا نگه می داردولآی اگر پردازنده مخدوم خراب شود متوقف می شود و در واقع تنها کپی سیستم عامل متوقف میشود وتمام دستگاههای I/Oکه توسط سیستم عامل کنترل می شوند ،غیر قابل دسترس می شوند. پردازنده خادم هنگام افزایش درخواست در سیستم عامل، میتواند دچار اشکال شود .در زمان اتفاق این حالت کار سیستم کند می شود حتی زمانی که بعضی از مخدوم ها کمی ظرفیت داشته باشند . کار با سیستمهای متقارن مشکل است چون فضای زیادی از حافضه را اشغال کرده است در نتیجه برای درستی ویا نا درستی داده نیاز به سیستم محافظ بیشتری دارد .
سیستم عامل بایدبتواند به طورهمرمان روی چند پردازنده اجرا شود بدون اینکه روی خودش بلغزد و باید بتواند در حال اجرا شدن روی هرپردازنده ای،هر پردازنده خراب ویا از کار افتاده ای به خارج بفرستد .

مزایای سیستمهای متقارن :
۱-کارایی بیشتری دارند برای اینکه هم سیستم عامل و برنامه های کاربر میتوانند بین پردازنده ها تقسیم شود . امکان اینکه پردازنده ای مشغول باشد وپردازنده ای بیکار مانده باشد وجود ندارد چرا که در خواستها بین تمام پردازنده ها تقسیسم می شود .
۲-قابل اطمنان تر هستند چرا که خرابی یک پردازنده موجب از کار افتادن تمام سیستم نمی شود . آنها وابسته به MASTER/SIAVE که سیستم های متقارن را بین پردازنده ها قابلآ حملآ میسازد ،نیستتند.

THRAD
در ویندوز NT یک پردازش شامل دستور العمل ها ، فضای آدرس دهی مجازی که برای نگهداری برنامه لازم است ،داده و منابع سیستم عامل که توسط برنامه های در حال اجرا به کار رفته اند، می باشد. در هر پردازش حداقل یک thread وجود دارد و قسمتی است که معمولآ ویندوز NT برای اجرا، زمانبندی می کند . هر پردازش یک thread نیازمند است چرا که بدون thread هیچ ازرشی ندارد . در هنگام اجرای thread است که پردازش هم صورت می گیرد.اگر چه در ویندوز NT در یک زمان می شودچند برنامه را با هم انجام شوند و این بدین معنی است که هر پردازش بیش از یک thread دارد .

برنامه پایگاه اطلاعاتی را برای آ ژانس های مسافرتی در نظر می گیریم این برنامه آثار رکوردهای سرویس گیرنده آژانس را روی یک کامپیوتر محلی حفظ میکند وبرای به دست آوردن اطلاعات پرواز برای سرویس گیرنده ، به یک سیستم رزرواسیون از طریق شبکه یا مودم وصل شود .یک شرکت مسافرتی می تواند برای سرویس گیرنده در خواست اطلاعات بکند و فایل مسافرتی سرویس گیرنده را صدا زند .اتصال شبکه ای به سیستم رزرواسیون برای ایجاد و تکمیل ،زمان بیشتری لازم دارد تا دریافت فایل از هارددیسک اصلی .اگر این درخواست به صورت یک thread نوشته شود ، شرکت باید قبل از دستیابی به فایل مسافرتی انقدر صبر کند تا اتصال رزرواسیون انجام شود و اطلاعات مورد در خواست انتقا ل داده شود گر چه برای یک درخواست چند thread،برنامه می تواند دست یابی به یروفایل سرویس گیرنده را هر زمان که شرکت مسافرتی اتصال شبکه ای به سیستم رزرواسیون برقرار کرد ، آغاز کند ،در حالی که یک thread منتظر پاسخ رزرواسیون است ، thread دیگر پروفایل سرویس گیرنده دریافت و نمایش می دهد.

ویندوز NT هم می تواند این thread های مجزا را انجام دهد وهم می تواند thread را به پردازنده های گوناگون در سیستمهای چند پردازنده ای بفرستد. این threadهای چندگانه به طورهمزمان با هم اجرا می شوند .

یک برنامه با ید نوشته شو دتا این thread های چند گانه را باهم ادغام کند . اکثر برنامه ها که در سیستم چند پردازنده ای قابل اجرا هستند ویک thread دارند ، بسیاری از امکانات اجرایی نهفته و پنهان سیستم را از بین میبرند .در بعضی از جاها یک پردازش با یک thread می توانند سرعت پردازنده های دیگر را پایین بیاورد این مسئله معمولآ در سیستم های شبکه ای که پردازش های اجرا شونده روی پردازنده های یک منبع مشترک مانند مدیریت شبکه را بکارمی برند،واقعیت دارد اگر مدیریت شبکه چند thread باشد ، بازیابی می تواند بین thread هایی که روی چند پردازنده اجرا می شوند مانند تقاضا برای افزایش منابع مدیریت،تقسیم شود .اگر یک طرح تک thread بکار رود ، مدیریت شبکه می تواند تنها روی یک پردازنده کار کند . با افزایش تقاضا، پردازنده تضعیف می شود وبرای سیستم موجود اشکالاتی پیدا می شوند .

حالا نوبت آن رسیده است که از خصوصیت دیگر ویندوز NT (خصوصیت پنجم )نام ببرید و آن client/server است که در صفحه بعد توضیحات آن داده خواهد شد.
۵- ساختارCLIENT/SERVER
خیلی ها اصطلاح client/server را با شبکه های محلی و یا lan بکار می برند ما در اول شرح اصطلاح می پردازیم سپس در مورد چگونگی کار ویندوزNT که چگونه طرح client/server را از شبکه به سیستم عامل منتقل می کند.
برای درک بهتر متوسل به مثالی می شویم:

فرض کنید شما در شرکتی که کار می کنید در اتاق خود یک PC که در آن یک دیسک قرار دارد و یک چاپگر که متصل به کامپیوتر است و همچنین مودم، دارید، این PC برای شما یک نفر در هر زمان بخوبی کار نخواهد کرد اگر شرکت افراد استخدام شده خود را افزایش داد به هر نفر یک PC تعلق می گیرد. حال باید تصمیم بگیریم که ایا شما می توانید به هر کدام این افراد جداگانه یک چاپگر و یک مودم بدهید.

مسلم است که این کار پر هزینه استو بعلاوه چاپگر شما که اغلب بلا استفاده است چه لزومی دارد که برای هر نفر هم یک چاپگر خریداری شود.
سؤال دیگر که پیش می آید این است که ممکن است افراد دیگری هم در شرکت به فایلهایی که در هارد PC شما است احتیاج داشته باشد یکی از راهها این است که این فایلها روی فلاپی دیسک Save شود.

وقتی هر کدام از آنها بخواهند فایلی را کپی کنند یعنی پرینت بگیرند اول آن فایل را روی فلاپی دیسک می برد و بعد فلاپی را درPC شما قرار می دهد و توسط چاپگر شما می تواند پرینت بگیرند. در خیلی از سازمانها و شرکتها از این روش که به sneaker net معروف است استفاده میکنند ولی معایب و مشکلاتی دارد که در زیر شرح می دهیم :
۱- سودی ندارد
۲- ایمنی ندارد
۳- دارای داده غیر ضروری هستند
۴- امکان اینکه داده تحریف شود وجود دارد
۵- …
بهترین راه حل برای این مشکل استفاده از شبکه ها است. در سیستم‌ای که از شبکه استفاده می کند تمام PC ها با هم در ارتباط هستند و تمام دستگاههای ورودی و خروجی با هم به اشتراک گذاشته می شود از جمله چاپگر و مودم. در این سیستمها که از شبکه lan استفاده می شود هر فردی می تواند از فایلهای شما استفاده کند بدون اینکه به کار شما صدمه و وقفه ای وارد آورد اینگونه شبکه بنام peer-to-peer معروف است. هنگامی که فردی بخواهد در شبکه فایلی را پرینت بگیرد، کار شما در PC آهسته تر انجام خواهد شدکه همزمان با اینکه آن باید کار شما را انجام دهد باید درخواست دیگری را هم پردازش کند. در شبکه های کوچکتر بر خورد درخواست به دلیل اشتراک منبع کمتر صورت می گیرد یعنی درواقع فرقی ندارد که PC چه کسی به چاپگر متصل می‌شود ولی هر چه شبکه بزرگتر باشد، تاخیر افزایش بیشتری میابد سرعت PC ها کمتر می‌شود چرا که تعداد افرادی که می‌خواهند به فایلهای مشترک دسترسی پیدا کنند بیشتر می‌شود. به همین دلیل لازم است که شبکه peer-to-peer تکمیل شود برای همین بایدیک کامپیوتر را در نظر بگیریم که فایلهای مشترک را مدیریت کند. به همین دلدل است که از client/server استفاده میشود. فایلهای مشترک، ازPC شما به سرویس دهنده فایل یک کامپیوتر منتقل ‌شود. منظوراز سرویس دهنده فایل یک کامپیوتر انحصاری است که کارش ایت است که امکان دستیابی مساوی به سیستم فایل مرکزی را برای کاربران فراهم می کند. هر کس که فکر می کند در PC خود فایلهایی دارد که بقیه نیز به آن نیازمند است به سرویس دهنده فایل، این فایلها را منتقل می کند و بدین ترتیب کارایی PC افزایش میابد.

پس بطور کلی می توان گفت که سرویس دهنده فایل یک کامپیوتر با یک دیسک سخت با ظرفیت بالا است که به شبکه محلی وصل می‌شودوفایلهای بکار رفته توسط سایر کامپیوترهای متصل به همان شبکه را ذخیره می کند منظور از سرویس گیرنده از هر شبکه، PC شما و PC هرکاربردیگر است. درخواستهای سرویس گیرنده از یک سرویس دهنده منشاء می‌گیرد مانند فایلهای دیتا و دستیابی به چاپگر.
CUENT/SERVER در ویندور NT

ویندوز NT در دو لایه کار می‌کند یکی لایه کاربر و دیگری لایه Kernel با اجرای ویندوز NT تمام کارهای مدیریت مثل مدیریت ورودی و خروجی، حافظه مجازی تمام پردازش‌ها را انجام می دهد.
اجرای ویندوز NT در لایه Kernel انجام می‌شود چرا که دارای امنیت خاصی است و از دسترسی به پردازش های کاربر جلوگیری می‌کند. درلایه کاربر ویندوزNT موارد چندی از سیستمهای حفاظت شده را فراهم می‌کند برنامه نویسی win32 (API) مثالی از این مورد است کاربران به توسطwin32 می‌توانند به لایه user و دیگر امکانات ویندوزNT دسترسی پیدا کنند. به توسط این برنامه نویسی، سازندگان بدون اینکه در مورد تفاوت سیستمهای سخت افزاری NT نگران باشند می‌توانند یک درخواست یکسان را در کامپیوترهای مختلف اجرا کنند.
زیرا سیستم امنیت از جمله زیر سیستمهای محافظت شمرد می‌شود که دارای روش‌های مختلف محافظت و همچنین Password محافظتی است. DOS و درخواستهای ویندوز ۱۶ بیتی را می‌توان در فضایی از جنبه کاربر که بنام virtual Dos Machine معروف است، مورد بررسی قرار داد.
virtual Dos Machine نیز با زیر سیستم win32 در ارتباط است. برنامه های درخواست در ویندوز NT سرویس گیرنده و زیر سیتمهای حفاظت شده، سرویس دهنده هستند. توسط اجرای NT این درخواستهای سرویس گیرنده پیغام خود را به زیر سیستمهای حافظت سرویس دهنده، که فضای مشترکی برای سرویس دهنده‌ها ایجادکرده، می فرستند. سرویس دهنده‌ها توسط همین فضا، پاسخ سرویس گیرنده‌ها را می دهند. client/server با حذف منابع یکسان، سیستم اجرایی را جهت می دهند. زیرا اگر اجرای NT بخواهد همراه API باشد سیستم خیلی دشوار می‌شود. مزیت دیگر این ساختار این است که بدون هیچگونه اجرای جدیدی می‌توانید به API اضافه کنید. به علاوه هر زیر سیستم در حافظه حفاظت شده خود دارای مراحل عمل مخصوص به خود است. در نتیجه اگر یکی از زیر سیستم دچار مشکلی شود، کار کلیه سیستم NT خراب نمی‌شود. طراحی مراحل اجرایی زیر سیستم بگونه ای است که هنگام کار قادر به تبادل اطلاعات متعدد و در نتیجه شکوفا کردن ظرفیت NT Multipracessor می‌شود. ساختار client/server، طراحی ویندوزNT را به صورتی خلاصه کرده، تا به عنوان بهتر کردن سیستم های اجرایی Multipracessor و حمایت اطلاعاتی گسترده شبکه، API های جدیدی در هر زمان دلخواه به سیستم اضافه کرد. همچنین کاربران زیرسیستم حفاظت شده می‌توانند به وسیله پردازنده یکسانی با دیگر کاربران ارتباط برقرار کنند که این خود سبب کارایی بیشتر سیستم می‌شود. امنیت در سیستم ویندوز NT دارای دو بعد است و این دو بعد:
۱- کنترل بر چگونگی دستیابی به سیستم مرکزی NT و همچنین کنترل از جهت دستیابی به پرونده ها و subdirectory های داخل سیستم.
۲- حفاظت عملکرد کلی و جزء به جزء مراحل عمل سیستم، به جهت جلوگیری از مختل کردن کار کل و یاجزء به جزء سیستم بوسیله ویروس و دیگر برنامه های ایجاد شده جهت خراب کردن کار سیستم.
در سیستمهای شبکه، یک وقفه ممکن است دچار بسیاری از مشکلات شود یعنی مشکلات زیادی رافراهم کند چرا که باعث می‌شود که ویروس دهنده متوقف شود و همین توقف سرویس دهنده بر روی تمام در خواستهای اجرا شده روی سرویس دهنده تاثیر می‌گذارد و باعث می‌شود بسیاری از فایلهاکه ذخیره شده اند از بین بروند. ویندوز NT مزایای گسترده ای برای اطمینان از امنیت سیستم دارد تا بتواند سیستم‌های NT را در شرایط سخت نگه دارد و اشکالات سیستم رابهبود دهد و رفع کند.

خصوصیت کنترل دستیابی

سیستم‌های عامل DOS و ویندوز۱۶ بیتی دارای خصوصیت امنیت مانند ویندوزNT نیستند. چرا که هر PC متعلق به یک کاربر بوده و توسط همان یک نفر مورد استفاده قرار می‌گیرد و دیگر احتیاجی به password ندارد و همچنین هیچ‌گونه محدودیتی در استفاده از فایلها ندارد. سیستم عامل‌های شبکه و مدیریت LAN (همچون شبکه فایل) برای دستگاههایی طراحی می‌شوند که ذر آنها یک کامپیوتر یا سیستم فایل میان تعداد زیادی کاربرمشترک است. این سیستمهای عامل محدوده ای از امکانات امنیتی را برای اجازه دادن Data به مشترک بودن بین کاربران و درخواستها بکار می‌برند در حالی که دستیابی به فایل شخصی و حساس را محدود می‌کند.
برای همین است که ویندورNT یک سیستم حفاظت و امنیت کنترل دستیایب را پیش بینی می‌کند هدف‌های ویندوز NT از سیستم حفاظت و امنیت این است که از اینکه فقط کاربران مجاز به اطلاعات سیستم دسترسی پیدا کند اطمینان حاصل کند.

مقدمه
xinu سیستم عاملی است که روی دستگاههای ۱۶ بیتی LSI11.2 و سازگار با آن قابل اجراست. این سیستم عامل قابلیت اجرای چند برنامه و شبکه را دارد. برنامه اصلی آن به زبان C و۵۵۰ خط کد زبان اسمبلی است (بدون Comment )

:System _ Calls
در sinu حدود ۳۳ سیستم call وجود دارد که در اینجا به ذکر چند نوع از آنها که در بیشتر سیستمهای عامل مشترک هستند،می پردازیم :
برای اجرای هر پروسه ای دو نوع sys-cal داریم، یکی create و دیگری resume میباشد.
:Create این sys-cal یک پروسه را به حال اجرا در می آورد و اگر پروسه ای در حال اجرا باشد و این sys-cal را اجرا کند خودش موقتاً به حال تعلیق میرود و پروسه ای را از حـالـت ready بـه حـالـت اجـرا (current) مـی بـرد.

:resume وقتیکه یک فرآیند فرزند کارش تمام شود ، این sys-cal اجرا می شود تا فرآیند پدر که در حالت تعلیق (suspended) بود به کار خودش ادامه دهد.
:Kill در حقیقت این sys-cal برعکس cerate دمی باشد kill ، کار یک فرآیند را فوراً خاتمهن می دهد و کلیه مشخصات آن را (preocess Identification) از Process-Table پاک می کند. اگر فرآیند در صف Semaphore باشد ، از این صف نیز خارج شده و شماره semaphore یکی افزایش پیدا میکند . اگر فرآیند منتظر L/Q باشد ، کار L/Q در صورت امکان قطع می شود.
در xinu برای اجتناب از wating Busy از روش semaphore producer& Consumrt)) استفاده می شود، در این حالت ما دو sys-cal داریم به نامهای Wait و Singnal .
:Wait این sys-calیکی از عدد semaphor کم می کند، اگر جواب منفی بود موجب می شود که پروسه به تاخیر بیفتد ( به حالت wait میرود)
:Signal این sys-cal دقیقاً برعکس wait عمل می کند ، یعنی یکی به semaphor اضافه می کند. اگر عدد مثبت بود به پروسه ای که در حالت انتظار بود (waiting) اجازه میدهد به حالت ready برود.

ساختار سیستم عامل :xinu
سیستم عامل xinu یک سیستم عامل لایه ای می باشد که از ۱۰ لایه تشکیل شده است که به ترتیب اهمیت عبارتند از:
۱) سخت افزار ۲)مدیریت حافظه
۳) مدیریت پردازش ۴) هماهنگی فرآیندها
۵) روابط بین فرآیندی ۶) مدیریت clock
۷) مدیریت I/Q 8) لایه شبکه

۹) سیستم فایل ها ۱۰) برنامه های کاربر
زمانبندی و سوئیچ کردن:(Scheduling & Context Switching)
:Process State یکی از فیلدهای ۱۲ گانه Process Table می باشد
در xinu ما برای فرایندها ۶ حالت داریم :
۱Current 2.ready 3.wait 4.sleeping 5.receiving 6.suspended

تقریباً تمام سیستم ها به دو حالت ready و current نیاز دارند.
:Current حالتی است که یک پروسه یا فرآیند ، زمان cpu را دریافت کرده و در حال اجرا است .
تعریف زمانبند (scheduler) :عمل سوئیچ کردن از یک پروسه به پروسه دیگر شامل دو چیز است :
الف –انتخاب یک پروسه از میان پروسه هایی که در حالت ready هستند.
ب –واگذار کردن cpu به فرآیند انتخاب شده

نرم افزارهایی که این عمل را انجام می دهند ، اصطلاحاً (زمانبند) یا “scheduler” نامیده میشوند.
برای اجرای فرایند ها بطور همزمان نیاز به یک Process-Tabld است که اطلاعات هر فرآیند در آن ذخیره شود. در xinu این (جدول فرآیندها )شامل ۱۲ فیلد است ، این فیلدها عبارتند از :
۱) اولویت فرآیند ها ۲) semaphor ها ۳) حالت فرآیند ها (porcess state)
۴) مقادیر ثبات ها ۵) پیغام های دریافتی ۶) طول )stack)
۷) اسم فرآیند ۸) آدرس کد ادامه برنامه و ….

:priority در xinu اولویت هر فزآیند داخل فیلدی در process-T نگه داری می شود . در xinu پروسه در حال اجرا بالاترین اولویت را دارد. پروسه های که دارای اولویت برابر هستند به روش round-robin در یک صف قرار می گیرند . اولویت پروسه به ترتیب ، از صفر به بالا افزایش می یابد ، یعنی کمترین اولویت مقدارش صفر است که مخصوص فرآیندی بنام Null-Process می باشد.
فرآیند پوچ :(Null Process)
برنامه زمانبند (scheduler) فقط می تواند زمان cpu را بین فرآیند هایی که در حالت current و ready هستند ، سوئیچ کند . اما نمی تواند خودش یک فرآیند جدید بسازد . بنابراین همیشه فرض بر این است که یک پروسه در دسترسی وجود دارد در نتیجه باید همیشه ، حداقل یک فرآیند در صف فرآیند های ready وجود داشته باشد. در xinu هنگامی که سیستم راه اندازی می شود یک فرآیند اضافی (Extra Process) ساخته می شود که Null Process نام دارد. این فرآیند دارای درجه اولویت صفر می باشد و شامل یک حلقه بینهایت است.
‍‍Process Suspension& Resumption
:Suspend توقف یک پروسه یا فرآیند بطور موقت

:Resume شروع دوباره فرآیند
:Suspend State یکی از ۶ حالت فرآیند هاست که با دو سیگنال suspend و resume در ارتباط است و به این معنی است که : (منتظر ماندن یک پروسه برای فراهم شدن یک یا چند شرط بدون توجه بهن اینکه این شرایط کی فراهم می شوند. )
هماهنگی فرآیند ها (Process Coordination)
برای هماهنگ کردن فرآیند ها از semaphor استفاده می شود. برای این کار ما دو روال wit و signal داریم:
:wait یکی از مقدار S کم می کند.
:signal یکی به مقدار S اضافه می کند.
اگر مقدار S منفی شود، فرآیند مربوطه به حالت wait می رود. اگر روال signal فراخوانی شود و مقدار S مثبت باشد آنگاه فرآیندی که در حالت wait است به حالت ready باز می گردد. اگر هیچگاه روال signal فراخوانی نشود ، فرآیند برای همیشه forever)) در حالت wait می ماند . قابل توجه است که فرآیندی که در حال wait است هیچ دستوری را نمی تواند اجرا کند . بنابراین هنگامیکه تمام فرآیند ها به حالت wait بروند دیگر سیستم نمی تواند هیچ کدی را اجرا نماید.
بخاطر اینکه سیستم هیچ وقت به حالت Halt نرود همیشه یک فرآیند در حالت ready باقی می ماند که آن فرآیند ، همان فرآیند null-process می باشد.

Interprocess Communication
ارتباط بین فرآیند ها توسط ارسال پیغام :(message passing)
در xinu دو روش ارسال پیغام (message passing) وجود دارد که فقط یکی از آنها را توضیح خواهیم داد ، روش دوم برای شبکه ها استفاده می شود.
پیغام های بین فرآیندی : (process to process message passing)
در xinu برای ارتباط بین فرآیند ها از روش (ارسال پیغام ) استفاده می شود که به این صورت است که سیستم عامل اجازه می دهد یک فرآیند برای فرآیند دیگر اطلاعاتش را بفرستد. این اطلاعات یا پیغام ها فقط بین فرآیند هایی ارسال می شود که در حالت Block نباشند.

در xinu ، در هر زمان فقط یک پیغام قابل دریافت است و اگر چند پیغام همزمان ارسال شود ، سیستم فقط اولی را دریافت کرده و به بقیه جواب نمی دهد.
روال send ، پیغام یک ID و آرگومان یک پروسه را می گیرد (پروسه ای که قرار است پیغام به آن فرستاده شود ) سپس پیغام مذبور را به آن پروسه خاص تحویل می دهد و همچنین هنگام اجرای روال send ، فرآیندی که پیغام را دریافت می کند به حالت ready باز می گردد تا کاوش را ادامه دهد.
روال receive منتظر می ماند تا یک پیغام دریافت شود تا آن را به رای فرآیند مورد نظر بفرستند. هنگامی که این روال یک پیغام را دریافت کرد فیلد phasmsg در process-table چک نمی شود اگر فرآیندی منتظر دریافت باشد این فیلد (۱) است سپس پیغام دریافتی را برای فرآیند مورد نظر می فرستد.

  راهنمای خرید:
  • در صورتی که به هر دلیلی موفق به دانلود فایل مورد نظر نشدید با ما تماس بگیرید.