You are on page 1of 22

‫درس سیستم عامل – دانشکده شهید باهنر شیراز – مدرس‪ :‬محمدرضا خرام‬

‫وظایف سیستم عامل‬


‫تشخیص و نصب دستگاههای جانبی‬ ‫•‬
‫مدیریت پروندهها و پوشهها‬ ‫•‬
‫کنترل ورودی ها و خروجیها‬ ‫•‬
‫اشتراک سیستم حافظه‬ ‫•‬
‫هدایت و اجرای برنامه های نرمافزاری‬ ‫•‬
‫ارسال و دریافت دادهها از دیسک سخت‬ ‫•‬
‫اجازه ارتباط نرمافزار با سختافزار‬ ‫•‬
‫کنترل خطاها و هشدارهای سیستم‬ ‫•‬
‫مدیریت امنیت سیستم‬ ‫•‬

‫تشخیص و نصب دستگاههای جانبی‬


‫یکی از اتفاقاتی که ممکن است برای هرکسی هنگام استفاده از سیستمعامل رخ دهد‪ ،‬عدم شناسایی بعضی از دستگاههای جانبی‬
‫توسط سیستم عامل است‬
‫معموالً سیستمعاملها قادر به تشخیص و نصب درایورهای اکثر قطعات جانبی میباشد‪ .‬اما اگر موارد استثنایی رخ دهد و سیستم‬
‫عامل از یافتن آن عاجز ماند‪ ،‬میبایست که خودمان دستگاه شناخته نشده را پیدا کرده و درایور آنرا نصب کنیم‪.‬‬
‫درایور به نرمافزاری اطالق میشود که واسط بین سخت افزار و نرم افزار برای کنترل و مدیریت سخت افزار های رایانه ای را به شکل‬
‫بهینه ای فراهم می آورد؛ درایور ها معموال در یک دیسک قرار داده شده و همراه دستگاه یا قطعه سخت افزاری هستند‪.‬‬

‫مدیریت پروندهها و پوشهها‬


‫پرونده یا فایل به کوچکترین واحد منطقی ذخیرهسازی بر روی دیسک گفته میشود که کاربر یا برنامهساز‪ ،‬قادر به مشاهده و‬
‫دستکاری آن است‪ .‬انواع فایلهای کامپیوتری به اهداف گوناگون ساخته میشوند‪ .‬فایل میتواند برای ذخیرهسازی متن ها‪ ،‬عکس‬
‫ها‪ ،‬فیلم ها‪ ،‬آهنگ ها و برنامههای کامپیوتری یا طیف گستردهای در دادهها استفاده شود‪.‬‬
‫پوشه‪ ،‬فولدر یا دایرکتوری نهادی است در سیستم پروندهها که (گروهی از) پرونده(ها) و‪/‬یا پوشهها را در خود دارد‪.‬‬
‫اصلیترین کاربردهای یک مدیر پرونده‪ ،‬ایجاد‪ ،‬بازکردن‪ ،‬ویرایش‪ ،‬نمایش‪ ،‬چاپ‪ ،‬اجرا‪ ،‬تغییرنام‪ ،‬تغییرمسیر‪ ،‬کپی‪ ،‬تغییر دسترسی و‬
‫جستجوی پروندهها است‪.‬‬

‫کنترل ورودیها و خروجیها‬


‫ورودی‪/‬خروجی یا همان ‪ I/O‬به معنای ارتباط برقرار کردن بین یک سیستم پردازش اطالعات مانند رایانه و دنیای بیرون (انسان)‬
‫است‪.‬‬
‫ورودی‪ ،‬سیگنالها یا دادههایی هستند که به وسیله سیستم دریافت میشوند‪ ،‬و خروجیها سیگنالها یا دادههایی هستند که سیستم‬
‫آنها را ارسال میکند‪ .‬همچنین اعمال ‪ I/O‬را میتوان قسمتی از یک عمل تعریف کرد‪ ،‬اجرای ‪ I/O‬به معنی زمانبندی‬
‫ورودی‪/‬خروجی است‪ .‬برای مثال صفحهکلید یا ماوس را میتوان یک وسیله ورودی برای رایانه به حساب آورد و در مقابل نمایشگر‬
‫یا چاپگر را میتوان به عنوان وسیله خروجی حساب کرد‪ .‬به عالوه وسیله یا دستگاههایی که برای ارتباط بین رایانهها استفاده میشود‬
‫مانند مودم یا کارتهای شبکه به طور کلی هر دو عمل ورودی و خروجی را در بر میگیرند‪.‬‬
‫نکتهای که درباره ‪ I/O‬باید ذکر شود اینست که‪ ،‬ورودی یا خروجی بودن یک دستگاه‪ ،‬بستگی به جنبه عمل آن دارد‬
‫یعنی ماوس و صفحهکلید به عنوان ورودی حساب میشوند که اعمال حرکت انسانی رو به سیگنالهایی تبدیل میکنند که‬
‫برای رایانه قابل فهم باشد اما نکته اینجاست که خروجی این دستگاهها یک ورودی برای رایانه به حساب میآید و برعکس زمانی‬
‫که رایانه میخواهد خروجی را نمایش دهد داده خروجی برای رایانه یک خروجی و برای ما انسانها یک ورودی به حساب میآید و‬
‫این اصل به طور کامل در سیستم در حال اجرا بین قطعات مختلف است‪.‬‬
‫همیشه یک رابط ورودی‪/‬خروجی برای زمانی که وسیله ‪ I/O‬توسط پردازنده هدایت میشود الزم است‪ .‬این رابط باید هوش مورد‬
‫نیاز را برای ترجمه کردن آدرسی که توسط پردازنده به دستگاه ‪ I/O‬داده شدهاست را داشته باشد‪ .‬ارتباط اولیه (که قبل از ارتباط‬
‫معمولی ایجاد می شود و به طوری برای تنظیم کردن قوانین است) باید توسط رابط ایجاد شود و توسط دستورهای مناسب مانند‬
‫‪Wait ،Ready ،Busy‬مدیریت شود و در نتیجه پردازنده قادر خواهد بود که با وسیله ‪ I/O‬با استفاده از رابط ایجاد شده ارتباط برقرار‬
‫کند؛ و اگر دادههایی از جنس مختلف در حال انتقال باشند رابط باید قادر باشد که دادههای سریالی را به نوع موازی و معکوس‬
‫تبدیل کند‪.‬‬
‫اشتراک سیستم حافظه‬
‫حافظه مشترک یا حافظه اشتراکی حافظهای است که میتواند به طور همزمان توسط چندین برنامه مورد دستیابی قرار گیرد‪ .‬این‬
‫کار به منظور برقراری ارتباط بین برنامهها و همچنین پرهیز از قرار دادن کپیهای زائد اطالعات در حافظه انجام میشود‪ .‬حافظه‬
‫اشتراکی راهی مؤثر برای رد و بدل کردن دادهها مابین برنامهها میباشد‪ .‬بسته به زمینه‪ ،‬برنامهها میتوانند بر روی یک پردازنده‬
‫واحد یا بر روی چندین پردازنده مستقل اجرا شوند‪.‬‬

