۱۳۹۴/۳/۲۷، ۱۴:۰۴:۰۹ عصر
ساختار سیستم عامل
• خدمات و مولفه های سیستم عامل:
o مدیریت پردازش در سیستم عامل
o مدیریت حافظه در سیستم عامل
o مدیریت فایل در سیستم عامل
o مدیریت ورودی- خروجی در سیستم عامل
• مفسر فرمان
• وقفه در سیستم عامل
• فراخوانی سیستمی
مدیریت پردازش در سیستم عامل
یک برنامه حاوی دستورالعمل هایی است که توسط CPU اجرا میشوند و حاوی دادههایی است که هنگام اجرای دستورات از آنها استفاده میشود . برنامه در واقع یک موجودیت passive است مانند محتوای یک فایل بر روی دیسک . ولی پردازش در سیستم عامل یک برنامه در حال اجرا میباشد که موجودیتی active دارد. یک برنامه کاربر که در سیستم اشتراک زمانی در حال اجرا است یک پروسس (فرایند) میباشد ، به همین ترتیب یک وظیفه سیستم مثل اسپولینگ خروجی به چاپگر نیز یک پروسس است . یک فرایند منابع مشخصی را نیاز دارد مثل CPU، حافظه ، وسایل I/O و فایل ها . پردازش در سیستم عامل واحد کار در سیستم است . یعنی یک سیستم مجموعهای از پردازشهای گوناگون است .
سیستم عامل در رابطه با مدیریت پردازش وظایف زیر را بر عهده دارد :
ایجاد و حذف پردازش در سیستم عامل های کاربر و سیستم – زمانبندی پردازش ها واینکه در هر زمان کدام پردازش در سیستم عامل CPU را در اختیار داشته باشد – مدیریت همزمانی پردازش ها و ارتباط بین آن ها و جلوگیری از بن بست (deadlock) بن بست حالتی است که پردازش ها در یک حلقه بسته منتظر تمام شدن وظایف همدیگر هستند و بنابراین هیچیک نمیتوانند اجرا گردند و سیستم قفل می شود .
مدیریت حافظه و فضای ذخیره سازی
سیستم عامل در رابطه با مدیریت حافظه دو عملیات اساسی را انجام خواهد داد :
هر پردازه یه منظور اجراء می بایست دارای حافظه مورد نیاز و اختصاصی خود باشد .
از انواع متفاوتی حافظه در سیستم استفاده تا هر پردازه قادر به اجرا با بالاترین سطح کارایی باشد . سیستم عامل در ابتدا می بایست محدودههای حافظه مورد نیاز هر نوع نرم افزار و برنامههای خاص را فراهم نمایند .
زمانی که برنامههای کاربردی در حافظه مستقر می گردند ، سازماندهی آنها در حافظ بر اساس بلاک هایی خواهد بود که اندازه آنها توسط سیستم عامل مشخص خواهد شد . برنامهها در بلاک هایی با طول ثابت مستقر می گردند . هر بلاک دارای محدودههای خاص خود بوده که توسط کلمات چهار و یا هشت بایت ایجاد خواهند شد .
در اغلب کامپیوترها ، می توان ظرفیت حافظه را ارتقا و افزایش داد. مثلا می توان میزان حافظه RAM موجود را از یک مگابایت به دو مگابایت ارتقا داد . روش فوق یک راهکار فیزیکی برای افزایش حافظه بوده که در برخی موارد دارای چالش های خاص خود می باشد. در این زمینه می بایست راهکارهای دیگر نیز مورد بررسی قرار گیرند. اغلب اطلاعات ذخیره شده توسط برنامهها در حافظه ، در تمام لحظات مورد نیاز نخواهد بود . پردازنده در هر لحظه قادر به دستیابی به یک محل خاص از حافظه است . بنابراین اکثر حجم حافظه در اغلب اوقات غیر فابل استفاده است .
از طرف دیگر با توجه به اینکه فضای ذخیره سازی حافظهها ی جانبی نظیر دیسک ها بمراتب ارزانتر نسبت به حافظه اصلی است ، می توان با استفاده از مکانیزم هایی اطلاعات موجود در حافظه اصلی را خارج و آنها را موقتا بر روی هارد دیسک ذخیره نمود . بدین ترتیب فضای حافظه اصلی آزاد و در زمانی که به اطلاعات ذخیره شده بر روی هارد دیسک نیاز باشد ، مجددا آنها را در حافظه مستقر کرد . روش فوق " مدیریت حافظه مجازی " نامیده میشود .
حافطههای ذخیره سازی دیسکی ، یکی از انواع متفاوت حافظه موجود بوده که می بایست توسط سیستم عامل مدیریت گردد . حافطههای با سرعت بالای Cache، حافظه اصلی و حافظههای جانبی نمونههای دیگر از حافظه بوده که توسط سیستم عامل مدیریت گردند .
مدیریت فایل در سیستم عامل
جهت استفاده ساده از اطلاعات کامپیوتر، سیستم عامل دید منطقی یکسانی از اطلاعات ذخیره شده روی انواع وسایل ذخیره سازی مثل هارد دیسک ، فلاپی ، نوار یا دیسک های نوری پدید میآورد .
سیستم عامل خواص فیزیکی وسایل را از دید کاربر مخفی کرده و یک واحد ذخیره منطقی به نام فایل ارائه میکند . سیستم عامل دررابطه با فایل وظایف زیر را انجام میدهد :
• ایجاد وحذف فایل ها
• ایجادو حذف دایرکتوری ها
• انجام عملیات کپی
• انتقال و تغییرات بر روی فایل ها و دایرکتوری ها
• ذخیره سازی ومدیریت قرار گیری فایل ها بر روی رسانهها
• مدیریت دسترسی های مختلف به فایل های مشترک
مفسر فرمان
یکی از مهمترین برنامههای سیستم عامل مفسر فرمان است که در واقع واسط بین کاربردو سیستم عامل میباشد .
بعضی از سیستم عامل ها مفسر فرمان را در هسته خود (kernel) قرار دادهاند و بعضی دیگر مثل DOSو UNIX مفسر فرمان را (که پوسته یا Shell نیز معروف است ) مانند یک برنامه خاص که در اولین برقراری ارتباط اجرا میشود در نظر میگیرند . مفسر فرمان دستورات کاربر را گرفته و آن ها را اجرا میکند .
وقفه در سیستم عامل
وقفهها جز مهمی از معماری کامپیوتر هستند و نحوه عملکرد آنها از ماشینی به ماشین دیگر ممکن است متفاوت باشد . وقفه راهکاری را فراهم میسازد تا اجرای دستورالعمل های جاری پردازنده موقتا متوقف شده و دستورات سرویس دهی دیگری اجرا گردد و سپس از آن کنترل دوباره به برنامه وقفه داده شده باز گردد .
وقفههای برنامه program check) )
وقفههای زمان سنج (Timer)
وقفههای I/O
وقفه (Super Visor Call)
وقفه Restart
در یک تقسیم بندی کلی میتوان وقفههای را سه دسته کرد :
۱) وقفههای داخلی (trap) که بر اثر اجرای دستورات خود برنامه به صورت داخلی در CPU رخ میهند.
2) وقفههای خارجی که از دستگاه های خارجی مثل دستگاه های ورودی یا خروجی ،DMA تایمرها ، صفحه کلید و خطاهای سخت افزاری ناشی میشوند.
۳) وقفههای نرم افزاری (SVC ) که بر اثر فراخوانی توابع سیستمی توسط برنامه رخ میدهند با اجرای مجدد برنامه ، وقفههای داخلی به همان صورت قبلی دوباره رخ میدهند ولی وقفههای خارجی مستقل از دستورات برنامه و ناهمگام با برنامه میباشند .
فراخوانی سیستمی
فراخوان های سیستمی رابط ما بین سیستم عامل و برنامههای کاربردی میباشند. در زبان سطح بالای C و پاسکال مستقیما میتوان این فراخوانهای سیستمی را به کار برد. از فراخوانهای سیستمی عبارتند از:
مدیریت پردازش ها : مانند ایجاد و اتمام پردازش، بارگذاری و اجرای پردازش در سیستم عامل ، تخصیص و آزاد کردن حافظه و غیره .
مدیریت فایل ها و فهرست ها : ایجاد و حذف فایل ، باز و بسته کردن فایل ، خواندن و نوشتن ، تغییر صفحات فایل و غیره .
مدیریت وسایل : درخواست و رهاسازی وسیله ، خواندن و نوشتن در وسیله وغیره .
بدست آوردن اطلاعات : خواندن و تنظیم تاریخ و زمان ، خواندن زمان استفاده از سیستم توسط کاربر، تعداد کاربران ، میزان فضای آزاد حافظه یا دیسک ، نسخه سیستم عامل وغیره .
انواع زمانبندیها در سیستم عامل
• پردازش در سیستم عامل
• حالات یک پردازش
• بلوک کنترلی پردازش
• نخ بند-رشته
• زمان بندی در سیستم عامل
• انواع زمانبندی ها در سیستم عامل
• معیار های زمانبندی در سیستم عامل
پردازش در سیستم عامل
مهمترین مفهوم در هر سیستم عامل فرآیند یا پردازش (process) است . تمامی نرم افزارهای کامپیوتر از جمله سیستم عامل به تعدادی از پروسس ها سازماندهی و تقسیم بندی میشوند.
حالات یک پردازش
یک پروسس در زمان حیات خود میتواند دریکی از سه وضعیف اجرا (Running) , آماده (Ready) وبسته (Blocked) قرار گیرد .
بلوک کنترلی پردازش
پردازش برنامه در حال اجراست . ولی از دید سیستم عامل میتوان گفت پردازش در سیستم عامل یکسری ساختمان داده است .
زمان بندی در سیستم عامل
هدف چند برنامگی این است که در همه اوقات ، پردازشی در حالت اجرا وجود داشته باشد تا بهره وری CPU ما بین پردازش ها به قدر مکرر ، سوئیچ نماید که کاربران با برنامه در حال اجرا محاوره داشته باشند .
زمانی که بیش از یک پروسس قابل اجرا باشد سیستم عامل باید تصمیم بگیرد که کدامیک اول اجرا شود . بخشی از سیستم عامل که این تصمیم گیری را انجام می دهد زمانبندی (Scheduler) نامیده میشود . پردازشهایی که در حافظه اصلی قرار دارند و منتظر اجرا شدن هستند در صفی به نام صف آماده (ready queue) قرار میگیرند .
انواع زمانبندیها در سیستم عامل
از یک جنبه زمانبندیهای پردازش در سیستم عامل به سه دسته :
الف) دراز مدت (Long term scheduler)
ب) کوتاه مدت (Short term scheduler)
ج) میان مدت
تقسیم بندی میشوند .
معیار های زمانبندی در سیستم عامل
1)عدالت (fairness)
2)کارایی یا بهره وری (utilization- Efficiency) CPU
3) زمان پاسخ ( (Response Time
۴) زمان برگشت یا گردش کار( Turnaround)
۵) توان عملیاتی یا گذردهی (throughput)
انواع زمانبندی ها
اولویت ها میتوانند بصورت اتوماتیک توسط سیستم نسبت داده شوند و یا از خارج سیستم تعیین گردند ، مثلاً ممکن است یک کاربر کار فوری داشته باشد و حاضر باشد به خاطر بدست آوردن سرویس بالاتر هزینه بیشتری بپردازد ، یعنی اولویت را بخرد . یک اولویت ممکن است استاتیک باشد یا دینامیک . اولویت استاتیک تغییر نمیکند و بنابراین پیاده سازی آن ساده است
طراحی دکوراسیون داخلی - اجرای دکوراسیون داخلی - طراحی دکوراسیون داخلی خانه
بازسازی ساختمان - نمای سیمانی - گچ کاری - گچکاری
طراحی دکوراسیون داخلی - اجرای دکوراسیون داخلی - طراحی دکوراسیون داخلی خانه
بازسازی ساختمان - نمای سیمانی - گچ کاری - گچکاری