دسته : کامپیوتر و IT
فرمت فایل : word
حجم فایل : 14 KB
تعداد صفحات : 13
بازدیدها : 269
برچسبها : دانلود مقاله
مبلغ : 5000 تومان
خرید این فایلمقاله پردازشها
زمانبندی
در علم كامپیوتر، هسته (kernel) اساسیترین بخش یك سیستم عامل است. هسته سیستم عامل برنامهای است كه دسترسی ایمن به سختافزار را برای برنامههای گوناگون فراهم میكند. به علت تعدد برنامههای كامپیوتری، همچنین از آنجایی كه دسترسی به سختافزار محدود است، هسته از طریق تكنیكی كه Multiplexing نامیده میشود، تصمیم میگیرد كه یك برنامه چه وقت و به چه مدت میتواند بخشی از سختافزار را در اختیار بگیرد. از آنجایی كه دسترسی مستقیم به سختافزار میتواند بسیار پیچیده باشد، معمولا هسته سیستمهای عامل مجموعهای از سختافزارهای مجرد را پیادهسازی میكنند. این مجردسازی پیچیدگیهای سختافزاری را پنهان میكند و رابطی (Interface) ساده و یكنواخت برای سختافزار فراهم میكند كه استفاده از آن را برای برنامهنویسان آسانتر میكند.
برای اجرای یك برنامه بر روی كامپیوتر وجود هسته در سیستم عامل ضروری نیست. برنامهها میتوانند مستقیما بر روی كامپیوتر بارگذاری و اجرا شوند، به شرط آنكه نویسنده برنامه توانایی نوشتن چنین برنامههایی را، بدون پشتیبانی سیستم عامل و انتزاع سختافزاری داشته باشد. اجرای برنامهها بدون استفاده از سیستم عامل، در بسیاری از كامپیوترهای اولیه روش معمولی بوده است. البته، در این روش برای اجرای برنامههای مختلف لازم بود كه مجددا كامپیوتر راهاندازی (Reset) و برنامه بارگذاری شود. سرانجام برای رفع این مشكل برنامههای كمكی كوچكی مثل loaderها و debuggerها ایجاد شدند، كه حین اجرای برنامههای مختلف در حافظه باقیمیماندند یا از حافظه ROM بارگذاری میشدند. با تولید این برنامههای كمكی پایه و اساس چیزی كه ما آن را هسته سیستم عامل میخوانیم شكل گرفت.
چهار نوع دسته بندی كلی برای هسته سیستمهای عامل وجود دارد:
1. هسته یكپارچه (Monolithic)، كه انتزاع (abstraction) [1] سختافزاری نیرومندی را فراهم میآورد.
2. ریزهسته (Microkernel)، كه مجموعهای كوچك از انتزاع ساده سختافزاری را به وجود میآورد و از نرمافزارهایی با نام سرویسدهنده (Server) استفاده میكنند تا قابلیت بیشتری را ارایه دهند.
3. هسته دورگه (Hybrid) یا "ریزهسته اصلاح شده"، كه شباهت زیادی به ریزهسته دارد، با این تفاوت كه به منظور اجرای سریعتر، شامل كدهایی اضافی در فضای هسته میباشد.
4. برونهسته (Exokernel)، كه هیچ گونه انتزاعی را فراهم نمیكنند، ولی با استفاده از كتابخانهای از توابع (libraries) برای افزایش كارایی، دسترسی مستقیم یا نیمهمستقیم به سختافزار را فراهم میكنند.
هسته یكپارچه (Monolithic)
هسته یكپارچه (Monolithic)، یك رابط مجازی سطح بالا بر روی سختافزار تعریف میكند. همچنین مجموعهای از توابع برای پیادهسازی سرویسدهندههای سیستم عامل، مانند مدیریت پردازشها (Process Management)، همزمانی (Concurrency) و مدیریت حافظه را فراهم میآورد.
حتی اگر تمام اجزایی كه به این عملیات سرویس میدهند از كل مجموعه هسته جدا باشند، از لحاظ همبستگی كد در تنگنا سختی خواهیم بود و با توجه به اینكه تمام اجزا در یك فضا اجرا میشوند، بروز خطایی در یكی از آنها میتواند كل سیستم را مختل كند. از طرفی دیگر، وقتی كه پیادهسازی تكمیل و قابل اطمینان شد، شرایط همبستگی تنگاتنگ بین اجزای داخلی باعث میشود كه امكانات سطح پایین سیستم به طور موثری در دسترس قرار گیرد و منجر به یك هسته یكپارچه، با كارآیی بسیار بالا شود.
طرفداران هستههای یكپارچه عقیده دارند كه اگر كدی خطا دارد نبایستی در هسته قرار داشته باشد (متعلق به هسته باشد). چرا كه در غیر این صورت، برتری اندكی نسب به ریزهستهها خواهند داشت. سیستمهای عامل Linux و Unix را میتوان جزو پیشرفتهترین هستههای یكپارچه دانست
زمانبندی نوبت گردشی
این زمانبندی یکی از قدیمیم ترین , ساده ترین , عادلانه ترین و رایجترین الگوریتم های زمانبندی است و از نوع غیر انحصاری (preemptive) میباشد. این الگوریتم شبیه FCFS است ولی به هر پردازش حداکثر به میزان زمانی مشخصی CPU داده میشود.
به عبارتی دیگر یک واحد کوچک زمانی به نام کوانتوم زمانی (time quantum) با برش زمانی (time slice) تعریف میشود که معمولاً بین 10 تا 100میلی ثانیه است و هر پروسس حداکثر به این میزان میتواند CPU را در اختیار بگیرد. هنگامی که پردازشی CPU را در اختیار دارد دوحالت ممکن است رخ دهد .