‫هدایت و اجرای برنامه های نرمافزاری‬


‫نرمافزار‪ ،‬بخشی از رایانه است که دربرگیرنده دادهها یا دستورهای رایانه است (بر خالف سختافزار که اجزای تشکیل دهنده رایانه‬
‫را میسازد)‪ .‬تمام اطالعات فراوری شده بهوسیله سیستم رایانه‪ ،‬برنامهها و دادهها را نرمافزار مینامند‪.‬‬
‫وقتی برنامهای روی رایانه نصب میگردد‪ ،‬بعضی از اجزای سختافزاری رایانه به فرمان آن برنامه در میآیند‪ .‬برای نمونه هنگامی که‬
‫با یک برنامه اجرای موسیقی کار میکنید‪ ،‬کارت صدای رایانه با برنامه پخش موسیقی همکاری میکند و یک آهنگ یا پرونده (فایل)‬
‫صوتی را از طریق بلندگوی رایانه پخش میکند‪.‬‬
‫ارتباط میان نرمافزار و سختافزار توسط سیستم عامل انجام میشود‪ .‬این تنها قسمتی از کار سیستم عامل است‪ .‬در ضمن سیستم‬
‫عامل یک برنامه نرمافزاری است که چون تمام منابع و امکانات سختافزاری در اختیار وی میباشد دارای ویژگی منحصر به فردی‬
‫میباشد‪ .‬با این وجود هدایت و اجرای سایر برنامهها به عهده سیستم عامل است‪.‬‬

‫ارسال و دریافت دادهها از دیسک سخت‬


