
حجم فایل: | 300 + 300 کیلوبایت |
---|---|
فرمت فایل | docx - pdf |
سیستم عامل
فصل اول درس سیستم عامل
سیستم عامل از منابع سخت افزاری پردازنده برای ارائه خدمات به کاربر استفاده میکند .
پردازنده :
از ثبات ، CU , ALU درست شده . و ۳ گام واکشی ، رمزگشایی و اجرا رو به طور مداوم انجام میدهد .
واکشی به معنای اسکن کردن است.
نکته ؛ پردازنده دایما در حال کار است . فثط بعضی وقتا به حالت Pold موقتا در می اید .
ثبات : سطحی ، سریع و کوچک تر از حافظه اصلی است .
نکته : تمام پردازنده ها شامل یک یا مجموعه ای از ثبات ها می باشند به نام وضعیت ( PSW ) که حاوی اطلاعات وضعیت است .
ثبات PSW : جز اطلاعات وضعیت ، شامل بیت فعال/غیرفعال ، کردم وقفه ، و بیت حالت کاربر/سرپرست می باشد .
حالت اجرا پردازنده :
پردازنده ۲ حالت اجرا ( Dual mode ) دارد
اولین مود کاربر است .( حالت کم امتیاز تر که برنامه های کاربر در ان است )
مود دوم هسته است .( سیستم/کنترل/کرنل ؛ حالت ممتاز تری در دستور عمل هایی مانند تغییر ثبات های کنترل ، IO , و مدیریت حافظه در این حالت اجرا می شود .این سطح از کنترل برای برنامه کاربران غیر حضوری ، #نا_امن و نا مطلوب می باشد .
نکته : هدف اصلی از عملیات Dual mode ، محافظت سیستم عامل از دیگر نرم افزار ها می باشد !
تفاوت برنامه و فرایند :
در این است که برنامه یک نهاد غیر فعال و فرایند یک نهاد فعال می باشد !
تنظیم زمان سیستم در مود کرنل و خواندن زمان سیستم در مود کاربر می باشد !
پردازنده به کمک PSW متوجه می شود ک باید در کدام حالت ( کاربر یا هسته ) اجرا کند .
وقتی کاری برای اجرا نباشد: پردازنده یک برنامه شامل یک حلقه انتظار را اجرا خواهد کرد .
ساعت_سیستم : زمان ساعت کشوری
زمان_سیستم : زمانبندی برنامه ها
وقفه ( اینتراکت ) : سیگنالی است که روند عادی اجرا را تغییر میدهد . وقتی وقفه ای به پردازنده ارسال می شود ، کار پردازنده متوقف شده و روال پاسخگویی به وقفه ، ایجاد می شود ( اینتراکت روتین )
بعد از اجرای روتین ، پرازنده کار قبلی را انجام می دهد .
آدرس دستوری که هنگام اجرا ان وقفه ایجاد شده ( ادرس برگشت ) در پشته ذخیره می شود !
بعد از پایان پاسخگویی به وقفه : آدرس برگشت در شمارنده برنامه قرار می گیرد و محاسباتی که تعویق افتاده بود ، دوباره ادامه می یابد .
نکته وقفه : سخت افزار در هر زمان می تواند با ارسال سیگنال به پردازنده وقفه ای را صادر کند.
وقتی وقفه ای در سخت افزار ایجاد می شود ، سخت افزار کنترل را به سیستم عامل برمی گرداند و ثبات ها شمارنده برنامه را ذخیره می کند و نوع برنامه را مشخص می کند ( در ادرس برگشتی )
بردار وقفه : جدولی از اشاره گر ها می باشد که هر اشاره گر به یک روال وقفه اشاره میکند ( بردار وقفه شامل کلی ادرس برگشتی است )
انواع وقفه : ۴ نوع
۱- برنامه :
یعنی وقفه هایی که بخاطر بعضی شرایط حاصل از اجرای دستورالعمل بروز میکند ! (مثل تقسیم بر صفر ، اورلب)
۲- زمان سنج :
وقفه ای که توسط زمان سنجی داخلی پردازنده تولید میشه ، این وقفه به سیستم عامل اجازه میدهد بعضی از اعمال ( تست حافظه ، تغییر زمان اجرا پردازنده و … )را به طور مرتب انجام دهد .
۳-ورودی یا خروجی ( I/O ) :
مثل ورود فلش و بلو اسکرین . وقفه که به وسیله IO تولید میشود ، تا کامل شدن طبیعیه که عمل یا شرایط خطا را اعمال می کند .
۴- نقض سخت افزار :
مثل مشکل داشتن برق یا رم …
فراخوانی های سیستم کالز ( واسطی است بین فرایند و سیستم عامل که صورت دستور زبان #اسمبلی می باشد . در بعضی سیستم ها فراخوانی مستقیم از برنامه های زبان سطح بالا ساخته شده و مانند زیر برنامه می باشند .
انواع فراخوانی های سیستم ؛
۱-کنترل فرایند
۲-دستکاری فایل ها
۳-دستکاری دستگاه
۴-دستکاری اطلاعات
۵-ارتباطات
برای حفاظت از I/O ، تمام دستورات به عنوان دستور ممتاز در نظر گرفته میشه تا کاربران فقط از طریق سیستم عامل بتونن اون دستور اجرا کنن.
حافظه_اصلی : رم ، رام ، کش ، ثبات
سیستم عامل ( ج ۲ )
حافظه پنهان ( کش ) :
یک حافظه کوچک و سریع بین پردازنده و حافظه اصلی است .
حاوی بخشی از حافظه اصلی است .
وقتی پردازنده میخواهد کلمه ای از حافظه را بخواند ، وجود آن در کش را بررسی میکند . اگر وجود داشته باشه به پردازنده میده .
سلسه مراتب حافظه : هزینه ، ظرفیت ، دسترسی پذیری
روش های انتقال ورودی و خروجی :
۱- برنامه سازی شده ( سرکشی )
۲- مبتنی بر وقفه
۳- دسترسی مستقیم ب حافظه ( DMA ) : مولفه DMA تبادل داده ها بین حافظه اصلی و مولفه IO را کنترل می کند . یعنی پردازنده تقاضایی برای انتقال یک بلوک از داده ها را به مولفه DMA می فرستد و فقط پس از کنترل کل بلوک مورد وقفه قرار میگیرد .
وظایف سیستم عامل:
۱- سهولت : سیستم عامل استفاده از کامپیوتر را برای کاربر راحت میکند .
۲- کارآمدی : سیستم عامل موجب استفاده کارامد و بهینه از منابع سیستم کامپیوتری می باشد .
۳- قابلیت رشد : سیستم عامل باید طوری طراحی شود که توسعه آن میسر باشد .
سیستم عامل چیزی جز یک برنامه کامپیوتری نیست ! این برنامه پردازنده را برای استفاده از سایر منابع سیستم هدایت میکند . ( منیجر )
جایگاه سیستم عامل : بین برنامه های سیستمی و سخت افزار
برنامه سیستمی : بایوس ، کامپلایر ها ، ادیتور ها
اسپولینگ ( Sppoling ) در سیستم های اولیه ، پردازنده گرانترین جز کامپیوتر بود و افزایش راندمان پردازنده ، مهمترین محرک در تکامل سیستم عامل بود . برای همین تکنیک اسپولینگ مطرح شد ( یک کار را با محاسبات کار دیگر به طور همزمان انجام می دهد ! بعنی تک بعدی نیست )
استفاده از اسپولینگ در سیستم عاملِ دسته ای ، باعث افزایش سرعت می شود !
سیستم عامل دسته ای چیست ؟
آفلاین اسپولینگ ! در این سیستم ها کار ها توسط دستگاه کارت خوان یک کامپیوتر به کمک یک نوارِ گردان بر روی یک نوار مغناطیسی ذخیره و انجام می شد .
فواید سیستم ها دسته ای آفلاین :
۱- افزایش راندمان پردازنده
۲- عملیات ساده تر
۳- ساده شدن استفاده از سیستم های راه دور
معایب سیستم های دسته ای آفلاین :
۱- تاخیر بین تحویل کار و تکمیل کار
۲- نیاز به سخت افزار اضافی ( کارت خوان و نوار )
۳- عدم وجود اولویت
۴- استفاده زیاد از دستگاه های جانبی
سیستم دسته ای آنلاین:
در تکنیک انلاین اسپولینگ عملیات پیوسته و مستقیم و همزمان با دستگاه های جانبی انجام می شود. یعنی رابطه پردازنده با دستگاه های جانبی #مستقیم است .
مزایا انلاین اسپولینگ :
۱- دسترسی به اولویت
۲- گردش سریع کار ها
۳- بالا بودن راندمان پردازنده
۴- امکان همزمانی چندین IO
۵- بدون معایب
سیستم دسته ای چند برنامه ای :
یعنی اولویت بندی کردن بر روی چند برنامه !
سیستم اشتراک زمانی ( time sharing) : مدل توسعه یافته منطقی چند برنامه ای است !
در سیستم عامل اشتراک زمانی ، وقت پردازنده بین کار ها به اشتراک گذاشته می شود . اصطلاحا میان کار ها سوییچ میکند !
سیستم های اشتراک زمانی ، هزینه های استفاده از سیستم های کامپیوتری را منطقی کرده و با استفاده از زمانبدی کردن استفاده از پردازنده ، هر کاربر را به یک زمان مشخص تخصیص می دهد .
خصوصیات سیستم اشتراک زمانی :
۱- پیچیده تر از چند برنامه ای است !
۲- برای مواردی که نیاز به #تایم_پاسخ_کمتری داریم استفاده می شود !
۳- امکان چند برنامه ای را فراهم می سازد !
۴- وجود یک سیستم فایل ضروری است !
۵- در main frame قابلیت چند برنامه را فراهم می سازد !
هدف اصلی چند برنامه ای دسته ؟
حداکثر استفاده از پردازنده !
سیستم هایی که چند پردازنده در انها وجود داشته باشد را چند پردازنده می گویند !
پردازنده ها با یکدیگر ارتباط نزدیکی دارند و به طور اشتراکی در گذرگاه ادرس ، ساعت ، حافظه و دستگاه های جانبی به طور اشتراکی استفاده میکنند .
انواع سیستم های چند پردازنده ای :
۱- متقارن :
در این نوع ، هر پردازنده از کپی یکسانی از سیستم عامل استفاده می کند که این کپی ها در صورت لزوم با یکدیگر ارتباط برقرار میکنند .
۲- نامتقارن :
هر پردازنده کار خاصی میکند و کنترل سیستم به عهده پردازنده اصلی می باشد یعنی یک کار را از قبل تعیین شده است . اصلاحا این طرح ها master و slave می گویند ! که پردازندن اصلی ( مستر) و پردازنده های بعدی ( اسلیو ) می باشند !
سیستم مستر اسلیو برای کدام پردازنده است ؟ چند پردازنده ای نامتقارن ….
مزایا سیستم متقارن نسبت به متقارن به نامتقارن :
۱- قابل حمل بودن بر روی سیستم های سخت افزاری مختلف
۲- تعادل بار سیستم به علت اجرا سیستم در چند پردازنده
دلایل ساخت سیستم های چند پردازنده ای :
۱-افزایش توان عملیاتی
۲- افزایش قابلیت اعتماد
۳- مقرون به صرفگی اقتصادی
سیستم عامل های توزیع شده ( گسترده ) :
در این سیستم ها محاسبات بین چند پردازنده توزیع می شود ! یعنی هر پردازنده ، ساعت و حافظه خود را دارد و از طریق خطوط ارتباطی با یکدیگر مرتبطند .
دلایل ساخت سیستم های توزیع شده :
۱- اشتراک منابع
۲- قابلیت اعتماد
۳- افزایش سرعت محاسبات
۴- ارتباطات
سیستم های بی درنگ :
در صورتی این سیستم عامل استفاده می شود که برای عملکرد یک پردازنده نیاز به زمان دقیقی باشد .
ویژگی سیستم های بی درنگ ؛
۱- دارای محدودیت زمانی نسبی و دقیق
۲- استفاده در پروژه های علمی پیشرفته
۳- قابل ترکیب با سیستم های دیگر
۴- مهلت زمانی را پشتیبانی نمی کند
انواع سیستم عامل از لحاظ ساختاری:
یکپارچه » لایه ای » ماشین مجازی » مشتری و خدمت گذار
یکپارچه : ساده ترین ساختار سیستم عامل ( استفاده شده در داس )
لایه_ای : با اعمال خاصیت پیمانه ای بودن ، به سیستم عامل ، می تواند کنترل بیشتری بر روی کامپیوتر و برنامه های کاربردی داشته باشد .
ماشین_مجازی : سیستم عامل مجازی قرنطینه شده در یک سیستم عامل دیگه
خدمت گذار و مشتری : یچیز مثل مستر و اسلیو
پایان فصل 1
فصل دوم بصورت یک مقاله در اختیار شما می باشد : فصل دوم سیستم عامل
فصل سوم درس سیستم عامل
نام دیگر پردازنده ( فرایند)
فرایند چیست ؟ به برنامه در حال اجرا می گویند .
یک فرایند میتواند در یکی از حالت های زیر باشد:
۱-اماده ؛ فرایندی ک وقتی ب ان فرصت داده می شود برای اجرا اماده می شود.
۲- اجرا ؛ فرایندی ک هم اکنون در حال اجرا می باشد !
۳-مسدود ؛ فرایندی ک تا بروز حادثه ای ( مثل عمل IO ) نمی تواند اجرا شود .
۴-جدید ؛ فرایندی ک هم اکنون ، گرفته شده اما هنوز جز فرایند های قابل اجرا سیستم عامل نمی باشد .
۵-خروج ؛ فرایندی که اجرا ان پایان یافته است و یا قطع شده .
به حالت مسدود ، بسته یا انتظار هم میگویند !
تغییر حالات ممکن در فرایند:
۱-جدید ب اماده : اگر سیستم عامل امادگی گرفتن یک فرایند دیگر را داشته باشد فرایند موجود از حالت جدید ب حالت اماده می رود !
۲-اماده ب اجرا ؛ سیستم عامل ، یکی از فرایند های موجود در حالت اماده که وقت اجرا ان فرا رسیده را انتخاب و از حالت اماده ب اجرا می برد .ب این عمل توزیع یا دیسپچ میگویند .(دیس پچ در کدوم فرایند است ؟ )
۳- اجرا به خروج ؛ وقتی که فرایند جاری ب اتمام میرسد ، سیستم ان را از حالت اجرا به خروج می برد .
۴-اجرا به مسدود ؛ وقتی فرایندی چیزی را بخواهد که بخاطرش باید متتظر بماند ، سیستم عامل ان فرایند را از حالت اجرا به مسدود می برد .
۵- مسدود ب حادثه ؛ وقتی حادثه ای ک فرایند منتظر ان بوده است رخ می دهد ، ب این عمل اصطلاحا ویکاپ ( بیدار شدن ) هم میگویند .
۶- اجرا به اماده ؛ متداول ترین انتقال یک فرایند از حالت اجرا به اماده اتمام زمان مجاز در سیستم عامل های چند برنامه ای ، می باشد .
۷- اماده به خروج ؛ در بعضی سیستم ها یک پدر می تواند هر لحظه ک بخواهد ، فرایند فرزند خود را پایان دهد .
دسته بندی فرایند ها ؛
۱- محدود به پردازنده ؛ بیشتر زمان کامپیوتر صرف محاسبات پردازنده می شود .
۲- محدود به ورودی/خروجی IO :بیشتر زمان کامپیوتر صرف ورود داده و خروج داده هاست .
بلوک کنترل فرایند ( PCB ) ؛
هر فرایند در سیستم عامل ب وسیله یک ساختاری بنام بلوک کنترل فرآیند ، مشخص می شود. این بلوک مهمترین ساختمان داده در سیستم عامل می باشد ک تمام اطلاعات مورد نیاز سیستم عامل را در مورد یک فرایند دارد . (اطلاعات برنامه در حال اجرا رو ذخیره میکنه)
پی سی بی ، شامل موارد زیر است :
۱- حالت فرایند(هسته یا کاربر )
۲- شمارنده برنامه
۳- اطلاعات زمانبندی پردازنده( فیفو یا … )
۴- اطلاعات مدیریت حافظه
۵- اطلاعات حسابرسی
۶- اطلاعات وضعیت IO
۷- ثبات های پردازنده
انواع زمان بند ها ؛ کلید چند برنامگی ، زمانبندی است .
کلید چند برنامگی چیست ؟ زمابندی
زمانبندی بر روی کارایی سیستم اثر می گذارد. زیرا مشخص میکند کدام فرایند ها منتظر مانده و کدام فرایند ها به جلو بروند .
۱- زمانبند بلند مدت ؛ تصمیم گیری درمورد افزودن به مجموعه فرایند ها برای اجرا.
۲- زمانبند میان مدت ؛ تصمیم گیری درمورد افزودن به تعداد فرایند نایب که بخشی یا تمام انها در حافظه اصلی می باشد .
۳-زمانبند کوتاه مدت ؛ تصمیم گیری درمورد اینکه کدام یک فرایند های موجود در حافظه اصلی ، برای اجرا توسط پردازنده انتخاب می شود.
۴-زمانبند ورودی یا خروجی ؛ تصمیم میگیرد ک کدام درخواست IO فرایند ها را ب وسیله یک دستگاه IO انجام بدهد .
اکثر سیستم های اشتراک زمانی فاقد زمانبند بلند مدت می باشد .
توزیع کننده یا دیسپچر :
پیمانه ای است ک کنترل فرآیند را ب پردازنده ای می دهد ک توسط زمانبند کوتاه مدت انتخاب شده است . ( فرایندی که زمابند کوتاه مدت انتخاب کنه رو به پردازنده میده برای اجرا)
۱- تعویض بستر ( کانتکست سوییچ ) ۲- تغییر ب حالت کاربر ۳- پرش ب محل مناسبی در برنامه کاربر و اغاز مجدد ان برنامه
نخ ( Thread ) ؛
تابحال مفهوم فرایند را به صورت واحدی معرفی کردیم ک دارای ۲ خصوصیت #تملک_منبع و #توزیع_وقت_پردازنده بود . این ۲ خصوصیت می تواند مستقلاً توسط سیستم عامل رسیدگی شوند . برای تمایل بین این ۲ خصوصیت ،ب توزیع وقت پردازنده ، #نخ و به تملک منبع ، #فرایند گویند . ( مثل پردازنده چند هسته ای که دارای چندین نخ است و هرکدام یک فرایند برنامه را اجرا میکند )
مهترین مزیت استفاده از سیستم های چند نخی ، این است که در فرایند تک نخی(تک بعدی) ؛ هرگاه فراخوان سیستمی مسدود کننده ای اجرا شود یا یک نقص صفحه رخ دهد ، کل فرایند مسدود می شود .( مثال ؛ یک برنامه صفحه گسترده ؛ بسیاری از صفحات وب ، شامل تصاویر کوچکتری هستند. ک مروگر باید اتصال جداگانه بابت دریافت هر تصویر داشته باشد ک زمان بر است . اگر در مرورگر از روش چند نخی استفاده شود ، هر نخ می تواند بطور همزمان با نخ های دیگر تصویر درخواست خود را اجرا کند )
حالت های نخ ؛
۱- یک فرایند و یک نخ
۲-یک فرایند و چند نخ
۳-چند فرایند و یک نخ
۴-چند فرایند و چند نخ
پیاده سازی نخ : ۳ روش برای پیاده سازی و مدیریت نخ وجود دارد ؛
۱-نخ های سطح کاربر :
در این روش تمام عملیات راهبری در فضای ادرس کاربر انجام می شود (یعنی برنامه های کاربر در سطح کاربر ). در این روس هزینه ایجاد نخ با هزینه تقسیس حافظه برای برپا سازی پشته ( استک ) تعیین می شود
مزایا: ایجاد و حذف سریع نخ ها ، همگام سازی سریع نخ ها ، تعویض متن کم هزنیه و سریع
معایب :
اگر یک نقص صفحه (پیج فالد )برای نخ رخ دهد ، کل فرایند مسدود می شود …. اگر نخی یک فراخوان سیستمی را صدا بزند کل فرایند ب اشتباه مسدود می شود …. چون سیستم عامل از وجود نخ ها آگاه نمی باشد ، نخ ها را بین چندین پردازنده ب خوبی پخش و زمانبندی نمی کند
۲- سطح هسته :
اگر نخ ها در هسته سیستم عامل پیاده سازی شوند ، مشکلات روش قبل رخ نمی دهد . اما چون هر عملیات نخ باید توسط هسته انجام شود نیاز ب یک فراخوانی سیستمی دارد . ک هزینه را بالا میبرد . تعویض متن نخ در این روش ممکن است ب اندازه تعویض متن فرایند پر هزینه باشد .
مزایا و معایب سطح هسته ، دقیقا برعکس سطح کاربر است .
۳- روش ترکیبی :
برای غلبه بر مشکلات ۲ سطح قبلی , از این روش ترکیبی استفاده می شود .
ک یکی از فرایند های سبک وزن ( LWP : درون متن یک فرایند اجرا شده و ب ازای هر فرایند ممکن است چند LWP وجود داشته باشد . ) است .
پایان فصل دوم درس سیستم عامل
فصل چهارم درس سیستم عامل
سوال :
کدام گزینه درباره مدل های چند نخی درست نیست ؟
۱- مدل های یک ب یک و چند ب چند توانایی بهره وری بهتر از پردازنده ها را دارند
۲- مدل چند ب یک نسبت ب یک به یک ، از کارایی کمتری برخوردار
۳- در مدل های یک به یک نسبت ب چند به یک از امکان همزمانی کامل بین نخ ها وجود دارد .
۴-مدل یک ب یک از چند به یک از همزمانی بیشدری برخوردارع
به وضعیتی که در آن تعدادی از فرایند ها هر یک منتظر دیگری باشند را (بن بست یا Deadlouck) می گویند!
به عبارتی دیگر هر یک از فرایند های درون یک مجموعه منتظر رویدادی می باشند . که انجام آن فقط از عهده دیگر اعضا مجموعه بر می آید .در این حالت همگی تا ابد منتظر خواهند ماند .
مثال : یک سیستم را با ۲ فرایند P2 , P1 نظر بگیرید.
فرایند P1 پس از مدتی منبع R1 (مثلا پرینتر) و فرایند P2 منبع R2 (مثلا اسکنر) را در اختیار میگیرد . پس از مدتی فرایند P1 جهت تکمیل کار خود به اسکنر نیاز پیدا می کند . و فرایند P2 جهت تکمیل کار خود به پرینتر هم احتیاج پیدا میکند . در این حالت (بن بست) رخ می دهد ! و هر ۲ فرایند تا ابد منتظر آزاد شدن منبع مورد نیاز می ماند .
گراف تخصیص منابع ( برای تشخیص و بررسی بن بست می باشد )
برای بررسی بن بست از یک گراف خاص به نام گراف تخصیص منابع استفاده می شود . در این گراف از تعدادی گره و کمان استفاده می شود .
گره ها به ۲ دسته منابع و فرایند تقسیم می شود .که منابع را با مستطیل و فرایند ها را با دایره نشان می دهند .
اگر در گراف تخصیص منبع هیچ حلقه ای وجود نداشته باشه ، بن بست وجود ندارد ! اما اگر در گراف تخصیص منابع حلقه وجود داشته باشه ، احتمال وقوع بن بست وجود دارد . اما قطعی نیست !
در تصویر بالا بن بست نیست ، زیرا فرایند D هیچ منبعی نیست و امید داریم که R3 را رها کند. با ازادی R3 فرایند A از انتظار خارج می شود .با اتمام فرایند A یکی از ۲ منبع R1 ازاد می شود .و دیگر دلیلی برای منتظر بودن فرایند C وجود ندارد و پس از پایان فرایند C منبع R2 نیز ازاد شده و فرایند B ادامه می یابد .
شرایط کافمن ؛
طبق نظریه کاف من برای وقوع بن بست ۴ شرط باید همزمان برقرار باشند ( اگر یکی از شروط برقرار نباشد ، بن بست نیست )
۱-انحصار متقابل : یعنی که فقط یک فرایند می تواند از یک منبع استفاده کند .
۲-انحصاری بودن : فرایند باید داوطلبانه منبع را رها کند .
۳-نگهداری و انتظار : یعنی که یک فرایند می تواند منابعی را در اختیار داشته باشد و در همین حین درخواست یک منبع دیگر را صادر کند و اگر آن منبع آزاد نباشد در حالی که منتظر است ، حاضر نباشد منابع قبلی را رها کند .
۴-انتظار چرخشی ؛ یعنی گروهی از فرایند ها باید در یک حلقه منتظر باشند .
مقابله با بن بست :
۱-الگوریتم شترمرغ ( ostrieh ) : وقوع بن بست را نادیده می گیرد و در صورت وقوع دوباره شروع می کند ( نکته ؛ کم هزینه ترین روش مقابله با بن بست ، شتر مرغه )(در برخی از سیستمعامل های امروزی مانند یونیکس ، اتفاق می افتد )
۲-تشخیص و ترمیم بن بست ؛ در این روش هیچ هزینه ای پرداخت نمی شود . و اجازه می دهیم بن بست اتفاق بی افتد و بعد کشف بن بست ، باید سیستم از بن بست خارج شود
۳-پیشگیری از بن بست : برعکس شرایط کافمن می باشد . یعنی برای پیشگیری از بن بست ، باید کاری کنیم که یکی از ۴ شروط کافمن اتفاق نیوفتد .
۴-اجتناب از بن بست ؛ شرایط را بررسی میکنیم . که بن بست در آینده به وجود نیاد .
تعریف حالت امن :
حالتی است که در ان سیستم بتواند منابع را به هر یک از فرایند ها به ترتیبی اختصاص دهد که در آن از وقوع بن بست نیز جلوگیری شود . یعنی سیستم زمانی که در یک وضعیت امن قرار دارد که یک دنباله ی امن وجود داشته باشد .
تعریف دنباله امن:به دنباله ای از فرایند که به صورت P1 ,P2,P3,P4 ,…. باشد ، میگویند .
حالت نا امن:
اگر در یک سیستم هیچ دنباله امنی وجود نداشته باشد ، سیستم در وضعیت نا امن قرار می گیرد (در وضعیت امن بن بست رخ نمی دهد اما یه وضعیت نا امن می تواند به بن بست ختم شود اما نه لزوما )
الگوریتم بانکدار ، جهت اجتناب از بن بست می باشد .
سوال : اگر تمام منابع مورد نیاز یک فرایند از ابتدا در اختیار آن فرایند قرار گیرد ، در غیر صورت آن فرایند مسدود شود ، آنگاه کدام شرط از شرایط لازم وقوع بن بست نقص می شود .
۱-انحصار متقابل ۲-نگهداری و انتظار
۳-غیرقابل پس گرفتن ۴انتظار چرخشی
سوال : با توجه به گراف بن بست زیر ، کدام گزینه صحیح است ؟
۱-در این نمودار ، حلقه وجود دارد ولی بن بست نه .( حالت امن هم هست زیرا بن بست نیست )
۲-بن بست هست حلقه نیس .
۳-حلقه و بن بست وجود دارد .
۴-حلقه و بن بست نیست !
استفاده از Spoling برای جلوگیری از بن بست می باشد .
سوال : در صورت استفاده از کدام الگوریتم زمانبندی احتمال وقوع بن بست ، است ؟
۱-RR
۲-FIFO
۳-SPN ( چون قحطی زدگی داره و به فرایند ها منابع تخصیص نمیده)
در سیستم های کامپیوتری از حافظه های مختلفی استفاده می شود . یعنی اکثر سیستم ها از یک حافظه سلسله مراتبی استفاده میکنند .
حافظه ها را می توان بر اساس قیمت ، و سرعت به صورت زیر تقسیم کرد ؛
به ترتیب سرعت و قیمت زیاد : ثبات ، نهان ، اصلی(ROM) ، فلاش ، دیسک مغناطیسی ، نوری ، نوار مغناطیسی
ثبات ، نهان و اصلی ؛ ناپایدار هستن. یعنی با قطع برق اطلاعات خود را از دست میدهند .
یکی از مهمترین وظایف سیستم عامل ، مدیریت حافظه اصلی می باشد . منظور از حافظه اصلی ، حافظه ایست که پردازنده برای دستیابی ب دستورالعمل ها و داده ها مستقیما به آن رجوع می کند . (مثل RAM )
پیوند ادرس ( address banding)
ادرس ها در برنامه نوشته شده توسط برنامه نویس معمولا به فرم سمبلیک می باشد ! مثلا ؛ در روش استفاده از متغیر ها به جای ادرس حافظه ، برنامه نویس از نام نمادین استفاده میکند . مثل int x
در این حالت نام نمادین x در واقع فقط یک اسم سمبلیک است .ک برای ۲ بایت خاص می باشد .
واقعیت این است همانطور ک دیدیم برنامه نویس از نام سمبلیک استفاده میکند. و مترجم (کامپایلر) وظیفه دارد ک این ادرس ها را به ادرس قابل جابجایی تبدیل کند .
اما این پایان کار نیست . و این بار ب یک لودر نیاز دارد که این ادرس ها را ب ادرس های مطلق جابجا کند.یعنی پیوند ( تبدیل یا نگاشت) ادرس ها را در زمان های گوناگون ب شرح زیر انجام میدهد .
۱-زمان کامپایل :
یعنی زمانی ک جا مشخص شد ، ترجمه میکنه . اگر در زمان ترجمه ، مشخص باشد که یک فرایند در چه بخشی از حافظه قرار میگیرد ، در این حالت کد مطلق تولید می شود .( مثل برنامه های از نوع Com در سیستم عامل MS-DOS )
۲-زمان بارگزاری ؛
در این حالت مترجم کد قابل جابجایی تولید میکند و پیوند دادن نهایی تا زمان بارگزاری برنامه در حافظه به تعویق می افتد ! از این حالت زمانی استفاده میشود که هنگام کامپایل مشخص نباشد که برنامه در کجا حافظه قرار خواهد گرفت . ( مثال ؛ برنامه های Exe در Dos )ادرس های واقعی یا مطلق می دهند !
۳-زمان اجرا :
این پیوند ادرس یک حالت خاص است .و اگر پیوند ادرس تغییر کند ، زمان اجرا به تعویق می افتد !
ادرس فیزیکی و ادرس قابل رویت قابل فهم برا سیستم است ولی ادرس منطقی ، ادرس تولید شده توسط پردازنده می باشد !
۴- زمان تخصیص :
برای اینکه حافظه را ب عنوان یک منبع در اختیار فرایند ها قرار دهیم از روش های زیر استفاده می کنیم .
تک برنامگی ؛ تخصیص حافظه ب صورت یک پارچه یک روش ساده مدیریت حافظه می باشد ک نیاز ب پشتیبانی سخت افزاری خاصی ندارد . در این سیستم ها عملکرد چند برنامگی در میان نیست بلکه در هر لحظه یک کاربر و یک فرایند وجود دارد . در این حالت کل فضای حافظه ب ۳ بخش تقسیم می شود. ( ۱- بخشی ک ب طور ثابت در اختیار سیستم عامله ۲-از حافظه در اختیار برنامه است ۳-بلا استفاده می باشد )
یکی از معایب این روش ، عدم استفاده بهینه از حافظه است . ( زیرا بخش زیادی از حافظه بدون استفاده است )
در این روش برنامه ها از نظر اندازه ، محدود ب اندازه حافظه هستند . و برنامه های بزرگتر هیچ گاه نمی توانند اجرا شوند .
با استفاده از تکنیک Overlay یا جایگزاشت ، می توان برنامه های بزرگتر از حافظه را اجرا کرد .
با چه تکنیکی میتوان برنامه های بزرگتر را در تک برنامگی اجرا کرد ؟ overlay
چند برنامگی
در سیستم عامل ، چند برنامگی یعنی ؛ در هر لحظه چندین فرایند در حافظه قرار بگیرد . در این حالت تخصیص حافظه ب ۲ روش انجام می شود .
۱- استاتیک یا ایستا :
سیستم عامل یک بخش از حافظه را در ااختیار دارد . و مابقی می تواند با بخش هایی ب اندازه ثابت در اختیار برنامه قرار بگیرد .این روش ب ۲ شیوه پیاده سازی می شود . ( implement )
الف)حافظه به روس های مساوی تقسیم میشود و بعد در اختیار میگیرد . ۲ نقض دارد ( ممکن است برنامه بزرگتر از بخش باشد )( مشکل هدر رفت فضا یا تکه تکه شدن داخلی )
نکته ؛
بخش بندی ایستا چ با مساوی چ نامساوی ۲ نقض دارد ! (تعداد فرایند های فعال در سیستم محدود به تعداد بخش های تعریف شده در زمان ایجاد سیستم می باشد)(کار های با اندازه کوچک بخش بندی ایستا را ناکارامد میکند و باعث تکه تکه شدن داخلی می شود )
نکته :
امروزه از روش بخش بندی ایستا استفاده نمی شود . پس تکه تکه شدن برای ایستا است .
ب)امکان استفاده از بخش های نامساوی هم وجود دارد !
۲-داینامیک یا پویا ؛
برای غلبه بر مشکلات روش بخش بندی ایستا روشی با عنوان بخش بندی پویا اومد. ایده کلیش این می باشد که بخش های استفاده شده دارای طول متغیر باشند . و تعداد انها ثابت نباشند .در واقع اگر فرایندی به داخل حافظه اورده شد ، دقیقا به همان اندازع ای که نیاز دارد بهش اختصاص داده شود .
نکته ؛ روش بخش بندی بویا به خوبی اغاز کی شود ولی به حفره های کوچک زیادی در حافظه ایجاد می شود(تکه تکه شدن خارجی )
تکه تکه شدن خارجی برای چه روشیه ؟ داینامیک
روش های نگهداری وضعیت حافظه :
بخش مدیریت سیستم عامل باید از وضعیت ازاد و اشغال ان مطلع باشد . ۲ روش دارد ؛
روش Bitmap ؛ حافظه را ب واحد کوچک تقسیم میکند. هر بخش کوچکترین واحد تقسیس می باشد . در این روش برای یافتن n واحد آزاد حافظه یک فرایند ، باید دنباله بیت ها را حهت پیدا کردن n صفر متوالی جستجو کرد .
روش لینک لیست ( یا لینک پیوندی ) ؛
زمان بره چون نقشه( نقشه بیتی ) نداره . در این روش برای نگهداری وضعیت حافظه از یک لیست پیوندی داده استفاده می شود و هر گره لیست بیت یا حفره ازاد است . در هر گره باید اطلاعاتی از قبیل محل شروع قطعه طول قطعه پر یا خالی بودن و ادرس ذخیره شود .
یک عیب بزرگ این روش ، زمانبر بودنشه .
این روش برای مقابله شدن با تکه تکه شدن خارجی ( حفره) از روش فشرده سازی استفاده می شود .
برای اینکه حافظه را به عنوان یک منبع در اختیار فرایند ها قرار دهیم . روش ها و راه عای مختلفی وجود دارد .
۱- تک برنامگی :
در این روش وقتی یک فرآیند برای اجرا انتخاب می شود ، کل فضا حافظه ( بجز سیستم عامل ) را در اختیار میگیرد . و هنگامی که فرآیند خاتمه یافت ، کل حافظه را ازاد می کند .
یکی اژ معایب این روش ، عدم استفاده بهینه از حافظه است . به گونه ای که تگر یک فرایند کوچک در حافظه قرار داشته باشد مابقی بلا استفاده است .
در این روش برنامع ها از نظر اندازه محدود به اندازه حافظه هستند و برنامه عای بزرگتر از حافظه را هیچگاه نمب توان اجرا کرد .
راه حل ؛ با استفاده از تکنیک جای گذاشت ( overlay) می توان برنامه عای بزرگتر از حافظه را اجرا کرد.
سوال ؛ کدام یک از روش های تخصیص حافظه از سیستم عامل پشتیبانی نمی کند ؟ تک برنامگی و به برنامه های کوچیک اهمیتی نمیده
روش First fit
از ابتدا جستجو می کند که بک درخواست برای حافظه از راه برسد و اولین فضای حافظه را ک بتوان فرایند ها را در خود بگنجاند ، انتخاب می کند .
نکته ؛ در این حالت حستجو ، همواره از ابتدا اغاز شده و تراکم فضا اشغال شده معمولا در ابتدا حافظه بیشتر !چون از اول شروع میشه
Dual mode
این روش شبیه فرست فیت است ، با این فرق که جستجو همواره از ابتدا اغاز نمیشود . بلکه از محل اخرین تخصیص به بعد آغاز می شود
روش best fit
نزدیک ترین اندازع فرایند را جستجو و در نظر میگیرید تا بتواند کوچکترین فضای ازاد را پیدا کند . در واقع این روش بدین شکل می باشد که ؛ فضا های بزرگ ( ک بعد ها ممکن است استفاده شود ) را نباید تقسیم کرد . و در واقع فضایی را انتخاب می کند که دارای نزدیکترین اندازع به اندازه فرایند مورد نظر می باشد .
سوال ؛ کدام روش نزدیکر ترین اندازه به فرایند ها است ؟
روش worst fit
در این روش باید کل فضای حافظه جستجو شود ( بیشترین تاخیر داره ) تا همیشه بزرگترین فضای موجود را به هر فرایند تخصیص دهیم .
سوال ؛ قحطی زدگی در کدام روش است ؟
نکته : روش beat fit و worst fit نسبت به روش های firat fit و next fit قدری کند تر است . زیرا باید جستجو کند و کند می شود .
نکته : در روش بست فیت ، حافظه پر است ، حفره های کوچک است که هیچ گاه ب کار گرفته نمی شود . در روش worat fit ممکن است فرایند های بزرگ دچار گرسنگی شوند زیرا قسمت های بزرگتر زودتر تقسیس دادع شده چ کوچک می شوند .
روش Queck fit
در این روش لیست های جداگانه ای را برای فرایند های با اندازه های متداول تهیه می شوند ( کتاب تنن باوم )
نکته ؛ در این روش به سرعت به فرایند ها می توان فضا داد .
روش buddy
در روش رفاقتی ، اندازه بخش های حافظه همگی توان صحیحی از ۲ هستند . مثل یک ۲ چار ۸ شونزده و ….
نکته : در این روش مشکل تکه تکه شدن داخلی داریم .و به هدر رفتن فضای اختصاص داده شده سر انجام می شود ( طبق نظریه استالینگز )
مدیریت حافظه به روش صفحه بندی ( paging )
یک راه حل کلی جهت مقابله با تکه تکه شدن خارجی این است که ؛ اجازه دهیم یک فرآیند در قسمت های غیر هم جوار در حافظه قرار گیرد. یکی از روش هایی که از این ایده استفاده میکند ، تکنیک صفحه بندی است . در این روش حافظه به بخش های یکسان به نام قاب ( frame ) تقسیم می شوند . از طرفی برنامه ها نیز به قسمت های مساوی و هم اندازه با قاب ها تقسیم می شوند که به انها صفحه یا پیج می گویند .
نکات مهم :
1- برای پیاده سازی این روش به پشتیبانی سخت افزار نیاز است .
2- این روش از دید کاربر و برنامه نویس مخفی است .
3- نقطه ضعف صفحه بندی این است که اگر فقط احتیاج به ناحیه بسیار کوچکی از حافظه باشد ، در این صورت مقدار از فضای حافظه تلف می شود
زیرا کوچکترین واحدی از حافظه که می توان ان را به استفاده کننده اختصاص داد ، یک صفحه است .
تبدیل ادرس در صفحه بندی :
توانی از ۲ می باشد.
نکته : در این حالت قسمت شماره صفحه لزوما با شماره قاب هم اندازه نیس ! در این حالت تکه تکه شدن داخلی داریم .
نکته : در ازای هر فرایند در صفحه بندی نیاز به جدول صفحه جهت نگه داری ادرس ها داریم.
ساختمان جدول صفحه :
کارکرد اصلی جدول صفحه تبدیل و نگاشت ادرس های مجازی به فیزیکی می باشد . ک ۲ مسئله اساسی وجود داره .
۱- جدول صفحه میتونه خیلی بزرگ باشه
۲- نگاشت ادرس ها باید خیلی سریع صورت گیرد
ساده ترین چ ابتدایی ترین راه برای پیاده سازی جدول صفحه ، استفاده از ثبات های سریع سخت افزاری است .
نکته ! در حالتی که جدول صفحه را در حافظه نگه داریم ، برای هر بار دسترسی باید ۲ بار مراجعه کنیم ( یعنی ضریب ۲ )
نکته ؛ با بزرگ شدن فرایند ها و خافظه کامپیوتر ها ، اندازه جداول بسیار بزرگ می شود .و برای کوچک کردن اندازه جدول صفحه می توان اندازه صفحات را بزرگ کرد .
جداول صفحه چند سطحی ؛
جداول صفحه چند سطحی ، جهت حل مشکل جداول صفحه بزرگ در حافظه ، در کامپیوتر ها ، از جدول چند سطحی استفاده می کنند .
تکنیک مبادله ( swapping)
در این تکنیک ، یک فرایند به (طور کامل) از حافظه به دیسک منتقل می شود !
حافظه مجازی ( virtual memory)
در این روش قسمتی از فرایند هایی را ک نیاز نداریم را از حافظه به دیسک منتقل می کنیم .
نکته ؛ ایده حافظه مجازی معمولا با تکنیک صفحه بندی ، راحت تر پیاده سازی می شود که به ان صفحه بندی بر حسب نیاز یا Demand Paging می گویند .
صفحه بندی بر حسب نیاز ، یکی از بهترین روش ها جهت پیاده سازی ایده حافظه مجازی می باشد .
نکته ؛ ادرسی ک توسط فرایند مورد ارجاع قرار می گیرد ، ادرس مجازی نام دارد . و ادرس نای حافظه اصلی را ادرسدهای حقیقی می گویند .
پایان گودرت مند برای تشکر از ممد دانلود لطفا بر روی چند تبلیغ کلیک کنید
پیشنهاد مطالعه : برنامه V2RayNG
اطلاعات فروشنده
- نام فروشگاه: فروشگاه محمد دانلود
- فروشنده: فروشگاه محمد دانلود
- هنوز امتیازی داده نشده است!
مود بازی نیسان جی تی آر Nissan GTR 2017 برای بازی GTA V
پروژه پوستر طرح وسترن بایه باز برای فوتوشاپ
درباره پوستر پوستر طرح وسترن آمریکایی مناسب برای طرح های کلاسیک و شیک دانلود رایگان این پوستر و طرح فوتوشاپ…
قالب ارائه رزومه ( CV ) برای فوتوشاپ ( Photoshop )
پروژه رزومه آماده مناسب برای ساخت رزومه فایل لایه باز فوتوشاپ
دانلود افزونه المنتور پرو 3.13.2 Elementor Pro بدون لایسنس رایگان
المنتور یک صفحه ساز است برای وردپرس و دانلود رایگان نسخه Pro ان از ممد دانلود
پروژه لایه باز فوتوشاپ طرح هسته 3 بعدی
پروژه لایه باز فوتوشاپ طرح هسته 3 بعدی
ساخته شده با فوتوشاپ
درخواست محصول
حجم فایل: | 300 + 300 کیلوبایت |
---|---|
فرمت فایل | docx - pdf |
قوانین ثبت دیدگاه