بخشی از پاورپوینت
اسلاید 1 :
توصيف و كنترل فرآيند Process Description and Control
فصلهاي 2 و 3 و 4
اسلاید 2 :
فرآيند:
يك برنامه كه براي اجرا در حافظه بار شده است و اصطلاحا به آن حافظه اختصاص يافته است.
يك موجوديت كه قابل اختصاص به يك پردازنده براي اجراست.
يك برنامه مجزاي در حال اجرا.
وظيفه اصلي سيستم عامل اجراي صحيح فرآيندهاست.
فرآيند (Process)
اسلاید 3 :
اجزاي هر فرآيند
يك برنامه قابل اجرا (كد برنامه)
دادههاي برنامه (متغيرها، فضاي كاري، بافرها و .)
متن يا وضعيت اجراي برنامه (Execution context )
اطلاعات لازم براي اجراي برنامه توسط سيستم عامل
محتواي ثباتهاي مختلف پردازنده
اولويت فرآيند
حالت فرآيند (اجرا يا مسدود)
اسلاید 4 :
اساسیترین عمل پردازنده اجرای دستورالعمل های موجود در حافظه است.
رفتار یک فرآیند به خصوص را می توان با فهرست کردن دنباله دستورالعملهایی که برای آن فرآیند اجرا میشود مشخص نمود که به آن رد (Trace) آن فرآیند گویند.
با نمايش چگونگي تداخل ردهاي فرآيندهاي مختلف، ميتوان رفتار پردازنده را مشخص كرد.
حالات فرآیند
اسلاید 5 :
مثال
اسلاید 6 :
1- همگام سازی نا مناسب ) (Improper synchronization
برنامهها براي هماهنگي با يكديگر نيازمند علامتدهي هستند، طراحي نامناسب راهكار علامتدهي، ميتواند موجب از دست رفتن علامتها و يا علامتهاي تكراري گردد.
2- شکست در انحصار متقابل (Failed mutual exclusion)
اغلب بيش از يك برنامه يا كاربر در تلاش براي استفاده همزمان از يك منبع مشترك هستند. نوعي راهكار انحصار متقابل بايد وجود داشته باشد تا در يك زمان تنها يك روال با آن بخش از دادها مشترك تراكنش داشته باشد.
3- عملکرد غیر قطعی برنامه
در حالت عادي، نتايج برنامه بايد تنها به ورودي آن (و نه به فعاليتهاي برنامههاي ديگر در محيط اشتراكي) بستگي داشته باشد.
4- بن بست (Deadlock)
به حالتي كه دو یا چند برنامه به خاطر يكديگر معلق بمانند. هر كدام منتظرند تا برنامه ديگر منبع مورد نظرش را رها كند.
علت بروز خطاها در سیستم نرم افزاری
اسلاید 7 :
در اين مدل یک فرآیند دو حالت ممکن دارد :
اجرا (Running)
عدم اجرا
وقتی یک سیستم عامل فرآیند جديدي را ايجاد میکند آن را در حالت غیر اجرا قرار ميدهد.
پس از رسیدن نوبت، توزيع كننده (Dispatcher) فرآیند فعلی را به حالت غیر اجرا برده و فرآیند جديد را به حالت اجرا ميبرد.
اين مدل در مورد حالاتي كه فرآيند منتظر I/O هست چيزي بيان نميكند.
مدل عملكرد فرآيند (مدل دو حالته)
اسلاید 8 :
فرآیندی که در حال اجرا نیست باید در صفی به انتظار نوبت قرار گیرد.
وقتی یک فرآیند در معرض وقفه قرار می گیرد به صف انتظار می رود.
اگر یک فرآیند کارش تمام شود کنار گذاشته می شود.
نمودار صف بندي (مدل دوحالته)
اسلاید 9 :
دستور اجرا از سوي كاربر
ورود يك كاربر جديد
شروع يك سرويس داخلي سيستم عامل مثل چاپ
يك فرآيند (والد)، فرآيند (فرزند) جديدي را ايجاد نمايد.
ايجاد فرآيند
اسلاید 10 :
تكميل اجراي فرآيند
خروج كاربر از سيستم
اتمام زمان مجاز كاربر
ايجاد خطا در سيستم
عدم وجود حافظه كافي
عدم رعايت محدوده مجاز
خطاهاي محاسباتي
Overflow، DBZ
خرابي در I/O
ختم فرآيند والد (Parent)
ختم فرآيند
اسلاید 11 :
جدید(New): فرآیندی که هم اکنون ایجاد شده اما هنوز در حافظه اصلي بار نشده.
اطلاعات موردنياز براي اجراي فرآيند در حافظه اصلي است ولي خود فرآيند (كد برنامه) در حافظه جانبي است.
آماده (Ready): با گرفتن فرصت به اجرا در میآید.
اجرا (Running): فرآیندی كه هم اکنون پردازنده را در اختيار دارد.
مسدود (Blocked): فرآيندي كه تا وقوع رويدادي مثل كامل شدن I/O نميتواند اجرا شود.
خروج: به علت تكميل شدن یا خطا، سيستم عامل آن را اخراج كرده است.
مدل پنج حالته
اسلاید 12 :
اجرا مسدود: اگر فرآيند در حين اجرا چيزي درخواست كند كه براي بدست آوردن آن بايد منتظر بماند، به حالت مسدود ميرود.
مسدود آماده: اگر رويداد مورد انتظار فرآيندي كه در حالت مسدود بوده است رخ دهد، به حالت آماده ميرود.
مدل پنج حالته .
اسلاید 13 :
در مدل پنج حالته، بدليل اينكه عمليات I/O خيلي كندتر از محاسبات است، بعد از مدتي همه فرآيندها در حالت مسدود قرار ميگيرند پس در اکثر اوقات پردازنده بيکار می ماند. دو راه حل زیر پیشنهاد می شود:
1- حافظه اصلی را گسترش داد
با افرایش هزینه همراه است.
درخواست برای حافظه افزايش مييابد. بنابراين، حافظه بزرگتر، فرآيندهاي بزرگتر را نتيجه ميدهد، نه اينكه تعداد فرآيندها بيشتر شود.
2- مبادله: انتقال بخشی يا تمام یک فرآیند از حافظه اصلي به حافظه جانبي (دیسک).
هنگامی که هیچ یک از فرآیند هاي موجود در حافظه اصلي در حالت آماده نيستند، در اين صورت سيستم عامل يكي از فرآيندهاي مسدود را از حافظه اصلي خارج و به صف فرآيندهاي معلق در روي حافظه جانبي ميبرد تا فضاي حافظه اصلي آزادتر شود. (مبادله به خارج)
سپس سيستم عامل فرآيند ديگري را از صف معلق به حافظه اصلي ميآورد، يا درخواست فرآيند جديدي را ميپذيرد. (مبادله به داخل)
فرآیند معلق(Suspend)
اسلاید 14 :
مدل با يك حالت تعليق
اسلاید 15 :
مدل با دو حالت تعليق
اسلاید 16 :
آماده: فرآيند در حافظه اصلي و آماده براي اجراست
مسدود: فرآيند موردنظر در حافظه اصلي و منتظر حادثهاي است.
مسدود و معلق: فرآيند موردنظر در حافظه جانبي و منتظر حادثهاي است.
آماده و معلق: فرآيند موردنظر در حافظه جانبي است و به محض بار شدن در حافظه اصلي آماده اجراست.
مدل با دو حالت تعليق .
اسلاید 17 :
يك ساختمان داده كه تمام اطلاعات مورد نياز سيستمعامل در مورد يك فرآيند را دربر دارد.
معمولا اين بلوك در حافظه جانبي نگهداري ميشود و براي اجراي فرآيند تمام يا قسمتي از آن بايد در حافظه اصلي بار شود. شامل:
شناسههاي فرآيند
شناسه فرآيند
شناسه والد
شناسه كاربر
اطلاعات وضعيت فرآيند
ثبات ها
اشارهگرهاي حافظه
اطلاعات كنترل فرآيند
حالت
اولويت
اطلاعات وضعيت I/O
اطلاعات حسابداري
بلوك كنترل فرآيند(Process Control Block)
اسلاید 18 :
لازم است سيستم عامل و جداول مهم آن مثل بلوكهاي كنترل فرآيند از دخالت برنامههاي كاربران محافظت شوند. بنابراين، دو حالت داريم:
حالت كاربر
حالت سيستم يا حالت كنترل يا حالت هسته
حالت ممتاز
دستورالعملهاي خواندن و تغيير ثباتهاي كنترلي، دستورالعملهاي اوليه ورودي/خروجي و دستورالعملهاي مربوط به مديريت حافظه.
در ثبات PSW یک بیت برای تعيين حالت اجرا وجود دارد.
حالتهاي اجراي پردازنده
اسلاید 19 :
وقفههاي خارجي (يك عامل خارجي غير از خود فرآيند)
وقفه ساعت
وقفه تكميل يك ورودی/خروجی
وقفههاي داخلي يا تله (Trap)
خطاهاي سخت افزاري
نقص حافظه
خطاهاي برنامه
تقسيم به صفر
تعویض فرآیند(Process Switching)
اسلاید 20 :
در اكثر سيستمهاي عامل، بروز وقفه الزاما منجر به تعويض فرآيند نميشود. تنها با يك تعويض حالت (از حالت كاربر به هسته) جهت اجراي روتين وقفه، پردازش ادامه مييابد.
بعد از اجراي گرداننده وقفه، اجراي فرآيندي كه در حال اجرا بوده از سر گرفته ميشود.
در اين حالت تنها كاري كه لازم است، ذخيرهسازي اطلاعات پردازنده در موقع وقفه و بارگذاري مجدد آن در موقع بازگشت از وقفه است.
تعويض حالت(State Switching)