‫دیسک سخت وسیلهای است با یک یا چند صفحه که سطح آنها با موادی پوشش داده شده که بتوان دادهها را بهطور مغناطیسی بر‬
‫روی آنها ضبط نمود‪ .‬این وسیله عالوه بر صفحههای مذکور حاوی هدهای خواندن‪/‬نوشتن‪ ،‬سازوکار تعیین محل هد‪ ،‬و موتوری است‬
‫که در محفظهای جای داده میشود تا از آلودگیهای خارجی در امان باشد‪ .‬این محیط محافظت شده به هدها امکان میدهد تا به‬
‫اندازهی ‪ ۱۰‬تا ‪ ۲۵‬میلیونیم اینچ از سطح صفحهای که عموماً ‪ ۵4۰۰‬تا ‪ ۷۲۰۰‬دور در دقیقه میزند فاصله داشته باشد‪ .‬در دیسکهای‬
‫سخت جدید که به آنها دور باال نیز گفته میشود‪ ،‬سرعت چرخش دیسک به ‪ ۱۵۰۰۰‬دور در دقیقه )‪ (RPM‬میرسد‪.‬‬
‫بافر یا حافظه نهان دیسک‪ ،‬حافظه جاسازی شده در یک هارد دیسک است که به عنوان یک بافر بین بقیه کامپیوتر و پالتر‬
‫فیزیکی هارد دیسک قرار میگیرد و برای ذخیرهسازی دادهها استفاده میشود‪ .‬و در واقع دادههایی که قرار است بر روی هارددیسک‬
‫ذخیره شوند‪ ،‬ابتدا در بافر آن نگهداری شده و سپس عمل ذخیرهسازی توسط ساختار سخت افزاری هارددیسک انجام میگیرد‪.‬‬

‫اجازه ارتباط نرمافزار با سختافزار‬


‫هر دستگاه دو بخش دارد‪ ،‬یکی نرمافزار و دیگری سختافزار است‪ .‬اما قلب تپنده هر سیستم رایانهای چیزیست که این دو بخش‬
‫را به هم پیوند میدهد و آن سیستمعامل است‪ .‬سیستمعامل نرمافزاری است که مدیریت منابع رایانه را به عهده گرفته و بستری را‬
‫فراهم میسازد که نرمافزارهای کاربردی در آن اجرا شده و از خدمات آن استفاده کنند‪.‬‬

‫کنترل خطاها و هشدارهای سیستم‬


‫وقتی که یک سیستم کامپیوتر در حال کار است‪ ،‬ممکن است خطاهای مختلفی رخ دهد؛ از جمله این خطاها‪ ،‬خطای سخت افزاری‬
‫داخلی و خارجی مانند خطای حافظه یا کار نکردن و بد کار کردن یک دستگاه و خطاهای مختلف نرمافزاری مانند تقسیم به صفر‪،‬‬
‫تالش برای دسترسی به محل های ممنوعه حافظه و عدم توانایی ‪ OS‬در پاسخ به درخواست یک ‪ Application‬می باشند‪.‬‬
‫مدیریت امنیت سیستم‬
‫به طور ساده امنیت را میتوان اطمینان از عدم دسترسی افراد غیر مجاز و جلوگیری از دستکاری در پیام های محرمانه دانست‪.‬‬
‫امنیت اطالعات به پنج قسمت امنیت فیزیکی‪ ،‬امنیت شبکه‪ ،‬امنیت ‪ host‬نرم افزار امنیتی و امنیت داده ها تقسیم شده اند‪ .‬با این‬
‫وجود‪ ،‬امنیت یک سیستم کامپیوتری با کاربردهای خاص و مهم وابسته به سیستم عامل باید بررسی کرد‪ ،‬آنچه مشخص است این‬
‫است که امنیت سیستم عامل پیش شرط اساسی و پایه های امنیت کل سیستم اطالعاتی یک کامپیوتر است‪.‬‬

‫موفق باشید‪-‬خرام‬
‫درس سیستم عامل – دانشکده شهید باهنر شیراز – مدرس‪ :‬محمدرضا خرام‬

‫تعریف برنامه ‪Program‬‬


‫برنامه‪ ،‬در سیستم عاملهای اولیه به این شکل بود که بعد از اجرای سیستمعامل‪ ،‬تنها‬
‫یک برنامه میتوانست در حافظه اصلی بارگذاری شود‪ .‬و در زمان اجرا تمام منابع موجود‬
‫فیزیکی و منطفی به برنامه در حال اجرا اختصاص داده میشد‪.‬‬
‫در سیستم عاملهای امروزی میتوان به برنامه به شکل یک محتوای غیرفعال نگاه کرد‪.‬‬
‫برنامه را به کدهای موجود در دیسک سخت گوییم که اکتیو نیست ویک عنصر غیرفعال‬
‫است چون برای اجرا به حافظه اصلی منتقل نشده است‪.‬‬

‫تعریف فرایند ‪Process‬‬


‫پردازه‪ ،‬پردازش و فرایند همگی معادل ترجمه ‪ Process‬هستند‪ .‬هر فرایند را میتوان برنامهای در حال اجرا در نظر گرفت‬
‫مهمترین مفهوم در هر سیستم عامل فرآیند است‪ .‬تمامینرم افزارهای کامپیوتر از جمله سیستم عامل به تعدادی از فرایند سازماندهی‬
‫و تقسیم بندی میشوند‪.‬‬
‫یک فرایند برنامهای در حال اجراست ‪ .‬در واقع یک فرایند فقط یک برنامه اجرایی است که عالوه بر کد برنامه (یا بخش متن ‪text‬‬
‫‪ )segment‬شامل مقدار شمارنده برنامه‪ ,‬رجیسترهای ‪, CPU‬پشته و بخش دادهها(‪ )Data segment‬است ‪ .‬به عبارتی دیگر میتوان‬
‫گفت که هر فرایند‪ CPU ،‬مجازی خود را دارد ‪ .‬در سیستم چند برنامگی ‪ CPU‬از یک فرایند به فرایندی دیگر سوئیچ میکند و هر‬
‫کدام را به مدت چند ده یا چند صد میلی ثانیه به اجرا در میآورد‪.‬‬
‫باید دقت کرد که یک برنامه به خودی خود یک فرایند نیست ‪.‬برنامه الگوریتمیاست که محتویات یک فایل بر روی دیسک ذخیره‬
‫شده است ‪ .‬به عبارتی دیگر برنامه یک نهاد غیر فعال (‪ )passive‬است ‪.‬‬
‫در حالیکه فرایند یک نهاد فعال(‪ )active‬میباشد که در حال اجراست ‪.‬‬
‫مثالً در یک کامپیوتر کاربران متعددی ممکن است در حال اجرای نسخههای متعددی از برنامه ویرایشگر باشند یا مثالً یک کاربر‬
‫میتواند چند نسخه از برنامه ویرایشگر را همزمان اجراء کند‪ ,‬در این حال هر کدام از آنها یک فرایند جداگانهاند و اگر چه بخش‬
‫متنشان (کدشان )یکسان است ولی بخش دادههایشان متفاوت میباشد‪.‬‬
‫در سیستمها روشی مورد نیاز است تا در حین کار بتوان فرایندهایی را ایجاد کرد یا از بین برد در ‪ UNIX‬فرایندها توسط فراخوان‬
‫سیستمی‪ fork‬پدید میآیند‪ ,‬این فراخوانی یک فرایند فرزند تولید میکند که نسخهای دقیقاً یکسان با فرایند پدر خواهد بود‪.‬‬
‫به همین ترتیب فرایند فرزند نیز میتواند ‪ fork‬را اجراء کرده و لذا سیستم میتواند درختی از فرایندها داشته باشد‪ .‬بدیهی است هر‬
‫فرایند فقط یک پدر دارد ولی میتواند صفر یا چندین فرزند داشته باشد‪.‬‬
‫بالک کنترل فرایند )‪ (Process control block‬ساختار دادهای در داخل هسته سیستمعامل است که دربرگیرنده اطالعات مورد‬
‫نیاز برای مدیریت یک فرایند بخصوص است‪ .‬هر فرایند بالک ‪ PCB‬مختص به خود را دارد که سیستمعامل در هنگام تعویض متن‬
‫)‪ (Context Switching‬آن را موقتاً در جایی ذخیره میکند تا فرایند دیگری را اجرا کند‪ ،‬سپس مجدداً آن را بازیابی میکند تا‬
‫اجرای فرایند قبلی از سر گرفته نشود‪.‬‬
‫در داخل این ساختار داده معموالً اطالعات زیر قرار دارد‪( .‬توجه داشته باشید که این اطالعات در سیستمعاملهای مختلف با هم‬
‫کمیمتفاوت هستند)‬
‫• وضعیت جاری فرایند‪ .‬مثالً آیا فرایند در حال اجراست‪ ،‬آماده اجراست یا منتظر وقوع رویدادی است‪.‬‬
‫• شماره شناسایی فرایند)‪(PID‬‬
‫• فضای آدرس فرایند‬
‫• اطالعات ورودی‪/‬خروجی (شامل فهرست فایلهای باز شده توسط فرایند و همینطور دستگاههای ورودی‪/‬خروجی اختصاص‬
‫یافته به فرایند)‬
‫• اشارهگری به ‪ PCB‬بعدی‪ .‬یعنی اشارهگری به ‪ PCB‬فرایندی که قرار است بعد از فرایند جاری اجرا شود‪.‬‬
‫• اطالعات حسابرسی فرایند‪ .‬مانند اینکه فرایند آخرین بار کِی اجرا شده یا اینکه فرایند تاکنون چه قدر از ‪ CPU‬استفاده‬
‫کردهاست‪.‬‬
‫• اولویت فرایند‪( .‬هر چه اولویت باالتر باشد فرایند زودتر اجرا میشود)‬
‫• مقادیر ثباتها‪ ،‬مثل ثبات شمارنده برنامه و ثبات اشارهگر پشته‬
‫• پردازندهایی که فرایند بر روی آن اجرا میشود‪.‬‬
‫• اشارهگری به فرایند والد‬
‫• اشاره گری به فرایند فرزند (در صورت وجود داشتن)‬

‫در هنگام تعویض زمینه‪ ،‬اجرای فرایند جاری‬


‫متوقف شده و فرایند دیگری شانس اجرا شدن‬
‫مییابد‪ ،‬هسته سیستمعامل باید اجرای فرایند‬
‫جاری را متوقف کرده‪ ،‬مقادیر ثباتها را در ‪PCB‬‬
‫کپی کند‪ ،‬سپس ثباتها را با مقادیر مربوط به‬
‫فرایند جدید جایگرین کند‪.‬‬

‫در ادامه به تفصیل در باره محتوای ‪ PCB‬گفته‬


‫خواهد شد‪.‬‬
‫تعریف کار )‪:(Job‬‬
‫در سیستم عامل دستهای‪ job ،‬از سه جزء "برنامه‪ ,‬دادهها و کارتهای کنترل" تشکیل میشد‪ .‬به پاراگراف زیر توجه کنید؛‬
‫"کاربر ابتدا برنامه خود را به زبان فرترن یا اسمبلی بر روی کاغذ مینوشت سپس توسط دستگاه‪ Card punch,‬برنامه را روی‬
‫کارتهای سوراخدار منتقل میکرد‪ .‬بعد این دسته کارت تهیه شده که شامل برنامه‪ ,‬دادهها و کارتهای کنترل بود به صورت کار‬
‫‪ Job‬تحویل اپراتور داده میشد‪ .‬اپراتور بعد از اتمام کار قبلی‪ ,‬دسته کارت جدید را به کامپیوتر میداد تا برنامه را اجرا کند در انتها‬
‫خروجی برنامه که غالباً چاپی بود را به کاربر تحویل میداد‪".‬‬

‫وظیفه ‪:Task‬‬
‫هر فرایند در حال اجرا‪ ،‬از یک یا تعدادی قطعه کد تشکیل شده است‪ .‬به قطعه کد در حال اجرا در هر فرایند‪ ،‬وظیفه )‪ (task‬گویند‪.‬‬
‫در لحظهی اجرای یک فرایند‪ ،‬فقط دستورات وظیفهی فعال موجود در حافظه اجرا میشود‪ .‬برای درک تفاوت بین وظیفه و فرایند‪،‬‬
‫به مثال زیر توجه کنید‪ .‬اگر برنامه ‪ Ms-Word‬را اجرا کنید‪ .‬پس از اجرای آن ممکن است دو یا چند پرونده را در آن باز کنید‪ .‬به‬
‫برنامه ‪ Ms-Word‬موجود فرایند گوییم و به پروندهها موجود در آن "وظیفه" گوییم‪.‬‬
‫در حالت کلی میتوان گفت برنامههایی که چند وظیفهی جدا از هم را میتوانند اجرا کنند‪ ،‬میتوانند به صورت چند وظیفهای‬
‫پیادهسازی شوند‪ .‬سیستمهایی که امکان اجرای چندین وظیفه را بصورت همزمان فراهم میکنند‪ ،‬سیستمهای چند وظیفهای‬
‫نامیده میشوند‪.‬‬
‫نمای کلی سیستم کامپیوتر‬

‫پردازنده ‪ :‬کنترل عملیات کامپیوتروپردازش داده ها‬


‫حافظه اصلی‪ :‬داده ها و برنامه ها را ذخیره میکند‬
‫ماژول های ورودی‪/‬خروجی ‪ :‬داده ها را بین کامپیوتر و محیط خارجی انتقال میدهد‪.‬‬
‫گذرگاه سیستم ‪ :‬محیطی را برای ارتباط بین پردازنده‪ ،‬حافظه اصلی و ماژولهای ورودی و خروجی ایجاد میکند‬

‫ثبات های قابل رؤیت برای کاربر‪ :‬تخصیص متغیر به یک ثبات در هر حافظه به کمک برنامه نویسی‪.‬‬
‫ثبات های کنترل و وضعیت ‪ :‬پردازنده از این ثبات ها برای کنترل عملیات پردازنده استفاده کرده و رویه های ممتاز سیستم عامل‬
‫از آنها برای کنترل اجرای برنامه استفاده میکند‪.‬‬

‫ثبات های قابل رؤیت برای کاربر‬


‫• ثبات های داده‪ :‬برای نگهداری داده ها و دستورالعملها استفاده میشود‬
‫• ثبات های آدرس‪ :‬حاوی آدرس دستورالعملها و داده ها در حافظه است‬
‫ثبات های شاخص ‪:‬‬
‫آدرس مؤثر = ‪Base Address+ Index Address‬‬
‫– ثبات های اشاره گر قطعه‬
‫– ثبات های اشاره گر پشته‬
‫اگر کاربر بتواند آدرسدهی پشته )‪ (stack‬را ببیند آنگاه یک ثبات اختصاصی وجود دارد که به باالی پشته اشاره میکند‪ .‬بنابراین‬
‫میتوان از دستورالعملهایی استفاده کرد که فیلد آدرس ندارند (مانند ‪ push‬و ‪) pop‬‬

‫ثبات های کنترل و وضعیت‪MAR – MBR – IO/AR – IO/BR – PC – IR :‬‬


‫‪ :MAR‬آدرس حافظه برای خواندن ویا نوشتن بعدی را مشخص میکند‪.‬‬
‫‪ : MBR‬رجیستری که حاوی داده است‪ .‬که یا باید محتوای آن در حافظه نوشته شود یا داده خوانده شده از حافظه را دریافت کند‬
‫‪ : IO/AR‬آدرس یک دستگاه ورودی‪/‬خروجی خاص برای خواندن ویا نوشتن بعدی را مشخص میکند‪.‬‬
‫‪ : IO/BR‬از این ثبات برای تبادل داده بین ماژولهای ورودی‪/‬خروجی و پردازنده به کار گرفته میشود‪.‬‬
‫‪ : PC‬حاوی آدرس دستورالعمل بعدی است که باید واکشی)‪ (fetch‬شود‪.‬‬
‫‪ : IR‬حاوی آخرین دستورالعملی است که واکشی شده است‬
‫کدهای شرایط)‪ : PSW (condition code‬بیت هایی هستنند که معموال در نتیجه اجرای یک دستورالعمل و توسط سختافزار‬
‫پردازنده تنظیم میشود ‪.‬‬

‫اجرای دستورالعمل‬
‫برنامه ای که باید توسط پردازنده اجرا شود شامل مجموعهای از دستورالعملهاست که در حافظه ذخیره شدهاند‪ .‬پردازش دستورالعمل‬
‫در ساده ترین شکل گرفتن دستورالعمل(‪ )fetch‬و اجرا(‪ )execute‬از چهار گام زیر تشکیل شده است‪.‬‬

‫قالب دستورالعمل و اعداد به شکل زیر میباشد‬

‫مثال دستور ‪ 1940‬به شکل زیر ذخیره میشود‪(1)10 = (0001)2 , (9)10 = (1001)2 , (4)10 = (0100)2 .‬‬
‫مثال‪ :‬فرایند اجرای یک برنامه بسیار ساده در زیر آورده شده است‬
‫میخواهیم مرحله به مرحله مجموع دو عدد را توسط پردازنده و ذخیره نتیجه در حافظه را تشریح کنیم‪.‬‬
‫برنامه‬ ‫ثباتهای داخلی ‪CPU‬‬ ‫لیست چند کد عملیاتی‬
‫‪1940‬‬ ‫آدرس دستورالعمل= شمارنده برنامه )‪(PC‬‬ ‫‪ 0001‬یعنی‪ AC :‬را از حافظه بارگذاری کن‬
‫‪5941‬‬ ‫دستورالعملی که اجرا میشود=ثبات دستورالعمل)‪(IR‬‬ ‫‪ 0010‬یعنی‪ :‬محتوای‪AC‬را در حافظه ذخیره کن‬
‫‪2941‬‬ ‫ثبات ذخیره موقت = انباشتگر )‪(AC‬‬ ‫‪ 0101‬یعنی‪ :‬از حافظه به ‪ AC‬اضافه کن‬
‫‪-1‬شمارنده برنامه )‪ (PC‬حاوی آدرس ‪( 300‬آدرس اولین دستورالعمل) است‪ .‬این دستورالعمل (مقدار ‪ 1940‬در مبنای شانزده) در‬
‫ثبات دستورالعمل )‪ (IR‬بارگذاری و مقدار ‪ PC‬یک واحد اضافه میشود‪ .‬توجه کنید که این فرایند‪ ،‬متضمن استفاده از یک ثبات‬
‫آدرس حافظه )‪ (MAR‬و یک ثبات میانگیر حافظه )‪ (MBR‬است‪ .‬این ثباتهای میانی برای سادگی نشان داده نشدهاند‪.‬‬
‫‪-2‬اولین ‪4‬بیت (اولین رقم مبنای شانزده) در ‪ IR‬بیانگر این است که ‪ AC‬باید از حافظه بارگذاری شود‪ 12 .‬بیت باقیمانده( سه رقم‬
‫در مبنای شانزده) مشخص کننده آدرس (‪ )940‬میباشد‪.‬‬
‫‪-3‬دستورالعمل بعدی (‪ )5941‬از محل ‪ 301‬واکشی)‪ (fetch‬میگردد و مقدار ‪ PC‬افزایش مییابد‪.‬‬
‫‪-4‬محتوای قبلی ‪ AC‬و محتوای محل ‪ 941‬با هم جمع میشوند و نتیجه در ‪ AC‬ذخیره میگردد‪.‬‬
‫‪-5‬دستورالعمل بعدی (‪ )2941‬از محل ‪ 302‬واکشی میشود و مقدار ‪ PC‬افزایش مییابد‪.‬‬
‫‪ -6‬محتوای ‪ AC‬در محل ‪ 941‬ذخیره میشود‪.‬‬
‫وقفه ‪: interrupt‬‬
‫تقریبا همه کامپیوترها دارای مکانیزمیهستند که ماژول های ورودی‪/‬خروجی ویا ماژول های حافظه با بکارگیری آن میتوانند در‬
‫ترتیب عادی اجرای دستورالعملها در پردازنده وقفه ایجاد کنند‪.‬‬
‫انواع وقفه ها‬
‫وقفه برنامه‪ :‬این وقفه با بوجود آمدن بعضی از شرایط حاصل از اجرای یک دستورالعمل مانند سرریزحسابی‪ ،‬تقسیم بر صفر‪،‬‬ ‫❖‬
‫تالش برای اجرای یک دستورالعمل غیر مجاز و ارجاع به فضای غیر قابل دسترسی کاربر در حافظه تولید میشود‪.‬‬
‫وقفه زمان سنج‪ :‬این وقفه توسط زمان سنج درون پردازنده ایجاد میشود این وقفه به سیستم عامل اجازه میدهد که اعمال‬ ‫❖‬
‫معینی را به طور مرتب انجام دهد‪.‬‬
‫وقفه ورودی‪/‬خروجی‪ :‬این وقفه توسط یک کنترلکننده ورودی‪/‬خروجی تولید میشود که نشاندهنده اتمام عادی یک‬ ‫❖‬
‫عملیات یا نوعی از شرایط خطا میباشد‪.‬‬
‫وقفه نقص سختافزاری‪ :‬این وقفه توسط یک نقص در سختافزار مانند نقص در سیستم تغذیه یا خطای توازن )‪(parity‬‬ ‫❖‬
‫حافظه تولید میشود‪.‬‬
‫وقفه ها و چرخه دستورالعمل ها‬

‫سلسله مراتب حافظه‬


‫محدودیت های طراحی حافظه کامپیوتر را میتوان در سه سؤال خالصه نمود‪.‬‬
‫‪ o‬چه مقدار حافظه ؟‬
‫‪ o‬با چه سرعتی ؟‬
‫‪ o‬به چه قیمتی ؟‬
‫باید بین این سه ویژگی موازنه ایجاد کرد‪ .‬در فناوریهای جدید تولید حافظه همواره روابط زیر برقرار است‪.‬‬
‫‪ o‬زمان دسترسی کمتر‪ ،‬قیمت بیشتر با ازای هر بیت‬
‫‪ o‬ظرفیت بیشتر‪ ،‬قیمت کمتر به ازای هر بیت‬
‫‪ o‬ظرفیت بیشتر‪ ،‬سرعت دسترسی کمتر‬
‫حافظه نهان‬
‫در همه چرخههای دستورالعمل‪ ،‬پردازنده حداقل یک بار برای واکشی عملوندها و یا ذخیره نتایج به حافظه دسترسی دارد‪ .‬نرخ‬
‫اجرای دستورالعملها توسط پردازنده به وضوح با چرخه زمانی ( زمانی که طول میکشد تا یک کلمه از حافظه خوانده یا در‬
‫آن نوشته شود ) محدود شده است‪ .‬دلیل این محدودیت عدم تطابق سرعت پردازنده و حافظه اصلی است‪.‬‬
‫نقش حافظه نهان کاهش زمان دسترسی به حافظه و نزدیک کردن آن به سریعترین حافظه موجود و در عین حال پشتیبانی از‬
‫حافظه های بزرگ با قیمتی کمتر از حافظههای نیمه هادی است‪.‬‬

‫برای بررسی حاالت فرایند نیاز بود که مقدماتی گفته شود تا بتوانیم حاالت فرایند به شکلی مفهومیبیان کنیم‬
‫حاالت فرایند‬
‫فرایند برنامه در حال اجراست‪ .‬ولی از دید سیستم عامل میتوان گفت فرایند در سیستم عامل یکسری ساختمان داده است‪.‬‬
‫هر فرایند در سیستم عامل توسط یک ساختمان داده به نام بلوک کنترل فرایند ‪ PCB‬یا ‪ process Control Block‬نشان داده‬
‫میشود‪ PCB .‬شامل اطالعات زیادی در مورد یک فرایند در سیستم عامل است‪ .‬این اطالعات مثالً هنگامیکه فرایند از «حالت اجرا»‬
‫به حالت «آماده » میرود الزم است ذخیره شود که اگر دوباره فرایند خواست به حالت اجرا برگردد از همان نقطهای که قطع شده‬
‫بود‪ ،‬به درستی ادامه یابد‪.‬‬

‫این اطالعات عبارتند از‬


‫حالت جاری فرایند در سیستم عامل‪ :‬که میتواند‪ ،‬آماده‪ ،‬اجرا‪ ،‬مسدود‪ ،‬معلق و یا بسته باشد‪.‬‬
‫شمارنده برنامه )‪:(program Conuter=PC‬که آدرس دستورالعمل بعدی قابل اجرای فرایند در سیستم عامل را نشان میدهد‪.‬‬
‫محل حفظ ثباتها‪ :‬هنگام وقوع یا سوئیچ کردن بین فرایندهای فرایند در سیستم عامل جاری میبایست در ‪ PCB‬مربوط ذخیره‬
‫شوند تا بعداً دوباره بازیابی شوند‪.‬‬
‫اطالعات زمانبند ‪ :CPU‬مانند اولویت فرایند در سیستم عامل‪ ،‬اشارهگرها به صفهای زمانبندی و غیره‬
‫اطالعات مدیرت حافظه ‪ :‬مثل محل قرارگیری فرایند در سیستم عامل در حافظه و مسائل حفاظتی آن‪.‬‬
‫اطالعات وضعیت ‪ :I/O‬شامل لیستی از وسایل ‪ I/O‬تخصیص یافته به فرایند در سیستم عامل‪ ،‬لیست فایلهای باز شده برای فرایند‬
‫در سیستم عامل و غیره‬
‫اطالعات حسابرسی‪ :‬مثل میزان زمان ‪ CPU‬مصرف شده برای فرایند در سیستم عامل‪ ،‬شماره حساب‪ ،‬شماره فرایند در سیستم‬
‫عامل و غیره‬
‫وقتیکه سیستم عامل ‪ CPU‬را به فرایند در سیستم عامل دیگر میدهد با استفاده از ‪ PCB‬تمام اطالعاتی که جهت راه اندازی مجدد‬
‫فرایند در سیستم عامل قبل الزم دارد را حفظ میکند‪ .‬به این عملیات تعویض متن ‪ Context Switch‬انجام میپذیرد‪.‬‬
‫تعویض متن بوسیله بخشی از سیستم عامل به نام ‪ Dispatcher‬انجام میپذیرد‪ .‬از آنجا که سیستم عامل خیلی با ‪ PCB‬سرو کار‬
‫دارد‪ ،‬در بسیاری از کامپیوترها ثباتی سختافزاری وجود دارد که همیشه ‪ PCB‬فرایند در سیستم عامل در حال اجرا اشاره میکند‬
‫‪.‬‬
‫دستوراتی نیز وجود دارند که خیلی سریع اطالعات را در ‪ PCB‬بار میکنند‪ .‬عملیات تعویض متن الزاماً سربار اضافی)‪ (overhead‬روی‬
‫کامپیوتر ایجاد کرده و زمان ‪ CPU‬را جهت این کار به هدر میدهد‪ ،‬البته این زمان آنقدر زیاد نیست که بر مزیت چند برنامگی غلبه‬
‫کند‪.‬‬
‫زمان تعویض متن تابع سختافزار میباشد و به طور نمونهای این زمان از ‪1‬تا‪100‬میکرو ثانیه متغیر است‪.‬‬
‫حاالت فرایند میتواند این پنج حالت باشد‪:‬‬

‫آماده)‪ : (READY‬فرایندی که وقتی به آن فرصت داده شد‪ ،‬برای اجرا آماده باشد‪.‬‬
‫اجرا)‪ : (Running‬فرآیندی که هم اکنون در حال اجرا میباشد‪.‬‬
‫مسدود)‪ : (Blocked‬فرایندی که تا بروز حادثه ای نمیتواند اجرا شود و منتظر میماند‪.‬‬
‫معلق )‪ : (Suspend‬در اکثر اوقات‪ ،‬پردازنده بیکار میماند که برای حل مشکل از مبادله استفاده میشود و بخشی از فرایند به دیسک‬
‫منتقل میشود‪ .‬در این حالت برای فرایند یکی از اتقاقات زیر ممکن است رخ داده باشد‬
‫فورا آماده اجرا نباشد‬ ‫•‬
‫منتظر یک حادثه باشد یا نباشد‬ ‫•‬
‫توسط عاملی در حالت معلق گذاشته شده تا از اجرای آن جلوگیری کند‪.‬‬ ‫•‬
‫منتظر فرمان از طرف سیستم عامل باشد‬ ‫•‬
‫جدید )‪ : (New‬فرایندی که هم اکنون گرفته شده است ‪ ،‬اما هنوز جزء فرایندهای قابل اجرای سیستم عامل پذیرفته نشده باشد‪.‬‬
‫خروج )‪ :(Terminated‬فرایندی که اجرای آن پایان یافته است و یا اجرای آن قطع شده و از مجموعه فرایندهای قابل اجرای سیستم‬
‫خارج شده است‪.‬‬

‫انواع حوادثی که منجر به تغییر حالت شده است‪:‬‬

‫تهی به آماده ‪:‬فرآیند جدیدی را برای اجرای یک برنامه ایجاد میکند‪.‬‬


‫جدید به آماده ‪:‬آمادگی برای گرفتن یک برنامه‬
‫آماده به اجرا ‪:‬زمان انتخاب یک فرآیند رسیده است‪.‬‬
‫اجرا به خروج ‪:‬فرآیند جاری اعالم میکند که تمام شده است‪.‬‬
‫اجرا به آماده ‪:‬اتمام زمان مجاز برای یک فرآیند (متداول ترین)‬
‫اجرا به مسدود ‪ :‬درخواست یک منبع با انتظار‬
‫مسدود به آماده‪ :‬حادثه مورد نظر اتفاق افتاده است‪.‬‬
‫آماده به خروج ‪ :‬با تصمیم پدر‬
‫مسدود به خروج ‪ :‬با تصمیم پدر‬
‫ساختار کنترلی سیستمعامل‬
‫اگر سیستم عامل بخواهد پردازه ها و منابع را مدیریت کند‪ ،‬باید اطالعاتی در باره وضعیت فعلی هر پردازه و منبع داشته باشد‪ .‬در‬
‫شکل زیر چهارجدول وجود دارد که توسط سیستم عامل برای مدیریت پردازه ها و منابع استفاده میشود‪.‬‬

‫چگونه یک فرایند اجرا انجام میگیرد؟‬


‫• حالت کاربر‪ :‬برنامه کاربران در این حالت اجرا میشوند‬
‫• حالت هسته‬
‫• در زمان تغییر حالت که معموال در واکنش به وقفهها‪ ،‬فراخوانی سیستم و ‪ . . .‬اتقاق میافتد‬
‫توجه‪ :‬تنها در حالت هسته ساختمان دادهها قابل اصالح هستند‪.‬‬
‫تفاوت اصلی ‪ -‬حالت کاربر در مقابل حالت هسته‬
‫رایانه ای در دو حالت کار میکند که حالت کاربر و حالت هسته است‪ .‬هنگامیکه کامپیوتر نرم افزار برنامه‬
‫را اجرا میکند ‪ ،‬در حالت کاربر است‪ .‬پس از درخواست نرم افزار کاربردی برای سختافزار ‪ ،‬رایانه وارد حالت‬
‫هسته میشود‪ .‬رایانه اغلب بین حالت کاربر و حالت هسته جابجا میشود‪ .‬مهمترین وظایف سیستم عامل‬
‫اجرای در حالت هسته است‪ .‬تفاوت کلیدی بین ‪ User Mode‬و ‪ Kernel Mode‬در این است که حالت کاربر‬
‫حالت است که در آن برنامه ها در حال اجرا هستند و حالت هسته حالت ممتازی است که کامپیوتر هنگام‬
‫دسترسی به منابع سختافزاری وارد آن میشود‬
‫حالت کاربر چیست؟‬
‫برخی از نمونه ها در حالت کاربر عبارت اند از برنامه پاورپوینت ‪ ،‬خواندن یک فایل ‪ PDF‬و مرور اینترنت‪.‬‬
‫وقتی فرآیند در حالت کاربر است و به منابع سختافزاری نیاز دارد‪ ،‬آن درخواست به هسته ارسال میشود‪.‬‬
‫از آنجا که در این حالت دسترسی محدود به سختافزار وجود دارد‪ ،‬به عنوان حالت ممتاز‪ ،‬حالت برده یا‬
‫حالت محدود شناخته میشود‪.‬‬

‫مراحل ایجاد فرایند جدید‪:‬‬


‫تخصیص یک شناسه یکتا به فرایند جدید‬ ‫‪.1‬‬
‫تخصیص فضا به فرایند‬ ‫‪.2‬‬
‫مقدار گذاری بلوک کنترل فرایند ‪PCB‬‬ ‫‪.3‬‬
‫‪ .a‬شناسه فرایند‪ ،‬شناسه پدر‬
‫‪ .b‬به غیر از شمارنده برنامه و اشارهگر پشته بقیه با صفر مقداردهی میشوند‪.‬‬
‫‪ .c‬اطالعات کنترل فرایند بر اساس مقدار پیشفرض مقداردهی میشود‪.‬‬
‫الزام به برقراری پیوندها‬ ‫‪.4‬‬
‫ایجاد و گسترش ساختمان دادههای دیگر‬ ‫‪.5‬‬
‫‪ .a‬حافظه‪ ،‬پروندهها‬
‫عواملی که سبب تعویض حالت فرایند میشوند‬
‫ما معموال در یک سیستم بین فرایندهای گوناگون سوئیچ میکنیم‪ .‬عواملی که موجب تعویض فرایند میشوند عبارتند از‪:‬‬
‫• وقفه خارجی‪:‬‬
‫‪ o‬وقفه ساعت‬
‫‪ o‬وقفه ورودی‪/‬خروجی‬
‫• وقفه داخلی‬
‫‪ o‬خطای صفحه‬
‫‪ o‬دستورالعمل غیر مجاز‬
‫• فراخوانی سرپرست (ناظر) ناظر همواره یک قسمت ماندگار در حافظه اصلی دارد و بقیه ناظر که برنامههای سودمند‪ ،‬توابع‬
‫عمومیو مشترک هستند‬
‫در صورت بروز هر یک از عوامل قبلی عملیات زیر انجام میشود‬
‫• وضعیت فعلی فرایند(ثباتها و پرچمها) ذخیره میشود‬
‫• اشارهگر برنامه به آدرس اولین دستورالعمل روال مناسب مقدار دهی میشود‪.‬‬
‫• به حالت هسته تغییر حالت میدهد و در این حالت میشود از دستورات ممتاز استفاده کرد‪.‬‬
‫مراحل تعویض حالت فرایند‬
‫متن برنامه (ثباتها‪ ). . . ،‬ذخیره میشوند‬ ‫•‬
‫حالت فرایند فعلی به روز میشود‪ (.‬اجرا به مسدود‪ /‬اجرا به معلق ‪ /‬اجرا به آماده ‪ /‬اجرا به خروج)‬ ‫•‬
‫کنترل به صف مناسب( صف مسدود‪ ،‬معلق و آماده) واگذار میشود‬ ‫•‬
‫انتخاب فرایند دیگری برای اجرا‬ ‫•‬
‫به روز کردن بلوک کنترل فرایند انتخاب شده‬ ‫•‬
‫به روز کردن ساختمان دادههای مدیریت حافظه‬ ‫•‬
‫بارگذاری مجدد متن برنامه‬ ‫•‬

‫موفق باشید‪-‬محمدرضا خرام‬


‫درس سیستم عامل – دانشکده شهید باهنر شیراز – مدرس‪ :‬محمدرضا خرام‬

‫انواع سیستم عامل‬


‫•‬ ‫‪Simple Batch system‬‬
‫•‬ ‫‪Multi-programming System‬‬
‫•‬ ‫‪Real time Operating System‬‬
‫•‬ ‫‪Multi-processing System‬‬

‫پردازش دستهای ‪Simple Batch Processing‬‬

‫پردازش دسته ای‪ ،‬یک استفاده غیر محاوره ای از کامپیوتر است‪.‬‬


‫کاربر‪ ،‬دستهای از اطالعات را به کامپیوتر میدهد و منتظر می ماند تا همه آنها پردازش شود این دسته اطالعات را یک ‪ Job‬میگویند‬
‫که مثال" می تواند برنامه ای با اطالعات ورودی آن باشد پردازش دسته ای در نقطه مقابل پردازش محاوره ای قرار دارد که در آن‬
‫کاربر از طریق ترمینال هنگام اجرای برنامه با کامپیوتر ارتباط برقرار می کند تفاوت اصلی در این است که در پردازش دسته ای‬
‫کاربر قبل از دیدن نتایج کل اطالعات را وارد کامپیوتر می کند اما در پردازش محاوره ای کاربر بر اساس نتایج مقطعی به دست‬
‫آمده اطالعات دیگری به کامپیوتر وارد می نماید‪.‬‬
‫برای تسریع پردازش‪ ،‬وظایف دارای نیازهای مشابه با همدیگر دستهبندی میشوند و به صورت گروهی اجرا میشوند‪ .‬برنامهنویسها‪،‬‬
‫برنامههایشان را در اختیار اپراتور قرار میدهند و سپس اپراتور برنامههایی که الزامات یکسان دارند در دستههایی گروهبندی میکند‪.‬‬

‫مشکالت سیستمهای عامل ‪ Batch‬به صورت زیر است‪:‬‬


‫فقدان تعامل با کاربر و ‪job‬‬ ‫•‬
‫پردازنده در اغلب موارد بیکار است‪ ،‬چون سرعت دستگاههای ورودی‪/‬خروجی مکانیکی پایینتر از پردازنده است‪.‬‬ ‫•‬
‫دستیابی به اولویتبندی مطلوب کاری دشوار است‪.‬‬ ‫•‬
‫سیستم های چند برنامه ای‪Multi programming‬‬

‫در نسل سوم کامپیوترها (‪ )1965-80‬از مدارات مجتمع )‪ (Integrated Circuit=IC‬برای ساخت کامپیوترها استفاده شد‪ .‬به طور‬
‫کلی برنامهها را میتوان به دو دسته تقسیم کرد ‪ :‬یکی برنامه ها با تنگنای محاسباتی‪ CPU bound‬یا ‪ CPU Limiter‬مانند محاسبات‬
‫علمی سنگین که بیشتر زمان کامپیوتر صرف محاسبات ‪ Cpu‬میشود ودیگری برنامه های تنگنای‪ )I/O Limited) I/O‬مانند‬
‫برنامههای تجاری که بیشتر زمان کامپیوتر صرف ورود دادهها و خروج اطالعات میشود ‪.‬‬

