در این جلسه قصد داریم تا شما را با انواع فرآیندها ،مفاهیم وکاربردهای آنها آشنا کنیم.
همچنین به بررسی مختصری در مورد حالات فرآیند و ناحیه U (کاربر) در UNIX خواهیم پرداخت.
کنترل فرآیند
حالت اجرا :
– به سیستم عامل مربوط میشود.
– بعضی از دستورات ،تنها در حالت ممتازتر قابل اجرا هستند.
– به حالت کم امتیازتر ،حالت کاربر میگویند.
به حالت متمایز ،حالت سیستم ،حالت کنترل یا حالت هسته گویند ؛که نرمافزار کنترل پردازنده ،دستورالعملها ،ثباتها ،حافظه را دارد.
در ثبات PSW یک بیت برای حالت اجرا وجود دارد ؛که بیت حالت به بیت هسته واگذار میشود و دستورالعمل حالت را تغییر میدهد.
ایجاد فرآیند :
– تخصیص شناسه یکتا به فرآیند
– تخصیص فضا برای تمام اجزای تصویر فرآیند
– بلوک کنترل فرآیند مقدار گذاری میشود.
– برقراری پیوندهای لازم
– ایجاد وگسترش ساختمان دادههای دیگر
تعویض فرآیند :
ابتدا باید وقفههای سیستم را در نظر بگیریم که به نوع دیگر ،تله میباشد.
وقفه نوع اول : مستقل از فرآیند در حال اجرا حاصل میشود.
وقفه نوع دوم : به خطا یا شرایط استثنایی مربوط است.
با هر وقفه معمولی ؛ابتدا کنترل به یک گرداننده وقفه و به یک روال که مخصوص سیستم عامل آن وقفه است ،منتقل میشود.
وقفه ساعت : فرآیند جاری تعویض و فرآیند دیگر بارگذاری میشود.
وقفه ورودی / خروجی : دادن ورودی / خروجی به یک فرایند
نقص حافظه : اشتباه بودن آدرس
تغییر حالت فرآنید :
– ذخیرهسازی متن پردازنده
– بههنگامسازی بلوکهای کنترل فرآیندی در حالت اجرا
– انتقال بلوک فرآیند مربوط به این فرآیند به صف مناسب
– انتخاب فرآیند دیگر برای اجرا
– بههنگامسازی بلوکهای کنترل فرآیند انتخاب شده
– بههنگامسازی ساختمان دادههای مدیریت حافظه
– بارگذاری مجدد متن پردازنده
مدیریت فرآیند در UNIX SVR4 :
– بخش اعظم سیستم عامل ،در داخل محیط ،یک فرآیند کاربردی اجرا میشود.
– از دو گروه فرآیند سیستمی و کاربردی استفاده میکند.
– فرآیندهای سیستمی در کد هسته اجرا میشوند.
– فرآیندهای کاربر ،در حالت کاربر برای اجرای برنامههای کاربر
حالات فرآیند در UNIX :
– اجرای کاربر
– اجرای هسته
– آماده در حافظه (بعد از زمانبندی حافظه)
– خفته و در حافظه (تا بروز حادثه قابل اجرا نیست.)
– آماده اجرا و مبادله شده (به حافظه اصلی منتقل میشود.)
– قبضه شده (از هسته به کاربر میرود.)
– ایجاد شده (برای اجرا آماده نیست.)
– جادویی (فرآیندی دیگر وجود ندارد.)
تصویر فرآیند در UNIX :
هر فرآیند ،مجموعهای از ساختمان دادههایی است که تمام اطّلاعات لازم برای مدیریت و توزیع وقت پردازنده و فرآیند را در اختیار سیستم عامل قرار میدهد.
جدولی که در زیر قرار دارد ،عناصر تصویر فرآیند را که در سه بخش “متن سطح کاربر ،متن ثابت و متن سطح سیستم” سازماندهی شده ،خلاصه کرده است.
متن سطح کاربر : حاوی عناصر پایهای کاربر است.
متن ثابت : هنگامی که فرآیندی در حال اجرا نیست در آن ذخیره میشود.
متن سطح سیستم : حاوی اطّلاعاتی برای مدیریت سیستم است و شامل یک بخش پویا و یک بخش ایستا است.
مدخل جدول فرآیند در UNIX :
– اطّلاعات کنترل فرآیند که همواره در دسترس هسته است را در بردارد.
– در حافظهی اصلی قرار دارد.
– ناحیهی کاربر (ناحیه U) حاوی اطّلاعات اضافی کنترل است.
– این اطّلاعات موقع صفحهبندی در حافظهی اصلی قرار میگیرد.
– هسته UNIX همیشه در متن فرآیندی اجرا میگردد.
جدول زیر نمایشگر این اطّلاعات خواهد بود.
کنترل فرآیند :
– ایجاد فرآیند توسط ()FORK که یک فراخوان هسته سیستم است انجام میشود و اعمال زیر انجام میشود :
1- برای فرآیند جدید ،عنصری در جدول قرار میدهد.
2- یک شناسه یکتا به فرزند میدهد.
3- یک کپی از پدر ایجاد میکند.
4- شماره پروندههای پدر را افزایش میدهد.
5- فرآیند فرزند را در حالت اجرا قرار میدهد.
6- شماره شناسه فرزند را پدر و مقدار صفر میدهد.
تمام این اعمال در حات هسته فرآیند پدر انجام میشود.
همچنین در هنگام توزیع فرآیند ،یکی از اعمال زیر انجام میشود :
1- ماندن در فرآیند پدر
2- انتقال کنترل به فرآیند فرزند
3- انتقال کنترل به فرآیند دیگر
این آموزش بیش از ۳ سال قبل ارسال شده و اکنون در لیست بهروزرسانیهای سایت قرار دارد. اگر پیشنهاد یا انتقادی برای بهبود آموزش دارید، خوشحال میشیم به ما اطلاع بدهید.