OS - Intro
مقدمات
مولفه های سیستمعامل | OS Components :
- Process Management
- Main Memory Management
- Secondary-Storage Management
- File Management
- I/O Device Management
آشنایی با اجزای سختافزاری کامپیوتر
- پردازنده
- حافظه اصلی
- مولفههای ورودی/خروجی
- اتصافات داخلی سیستم
پردازنده
- واحد محاسبه و منطق (ALU)
- واحد کنترل
- رجیسترها (ثبات ها)
پردازنده سه گام fetch, decode و execute را به طور مداوم انجام میدهد. یعنی cpu دستوری که PC به اون اشاره میکنه رو از مموری fetch میکنه و توی رجیستری ذخیره میکنه. اون رو decode و تفسیر میکنه و در نهایت cpu اطلاعات دیکد شده رو به عنوان سیگنال های کنترلی اجرا میکنه.
اصطلاحی داریم به نام PSW (Program Status Word) که مجموعهای از ثباتها هستن که وضعیت برنامه رو نگه میدارن. مثل اینکه سرریزی اتفاق افتاده یا نه یا تو چه مودی هستیم، وقفه فعال هست یا نه و…
حالت های اجرا پردازنده
- Supervisor mode
محدودیت هایی در مورد دستوراتی که میتونن اجرا شن یا بخشایی از حافظه که قابل دسترسین محدود میشن
- Kernel mode
کنترل کامل پردازنده، دستورالعمل ها، ثباتها و حافظه در اختیار سیستمعامله
برای مثال وقتی کامپیوتر داره روشن میشه رو مود کرنله. میشه زمان سیستم رو تنظیم کرد یا اولویت فرآیند هارو عوض کرد یا وقفه هارو فعال/غیرفعال کرد
وقفه | Interrupt
وقفه سیگنالیه که روند اجرای عادی رو تغییر میده. وقتی یه وقفه به cpu ارسال میشه کار CPU متوقف میشه و interrupt routine اجرا میشه. بعد از پایان این روتین هم CPU به کار قبلیش برمیگرده
این وقفه ها باعث میشن وقتی مثلا I/O درجریانه CPU مشغول اجرای دیگر instruction ها بشه
آدرس دستوری که هنگام اجرای اون interrupt صادر شد تو پشته ذخیره میشه و بعد از پایان پاسخگویی به وقفه آدرس برگست در program counter قرار میگیره و محاسباتی که اجراشون به تعویق افتاده از سرگرفته میشن
- سختافزار با ارسال سیگنالی به CPU وقفه صادر میکنه
- نرمافزار با system call وقفه صادر میکنه
انواع وقفهها
- وقفه برنامه | Program check
- سرریز شدن محاسباتی
- تقسیم بر صفر
- تلاش برای اجرای یک دستورالعمل غیرمجاز
- مراجعه به آدرس خارج از فضای کاربر
- وقفه زمانسنج توسط زمانسنج داخلی پردازنده تولید میشه و به سیستمعامل اجازه میده یه سری کارهارو به طور مرتب انجام بده. مثل تست حافظه، چک کردن سختافزار)
- وقفه ورودی/خروجی از کنترلرهای I/O تولید میشه. مثل پرینتر میگه پرینت تموم شد یا کاغذ تموم شد
- وقفه نقص سختافزار وقفههایی که بخاطر نقص سختافزار صادر میشن. مثل نقص برق یا خطای توازن حافظه
تعویض متن | Context Switch
به فرآیند ذخیره و بازیابی وضعیت یه process گفته میشه. به طوری که اجرای اون پردازش بتونه بعدا از همون نقطه ادامه پیدا کنه.
یعنی قبل اجرای یه وقفه وضعیت پردازش جاری در جایی حفظ میشه که بعدا بتونه اونو بازیابی کنه. اینکار به چند تا process اجازه میده که بصورت اشتراکی از یه CPU استفاده کنن. یکی از ارکان چندبرنامگی هم همین قابلیته.
فراخوانی سیستم | System Call
واسطی بین فرآیند و سیستمعامل فراهم میکنه.
ینی کاربر ما داره دستور printf رو کال میکنه تو مود یوزر. این باعث یک system call میشه که توی کرنل مود دستور write فراخوانی میشه و نتیجه بازگردانده میشه.
روشهای انتقال ورودی/خروجی
- Programed I/O
- Interrupt I/O
- DMA I/O
بنظرم اینا یکم پیچیده بودن که دونستنشون خیلیم واجب نبود :دی
حفاظت
- حفاظت از I/O یعنی تمامی دستورات را به عنوان دستورات ممتاز در نظر گرفت. تا کاربران فقط از طریق سیستمعامل بتونن اونارو اجرا کنن
- حفاظت از CPU یعنی باید کاری کرد که برنامه تو حلقه گیر نکنه و کنترل به سیستم برگردونده شه. (با استفاده از یک تایمر)
- حفاظت از حافظه را حداقل برای بردار وقفه و روال وقفه باید فراهم کرد. یعنی سیستمعامل برنامه هارا از دسترسی به دیگر برنامه ها محافظت کند.( با استفاده از ثباتهای پایه و حد)