سیستم هاي عامل جلسه سوم
فصل سوم
شرح و کنترل فرآیند
- تمام نیازمندی های اصلی که سیستم عامل باید پاسخگو باشد به وسیله فرایند قابل یبان است.
سیستم عامل باید در بین اجرای فرآیند قرار گیرد.
سیستم عامل باید با بهره گیری از یک سیاست خاص منابع در اختیار سیستم قرارداده واز وقوع بن بست جلوگیری کند.
سیستم عامل بلید از ارتباط بین فرایند هاو ایجاد فذایندها توسط کاربر حمایت کند.
حالات فرآیند:
- اساسی ترین عمل پردازنده اجرای دستورالعمل های موجود در حافظه است.
- اجرا شامل دنباله ای از دستورالعمل های همان برنامه است.
به اجرای یک فرایند خاص فرایند یا وظیفه گویند.
- رفتار یک فرآیند به خصوص را می توان با فهرست کردن دنباله دستورالعمل ها یی که برای آن فرآیند اجرا می شود مشخص نمود که به آن رد آن فرآیند گویند.
- مسئولیت اصلی سیستم عامل کنترل یک فرآیند است.
- یک فرآیند ممکن است در یکی از دو حالت اجرا وغیر اجرا باشد.
- وقتی یک سیستم عامل فرآیندی را دریافت می کند آن را در حالت غیر اجرا قرار می دهد.
- پس از رسیدن نوبت فرآیند فعلی را به حالت غیر اجرا برده و فرآیند را به حالت اجرا برده.
- در مورد هر فرآیندی باید اطلاعاتی را ذخیره کرد.
- فرآیندی که در حال اجرا نیست باید در صفی به انتظار نوبت قرار گیرد.
- گاهی صفی است که حاوی جداولی است که وضعیت فرآیند ها را نمایش می دهد.
- وقتی یک فرآیند در معرض وقفه قرار می گیرد به صف انتظار می رود.
- اگر یک فرآیند کارش تمام شود کنار گذاشته می شود.
نمو دار تغییر حالت:
نمودار صف بندی:
ایجاد و پایان فرآیند:
عمر یک فرآیند محدود به زمان ایجاد تا زمان خاتمه دادن به آن است.
در هنگام ایجاد سیستم عامل ساختمان داده مربوط به آن فرآیند را ساخته و فضای آدرس مربوط به آن را تخصیص می دهد.
معمولا چهار حادثه موجب به ایجاد فرآیند می گردد:
1-در محیط دسته ای: یک فرآیند جدید در پاسخ به یک کار
2-برقراری ارتباط محاورهای: کار از طریق پایانه با سیستم ارتباط برقرار کند
3-ارائه یک خدمت به وسیله سیستم عامل: فرآیندی را برای خدمت ایجاد کند
4-زایش توسط فرآیند موجود: برای بهره گیری از توازی یا تفکیک.
پایان فرآیند:
هر کار دسته ای باید حاوی دستورالعمل توقف یا فراخوانی صریح یک خدمت سیستمی برای پایان باشد.
در بعضی از سیستم عامل ها ممکن است فرآیندی به وسیله فرآیند ایجاد کننده اش و با پایان فرآیند پدرش نیز پایان یابد.
زایش فرزند:
فرآیندی با درخواست فرآیند دیگر به وجود می آید
فرزند:
فرایند زاینده را پدر و فرایند ایجاد شده را فرزند گویند
انواع خطا:
خطای محاسباتی: محاسبات غیر مجاز
گذشت زمان: بیش از حد برای بروز حادثه منتظر مانده
خطای ورودی و خروجی
و...
پنج حالت ممکن برای فرآیند:
اجرا : فرآیندی هم اکنون در حالت اجرا است.
آماده : با گرفتن فرصت به اجرا درمی آیند.
مسدود: با تمام شدن وقت و یا بروز حادثه اتفاق می افتد.
جدید: فرآیندی که هم اکنون ایجاد شده.
خروج: به علت دستور توقف یا به دلیلی قطع شده.
مدل پنج حالته برای فرایند:
انواع حوادثی که منجر به تغییر حالت شده:
تهی آماده: فرایند جدیدی را برای اجرای یک برنامه ایجاد می کند.
جدید آماده: آمادگی برای گرفتن یک برنامه.
<آماده اجرا: زمان انتخاب یک فرآیند رسیده.
اجرا خروج: فرآیند جاری اعلام می کند که تمام شده. اجرا آماده: اتمام زمان مجاز برای یک فرآیند .
(متداولترین)
اجرا مسدود:درخواست یکمنبع با انتظار.
مسدود آماده:حادثه مورد نظر اتفاق افتاده.
آماده خروج:با تصمیم پدر.
مسدود خروج:توضیح تغییر حاتت قبل در اینجا نیز صادق است.
در اکثر اوقات پردازنده بی کار می ماند برای این کار راه حل های زیر پیشنهاد می شود:
1- حافظه اصلی را گسترش داد: كه دو عیب دارد:
1-با افرایش هزینه همراه است.
2-درخواست برای حافظه زیاد شده.
2- مبادله: انتقال بخشی از یک فرآیند به دیسک.
هنگامی که هیچ یک از فرآیند ها در صف آماده نيستند منع لازم را دریافت نکرده به حالت معلق می روند. و فرآیند ديكري ازحالت معلق به حات آماده برده و اجرا می شود.
عیب:
مبادله یک ورودی وخروجی است.
امتیاز:
ورودی و خروجی عموما سریعتر از سیستمی است و باعث افزایش کارایی می شود.
فرآیند معلق:
فورا آماده اجرا نیست.
یک فرآیند ممکن است منتظر یک حادثه باشد یا نباشد.
توسط عاملی در حالت معلق گذاشته شده تا از اجرای آن جلوگیری کند.
منتظر فرمان باشد.
دلایل تعلیق فرآیند:
مبادله: سیستم عامل نیاز به حافظه کافی دارد.
دلایل دیگر سیستم عامل: فرآیندی را که سودمند یا لازم و... است را معلق کند.
درخواست کاربر محاورهای: کاربر به منظور استفاده از منبع برنامه را معلق کند.
ترتیب زمانی: فرآیند به طور دوره ای اجرا شود.
درخواست فرآیند پدر: فرآیند فرزند زا به تعلیق بیندازد.
ساختارهای کنترلی سیستم عامل:
برای کنترل فرآیندها باید اطلاعات مربوط به فرآیند در جدولی ذخیره شود.تمام سیستم عامل ها اطلاعات در جهار گروه ذخیره می کنند.
از جداول حافظه برای دنبال کردن اطلاعات حافظه اصلی و ثانویه استفاده می کنند ، قسمتی برای سیستم عامل و یقیه برای فرآیند
جداول حافظه بايد حاوی اطلاعات زیر باشد:
1-تخصیص حافظه اصلی به فرآیند.
2- تخصیص حافظه ثانویه به فرآیند.
3-ویژگی های حفاظتی فرآیند.
4-اطلاعات مورد نیاز برای مدیریت حافظه مجازی.
انواع جداول:
جداول ورودی / خروجی: برای نگهداری و مدیریت دستگاه های ورودی وخروجی و... استفاده می شود.
جداول پرونده: اطلاعات مربوط به پرونده های موجود،محل آنها در حافظه ثانویه ،وضعیت جاری و...نگهداری کنند.
جداول فرآیند: مدیریت فرآیندها استفاده می شود.
ساختار کنترلی فرآیند:
هر فرآیند دارای یک صفات است که معمولا همراه آن به سیستم عامل می آید که به مجموعه این صفات بلوک کنترل فرآیند می گویند.
به مجموعه داده برنامه،داده ها ،پشته وصفت ،تصویر فرآیند می گویندو محل آن به مدیر حافظه بستگی داردو در حافظه ثانویه نگهداری می شود و برای اجرا باید به حافظه اصلی به رود.
اجزای متداول تصویر یک فرآیند:
داده های کاربر: بخش قابل تغییر فضای کاربر.
برنامه کاربر: برنامه ای که قرار است اجرا شود.
پشته سیستم: برای ذخیره پارامترها و آدرس و...
بلوک کنترل فرآیند: اطلاعات لازم برای کنترل فرآیند.
اطلاعات مربوط به یک بلوک فرآیند حاوی:
1- شناسایی فرآیند
2-اطلاعات وضعیت پردازنده
3-اطلاعات کنترل فرآیند
1-شناسایی فرآیند: یک شناسه عددی یکتا نسبت می دهند.
مزایای شناسه:
مراجعات به جداول تحت کنترل است.
از طریق شناسه می توان پی به بر قراری ارتباط بین فرآیندها برد.
به فرآیندی یک شناسه کاربر نسبت داد.
2-اطلاعات وضعیت پردازنده:
محتوی ثباتهای پردازنده می باشد.
برای اطلاعات وضعیت می باشد.(PSW)
حاوی کد شرایط و دیگر اطلاعات است.
3-اطلاعات کنترل فرآیند:
بلوک کنترل فرآیند گفته می شود.
موجب ایجاد هماهنگی بین فرآیندهای فعال می شود.
نقش بلوک کنترل فرآیند:
بلوک کنترل فرآیند نقش مهم در ساختمان سیستم عامل دارد.
وضعیت سیستم را تعریف می کند.
از شناسه یکتای فرآیند به عنوان شاخص استفاده می کنند.
مشكلات بلوك كنترل فرايند دارای برای حفاظت
1- وجود اشکال در یک بلاک منجر به لطمه زدن به تمام بلاک ها می شود.
2- تغییر در یک بلوک منجر به تغییر در بسیاری از مولفه ها می شود.
کنترل فرآیند:
حالت اجرا:
- به سیستم عامل مربوط می شود.
- بعضی از دستورات تنها در حالت ممتازتر قابل اجرا هستند.
- به حالت کم امتیازتر حالت کاربر می گویند.
به حالت متمایز،حالت سیستم ،حالت کنترل یا حالت هسته گویند که نرم افزار کنترل بردازنده ؛ دستورالعملها؛ ثباتها ؛ حافظه را دارد.
در ثبات PSW یک بیت برای حالت اجرا وجود دارد که بیت حالت به بیت هسته واگذار می شود و دستورالعمل حالت را تغییر می دهد.
ایجاد فرآیند:
تخصیص شناسه یکتا به فرآیند.
تخصیص فضا برای تمام اجزای تصویر فرآیند.
بلوک کنترل فرآیند مقدار گذاری می شود.
برقراری پیوندهای لازم.
ایجاد وگسترش ساختمان داده های دیگر.
تعویض فرآیند:
ابتدا باید وقفه های سیستم را در نظر بگیریم که به نوع دیگر تله می باشد.
وقفه نوع اول : مستقل از فرآیند در حال اجرا حاصل می شود.
وقفه نوع دوم : به خطا یا شرایط استثنایی مربوط است.
با هر وقفه معمولی،ابتدا کنترل به یک گرداننده وقفه منتقل می شود و به یک روال که مخصوص سیستم عامل آن وقفه است منتقل می شود.
وقفه ساعت: فرایند جاری تعویض و فرآیند دیگر بار گذاری
وقفه ورودی /خروجی: دادن ورودی /خروجی به یک فرایند.
نقص حافظه: اشتباه بودن آدرس.
تغییر حالت فرآیند:
ذخیره سازی متن پردازنده.
بهنگام سازی بلوک های کنترل فرایندی در حالت اجرا.
انتقال بلوک فرآیند مربوط به این فرآیند به صف مناسب.
انتخاب فرآیند دیگر برای اجرا.
بهنگام سازی بلوک های کنترل فرایند انتخاب شده.
بهنگام سازی ساختمان داده های مدیریت حافظه .
بار گذاری مجدد متن پردازنده.
مدیریت فرآیند در UNIX SVR4:
بخش اعظم سیستم عامل ،در داخل محیط یک فرآیند کاربردی اجرا می شود.
از دو گروه فرآیند سیستمی و کاربردی استفاده می کند.
فرایند های سیستمی در کد هسته اجرا می شود.
فرآیند های کاربر در حالت کاربر برای اجرای برنامه های کاربر.
حالات فرآیند در UNIX:
اجرای کاربر
اجرای هسته
آماده در حافظه(بعد از زمانبندی حافظه)
خفته و در حافظه(تا بروز حادثه قابل اجرا نیست)
آماده اجرا و مبادله شد(به حافظه اصلی منتقل می شود)
قبضه شده(از هسته به کاربر می رود)
ایجاد شده(برای اجرا آماده نیست)
جادویی(فرآیندی دیگر وجود ندارد)
تصویر فرآیند در :UNIX
هر فرآیند مجموعه ای از ساختمان داده هایی است که تمام اطلاعات لازم برای مدیریت و توزیع وقت پردازنده و فرآیند را در اختیار سیستم عامل قرار میدهد.
جدولی که در صفحه بعد وجود دارد،عناصر تصویر فرآیند را که سه بخش متن سطح کاربر،متن ثابت و متن سطح سیستم سازماندهی شده ،خلاصه کرده است.
متن سطح کاربر:حاوی عناصر پایه ای کاربر است.
متن ثابت:هنگامی که فرآیندی در حال اجرا نیست در آن ذخیره می شود.
متن سطح سیستم : حاوی اطلاعاتی برای مدیریت سیستم است و شامل یک بخش پویا و یک بخش ایستا است.
|
متن سطح کاربر دستورات قابل اجرا داده های قابل دستیابی حاوی نشانوند و ... کاربر حافظه مورداشتراک با دیگر |
متن فرایند داده های فرآیند پسته کاربر حافظه مشترک |
|
متن ثابت آدرس دستورالعمل کار بعدی حاوی وضعیت سخت افزار در زمان قبضه به بالای پشته کاربر یا هسته اشاره دارد وابسه یه سخت افزار |
شمارنده برنامه ثبات وضعیت پردازنده اشاره گر پشته ثباتهای همه منظوره |
|
متن سطح سیستم وضعیت فرایند را تعریف می کند اطلاعات کنترل فرایند نگاشت از حافظه مجازی به آدرس فیزیکی حاوی قاب پشته |
مدخل جدول فرآیند ناحیه کاربر جدول منطق هر فرآیند پشته هسته |
مدخل جدول فرآیند در UNIX:
اطلاعات کنترل فرآیند که همواره در دسترس هسته است را در بردارد.
در حافظه اصلی قرار دارد.
ناحیه کاربر(یا ناحیه U)حاوی اطلاعات اضافی کنترل است.
این اطلاعات موقع صفحه بندی در حافظه اصلی قرار می گیرد.
هسته UNIX همیشه در متن فرآیندی اجرا می گردد.
جدول بعدی نمایشگر این اطلاعات خواهد بود.
|
حالت فعلی به ناحیهUو ناحیه فرآیند فضا را به سیستم عامل نشان می دهد کاربر مسئول را مشخص می کند شناسه پدر مقدار گذاری می شود به حات آماده می رود(در حات خفته) زمانبدی فرآیند شمارش علامتهای رسیدگی نشده زمان اجرای فرآیند و استفاده منبع و... اشاره به عنصر بعدی تصویر یا انتقال فذآیند به حافظه اصلی |
وضعیت فرآیند اشاره گر ها اندازه فرآیند شناسه های کاربر شناسه های فرآیند توصیفگر حادثه اولویت علامت زمان سنج ها پیوند P وضعیت حافظه |
ناحیه Uدر UNIX:
|
مبین مدخلی که به ناحیه U مربوط است شناسه واقعی کاربر زمان لازم برای اجرا عکس اتعمل های فرآیند را مشخص می کند مبین پایه برقراری ارتباط پایانه با کامپیوتر برای کاربر خطا ها زا ثبت می کند حاوی نتیجه فراخوانی مقدار داده که باید منتقل شو د و... جدول راهنمای جاری و... پرونده های باز شده را ثبت می کند اندازه پرونده و فرآیند را که می توانید بنویسید را محدود می کند حالت پرونده های ایجاد شده را تنظیم می کند |
اشاره گر جدول فرآیند شناسه های کاربر زمان سنج ها آرایه گرداننده فرآیند پایانه کنترل فیلد خطا مقدار بازگشت پارامتر های I/O پارامترهای پرونده جدول توصیفگر پرونده کاربر فیلد های حد فیلد های حالت مجاز |
کنترل فرآیند:
ایجاد فرآیند توسط FORK( ) که یک فراخوان هسته سیستم است انجام می شود و اعمال زیر انجام می شود:
- برای فرآیند جدید ،عنصری در جدول قرار می دهد.
- یک شناسه یکتا به فرزند می دهد.
- یک کپی از پدر ایجاد می کند.
- شماره پرونده های پدر را افزایش می دهد.
- فرآیند فرزند را در حالت اجرا قرار می دهد.
6- شماره شناسه فرزند را پدر و مقدار صفر می دهد.
تمام این اعمال در حات هسته فرآیند پدر انجام می شود.
وموقع توزیع فرآیند یکی از اعمال زیر انجام می شود:
1-ماندن در فرآیند پدر.
2-انتقال کنترل به فرآیند فرزند.
3-انتقال کنترل به فرآیند دیگر.