‫یک اشکال مهم سیستم های دستهای این است که وقتی کار جاری برای تکمیل یک عملیات ‪ I/O‬مثالً بر روی نوار گردان منتظر‬
‫میشود‪ .‬در این حال ‪ CPU‬بیکار میماند و مجبور است صبر کند تا عملیات‪ I/O‬به اتمام برسد‪ .‬در برنامه های ‪ CPU Limited‬این‬
‫اتالف وقت اندک است ولی در برنامه های ‪ I/O Limited‬ممکن است حدود ‪80‬تا‪ 90‬درصد وقت ‪ CPU‬به هدر برود‪.‬‬
‫برای رفع این مشکل از تکنیک ‪ multiprogramming‬استفاده میشود‪ .‬بدین ترتیب که حافظه به چند قسمت تقسیم شده و در هر‬
‫قسمت یک برنامه مجزا قرار داده میشود‪ .‬وقتی که یک ‪ job‬برای تکمیل عملیات ‪ I/O‬منتظر میماند‪ ,‬پردازنده به ‪ job‬دیگری داده‬
‫میشود‪ .‬اگر تعداد کارهای )‪ (Jobs‬موجود در حافظه کافی باشد میتوان ‪ CPU‬را تقریباً صد در صد مشغول نگه داشت‪.‬‬
‫البته نگهداری همزمان چند برنامه در حافظه نیاز به مدیریت خاص حافظه دارد تا برنامهها بر همدیگر اثر سوء نداشته باشند ‪ .‬لذا‬
‫مدیریت حافظه بحث مهمی در سیستم عامل میباشد‪.‬‬
‫کامپیوتر با استفاده از اشتراک منابع در میان انواع وظایف به فعالیت خود ادامه میدهد‪ .‬اما هنوز هم در این سیستمهای عامل‪،‬‬
‫بایستی کاربران ساعتها در انتظار باقی میماندند‪.‬‬
‫سیستمعامل بیدرنگ ‪Real time Operating System‬‬
‫سیستمعامل بیدرنگ دارای ویژگی چند نخی است و برای کاربردهای بالدرنگ پیجیده ای که نیاز به پاسخگوییهای سریع و قطعی‬
‫دارند‪ ،‬طراحی شدهاست‪ .‬نوعی سیستمعامل است که در آن‪ ،‬زمان‪ ،‬پارامتر کلیدی است‪ .‬برای مثال در سیستمهای کنترل فرایند‪،‬‬
‫رایانههای بیدرنگ باید دادههای فرایند تولید را جمعآوری کرده و به کمک آن ماشینهای داخل کارخانه را کنترل کنند‪ .‬خیلی‬
‫اوقات باید فرجه زمانی (‪ )deadline‬بهطور دقیق برآورده شود؛ یعنی باید کارها در لحظات خاصی از زمان انجام گیرد‪ .‬برای مثال اگر‬
‫یک خودرو در خط مونتاژ در حال حرکت باشد و ربات جوشکاری خیلی زود یا خیلی دیر جوش دهد‪ ،‬خودرو خراب خواهد شد‪.‬‬
‫زمانی از یک سیستم بیدرنگ استفاده میشود که الزم باشد عملیات پردازنده یا جریان داده در زمان کامالً مشخصی انجام شود؛‬
‫بنابراین یک سیستم بیدرنگ اغلب بهعنوان ابزار کنترلی در یک کاربرد خاص استفاده میشود‪ .‬سیستمهایی که آزمایشهای علمی‬
‫را کنترل میکنند‪ ،‬سیستمهای تصویربرداری پزشکی‪ ،‬سیستمهای کنترل صنعتی‪ ،‬و نیز برخی از موتورهای انژکتوری در خودرو‪،‬‬
‫کنترلرهای لوازم خانگی و سیستمهای جنگافزاری‪ ،‬سیستمهای بیدرنگ هستند‪ .‬این سیستمها برای آنکه بهدرستی کار کنند باید‬
‫پاسخ درست را در فرجه زمانی از پیش تعیین شده بازگردانند در صورتی که در سیستمهای اشتراک زمانی مطلوب است (ولی‬
‫اجباری نیست) که سریع پاسخ دهند‪.‬‬
‫دو نوع از سیستمهای عامل همزمان وجود دارند‪ :‬سیستمهای عامل سخت و نرم‪.‬‬
‫سیستمهای عامل همزمان سخت‪ :‬سیستمهای همزمان سخت تضمین میکنند که وظایف حیاتی در طی زمان معینی پایان‬
‫مییابند‪ .‬در سیستمهای همزمان سخت‪ ،‬درایوهای ذخیرهسازی ثانویه محدود هستند یا کالً وجود ندارند و دادهها در ‪ ROM‬ذخیره‬
‫میشوند‪ .‬در چنین سیستمهایی‪ ،‬حافظه مجازی تقریباً هرگز مشاهده نمیشود‪.‬‬
‫سیستمهای عامل همزمان نرم‪ :‬سیستمهای همزمان نرم محدودیتهای کمتری دارند‪ .‬در این سیستمها یک وظیفه همزمان حیاتی‬
‫نسبت به وظایف دیگر اولویت مییابد و این اولویت را تا زمانی که به پایان نرسیده است حفظ میکند‪ .‬سیستمهای همزمان نرم‬
‫کاربر کمتری نسبت به سیستمهای همزمان سخت دارند‪ .‬برای نمونه پروژههای چندرسانهای‪ ،‬واقعیت مجازی و پروژههای علمی‬
‫پیشرفته مانند کاوش زیردریا و روباتهای کاوشگر فضایی مواردی از کاربردهای این سیستمها هستند‪.‬‬
‫سیستم های چند پردازندهای‪Multi processing‬‬
‫کامپیوترها میتوانند به جای یک ‪CPU‬چندین ‪ CPU‬داشته باشند که در اینصورت به آنها سیستم ‪ multiprocessing‬میگویند‪.‬‬
‫جهت استفاده از این سیستمها نیاز به یک سیستم عامل خاص میباشد که بتواند چندین برنامه یا نخهای یک فرآیند را به صورت‬
‫موازی واقعی روی آنها اجراء کند‪.‬‬
‫سیستم عامل ‪ multitasking‬برای اجراء چند نخ بر روی یک ‪ CPU‬و سیستم عامل ‪ multiprocessing‬برای اجرای چند نخ بر روی‬
‫چند ‪ CPU‬به کار میروند‪.‬‬
‫در سیستم چند پردازندهای‪CPU ،‬ها باید بتوانند از حافظه‪ ،‬امکانات ورودی و خروجی و گذرگاه ‪ Bus‬سیستم به صورت اشتراکی‬
‫استفاده کنند‪ .‬مزایای این سیستمها عبارتند از‪:‬‬
‫‪-1‬زیاد شدن توان عملیاتی‪ (throughput) .‬منظور از ‪ throughput‬تعداد کارهایی است که در یک واحد زمانی تمام میشوند‪.‬‬
‫‪-2‬تحمل پذیری در برابر خطا)‪(fault-tolerant‬سیستم های مالتی پروسسور قابلیت اعتماد را افزایش میدهند چرا که خرابی یک‬
‫‪ CPU‬سبب توقف سیستم نمیشود بلکه تنها سبب کند شدن آن خواهد شد‪.‬‬
‫سیستمهای عاملهای چند پردازندهای به دو دسته کلی متقارن و نامتقارن تقسیم میشوند‪.‬‬
‫در سیستم چند پردازندهای نامتقارن )‪(Asymmetric Multi Processing = ASMP‬یک پردازنده جهت اجراء سیستم عامل و‬
‫پردازندههای دیگر جهت اجرای برنامههای کاربران استفاده میشود‪ .‬از آنجا که کد سیستم عامل تنها روی یک پروسسور اجراء‬
‫میشود‪ ,‬ساخت این نوع سیستم عامل نسبتا ساده است و از تعمیم سیستم عامل تک پردازندهای به دست میآید‪.‬‬
‫در سیستم چند پردازندهای متقارن )‪(symmetric Multi Processing = ASMP‬سیستم عامل میتواند روی هر یک از پروسسورهای‬
‫آزاد یا روی تمام پردازندهها همزمان اجراء شود‪ .‬در این حالت حافظه بین تمام آنها مشترک میباشد‪ .‬تمام پردازندهها اعمال یکسانی‬
‫را میتوانند انجام دهند‪.‬‬

You might also like