
– تمام نیازمندی های اصلی که سیستم عامل باید پاسخگو باشد به وسیله فرآیند قابل یبان است.
سیستم عامل باید در بین اجرای فرآیند قرار گیرد.
سیستم عامل باید با بهره گیری از یک سیاست خاص ،منابعی در اختیار سیستم قرار داده و از وقوع بن بست جلوگیری کند.
سیستم عامل باید از ارتباط بین فرآیندها و ایجاد فرآیندها توسط کاربر حمایت کند.
حالات فرآیند :
– اساسی ترین عمل پردازنده ،اجرای دستورالعمل های موجود در حافظه است.
– اجرا شامل دنباله ای از دستورالعمل های همان برنامه است.
به اجرای یک فرآیند خاص ،فرآیند یا وظیفه گویند.
– رفتار یک فرآیند به خصوص را میتوان با فهرست کردن دنباله دستورالعمل هایی که برای آن فرآیند اجرا میشوند ،مشخص نمود ؛که به آن رد آن فرآیند گویند.
– مسئولیّت اصلی سیستم عامل ،کنترل یک فرآیند است.
– یک فرآیند ممکن است در یکی از دو حالت اجرا و غیر اجرا باشد.
– وقتی یک سیستم عامل فرآیندی را دریافت میکند آن را در حالت غیر اجرا قرار میدهد.
– پس از رسیدن نوبت ،فرآیند فعلی را به حالت غیر اجرا برده و فرآیند را به حالت اجرا.
– در مورد هر فرآیندی باید اطّلاعاتی را ذخیره کرد.
– فرآیندی که در حال اجرا نیست باید در یک صف به انتظار نوبت قرار گیرد.
– گاهی صفی وجود دارد که حاوی جداولی است که وضعیّت فرآیندها را نمایش میدهد.
– وقتی یک فرآیند در معرض وقفه قرار میگیرد ،به صف انتظار میرود.
– اگر یک فرآیند کارش تمام شود ،کنار گذاشته می شود.
ایجاد و پایان فرآیند :
عمر یک فرآیند محدود به زمان ایجاد تا زمان خاتمه دادن به آن است.
در هنگام ایجاد سیستم عامل، ساختمان داده مربوط به آن فرآیند ساخته شده و فضای آدرس مربوط به آن را تخصیص می دهد.
معمولاً چهار حادثه موجب به ایجاد فرآیند میگردد :
1- در محیط دسته ای : یک فرآیند جدید در پاسخ به یک کار
2- برقراری ارتباط محاوره ای : کار از طریق پایانه با سیستم ارتباط برقرار کند.
3- ارائه یک خدمت به وسیله سیستم عامل : فرآیندی را برای خدمت ایجاد کند.
4- زایش توسط فرآیند موجود : برای بهره گیری از توازی یا تفکیک
پایان فرآیند :
هر کار دسته ای باید حاوی دستورالعمل توقّف یا فراخوانی صریح یک خدمت سیستمی برای پایان باشد.
در بعضی از سیستم عامل ها ممکن است فرآیندی به وسیله فرآیند ایجاد کننده اش و با پایان فرآیند پدرش نیز پایان یابد.
زایش فرزند : فرآیندی با درخواست فرآیند دیگر به وجود می آید.
فرزند : فرآیند زاینده را پدر و فرآیند ایجاد شده را فرزند گویند.
انواع خطا :
خطای محاسباتی : محاسبات غیر مجاز
گذشت زمان : گذشت زمان بیش از حد ،برای بروز حادثه منتظر مانده
خطای ورودی و خروجی
و…
پنج حالت ممکن برای فرآیند :
اجرا : فرآیندی هم اکنون در حالت اجرا است.
آماده : با گرفتن فرصت به اجرا در می آید.
مسدود : با تمام شدن وقت و یا بروز حادثه اتفاق می افتد.
جدید : فرآیندی که هم اکنون ایجاد شده است.
خروج : به علّت دستور توقف یا به دلیلی قطع شده است.
انواع حوادثی که منجر به تغییر حالت شده است :
تهی —> آماده : فرآیند جدیدی را برای اجرای یک برنامه ایجاد می کند.
جدید —> آماده : آمادگی برای گرفتن یک برنامه
آماده —> اجرا : زمان انتخاب یک فرآیند رسیده است.
اجرا —> خروج : فرآیند جاری اعلام می کند که تمام شده است.
اجرا —> آماده : اتمام زمان مجاز برای یک فرآیند (متداول ترین)
اجرا —> مسدود : درخواست یک منبع با انتظار
مسدود —> آماده : حادثه مورد نظر اتفاق افتاده است.
آماده —> خروج : با تصمیم پدر
مسدود —> خروج : توضیح تغییر حالت قبل در اینجا نیز صادق است.
در اکثر اوقات ،پردازنده بیکار میماند. برای این کار راه حل های زیر پیشنهاد می شود :
1- حافظه اصلی را گسترش داد : این کار دو عیب دارد :
– با افرایش هزینه همراه است.
– درخواست برای حافظه زیاد شده است.
2- مبادله : انتقال بخشی از یک فرآیند به دیسک
هنگامی که هیچ یک از فرآیندها در صف آماده نيستند ،منع لازم را دریافت نکرده ،به حالت معلق میروند ؛و فرآیند دیگری ازحالت معلق به حات آماده رفته و اجرا میشود.
عیب : مبادله یک ورودی وخروجی است.
امتیاز : ورودی و خروجی عموماً سریعتر از سیستم است و باعث افزایش کارایی میشود.
فرآیند معلّق :
– فوراً آماده اجرا نیست.
– یک فرآیند ممکن است منتظر یک حادثه باشد یا نباشد.
– توسط عاملی در حالت معلق گذاشته شده تا از اجرای آن جلوگیری کند.
– منتظر فرمان باشد.
دلایل تعلیق فرآیند :
مبادله : سیستم عامل نیاز به حافظه کافی دارد.
دلایل دیگر سیستم عامل : فرآیندی را که سودمند یا لازم و… است را معلق کند.
درخواست کاربر محاورهای : کاربر به منظور استفاده از منبع ،برنامه را معلق کند.
ترتیب زمانی : فرآیند به طور دوره ای اجرا شود.
درخواست فرآیند پدر : فرآیند فرزند را به تعلیق بیاندازد.
ساختارهای کنترلی سیستم عامل :
برای کنترل فرآیندها باید اطّلاعات مربوط به فرآیند ،در جدولی ذخیره شوند. تمام سیستم عامل ها اطّلاعات را در جهار گروه ذخیره می کنند.
از جداول حافظه برای دنبال کردن اطّلاعات حافظه اصلی و ثانویه استفاده می کنند ؛قسمتی برای سیستم عامل و یقیه برای فرآیند.
جداول حافظه بايد حاوی اطّلاعات زیر باشد :
1- تخصیص حافظه اصلی به فرآیند
2- تخصیص حافظه ثانویه به فرآیند
3- ویژگی های حفاظتی فرآیند
4- اطّلاعات مورد نیاز برای مدیریت حافظه مجازی
انواع جداول :
جداول ورودی/خروجی : برای نگهداری و مدیریت دستگاه های ورودی ،خروجی و… استفاده می شود.
جداول پرونده : اطّلاعات مربوط به پرونده های موجود ،محلّ آنها در حافظه ثانویّه ،وضعیّت جاری و… را نگهداری می کنند.
جداول فرآیند : جهت مدیریت فرآیندها استفاده می شود.
ساختار کنترلی فرآیند :
هر فرآیند دارای صفاتی است که معمولا همراه آن به سیستم عامل می آید ؛که به مجموعه این صفات را بلوک کنترل فرآیند می گویند.
به مجموعه داده برنامه ،داده ها ،پشته و صفت ،تصویر فرآیند می گویند و محلّ آن به مدیر حافظه بستگی دارد؛ در حافظه ثانویّه نگهداری می شود و برای اجرا باید به حافظه اصلی برود.
اجزای متداول تصویر یک فرآیند :
داده های کاربر : بخش قابل تغییر فضای کاربر
برنامه کاربر : برنامهای که قرار است اجرا شود.
پشته سیستم : برای ذخیره پارامترها و آدرس و… .
بلوک کنترل فرآیند : اطّلاعات لازم برای کنترل فرآیند
اطّلاعات مربوط به یک بلوک فرآیند حاوی موارد زیر می باشد :
1- شناسایی فرآیند
2- اطّلاعات وضعیّت پردازنده
3- اطّلاعات کنترل فرآیند
– شناسایی فرآیند : یک شناسه عددی یکتا نسبت می دهند.
مزایای شناسه :
مراجعات به جداول ،تحت کنترل است.
از طریق شناسه میتوان پی به برقراری ارتباط بین فرآیندها برد.
می توان به یک فرآیند ،یک شناسه کاربر نسبت داد.
– اطّلاعات وضعیّت پردازنده :
محتوای ثبات های پردازنده می باشد.
برای اطّلاعات وضعیّت می باشد. (PSW)
حاوی کد شرایط و دیگر اطّلاعات است.
– اطّلاعات کنترل فرآیند :
به آن، بلوک کنترل فرآیند گفته می شود.
موجب ایجاد هماهنگی بین فرآیندهای فعّال می شود.
نقش بلوک کنترل فرآیند :
بلوک کنترل فرآیند نقش مهمّی در ساختمان سیستم عامل دارد.
وضعیّت سیستم را تعریف میکند.
از شناسه یکتای فرآیند به عنوان شاخص استفاده می کند.
مشكلات بلوك كنترل فرآيند برای حفاظت
1- وجود اشکال در یک بلاک منجر به لطمه زدن به تمام بلاک ها میشود.
2- تغییر در یک بلوک منجر به تغییر در بسیاری از مؤلّفه ها می شود.
این آموزش بیش از ۳ سال قبل ارسال شده و اکنون در لیست بهروزرسانیهای سایت قرار دارد. اگر پیشنهاد یا انتقادی برای بهبود آموزش دارید، خوشحال میشیم به ما اطلاع بدهید.
سلام استاد میشه نمونه سوالات برای پایان ترم اول بدهید🙏🏼🥰
سلام
متأسفانه نمونه سؤالی مخصوص این درس ندارم که در سایت قرار بدم. اما سعی میکنم در آینده حتماً نمونه سؤال و خلاصه مباحث رو منتشر کنم.
میشه یه مثال مفهومی راجب اتمام پراسس برام بزنید ممنون
سلام
منظورتون از مفهومی بودن مثال متوجه نمیشم!
وقتی یک process تموم میشه، یکسری کارها انجام میشه، مثل آزادسازی منابعی که بهش تخصیص داده شده. یا گاهی روند ذخیرهسازی نتایج یا خروجیهایی که باید این فرآیند داشته باشه رو هم جزء کارهای اتمام فرآیند در نظر میگیرند.
با سلام عالی بود دمت گرم خیلی بدردم خورد ممنونم
خوشحالیم برات کاربردی بوده مهدی عزیز 🙂
سلام، میشه تفاوت پشته و pcb رو بفرمایید که چی هست؟ آیا pcb خودش تو پشته ذخیره میشه؟
سلام
Process Control Block یک بلوک از دادههایی هست که وقتی یک پردازش در OS قراره موقتاً غیرفعال یا متوقف بشه، در جایی از حافظه نگهداری میشه. اینطوری وقتی OS میخواد فرآیند رو مجدد شروع کنه، میتونه دقیقاً به نقطهای که متوقف شده برگرده و ادامه بده.
دادههای پردازش، معمولاً شامل stack فرآیند هم هست؛ یا حداقل یک اشارهگر به محل شروع پشته.
اینکه PCB به صورت پشته ذخیره میشه یا نه رو اطلاع دقیقی ندارم. به نظرم میتونه نسبت به ساختار هر سیستم عامل متفاوت باشه.
سلام میشه تفاوت فرایند و دستور العمل رو بگین!
سلام
در بحث سیستم عامل، فرآیند نمونهای (instance) از برنامه هست که اجرا میشه. این برنامه بخشی از پردازنده، حافظه و منابع مورد نیازش رو اشغال میکنه.
هر برنامه شامل یکسری دستورالعمل (میتونیم قطعههایی از کد که هدف خاصی دارند رو هم instruction در نظر بگیرید) داره. مثلاً اطلاعات رو از فلان فایل بخون، محاسبات فلان رو انجام بده، اگر فلان شرط برقرار بود این کار رو انجام بده و … .
قاعدتاً هر فرآیند شامل مجموعهای از دستورالعملها میشه.
امیدوارم با این توضیح کوتاه، مفهوم کلی و جایگاه هر کدوم رو متوجه شده باشید.
مطالب خوبی داشتید فقط اینکه درباره اینکه سیستم عامل از کجا متوجه شود که یک فرایند در کدام مرحله قرار دارد توضیحاتی منتشر میکردید خیلی خوب میشد چون برای تحقیق لازم دارم و تو هیچ سایتی مطلبی در این باره پیدا نکردم،تشکر
خوشحالم که براتون مفید بوده
هر سیستم عاملی یک رویه برای این کار در نظر میگیره. خلاصه همه روشها، استفاده از flagها و به نوعی برچسب زدن به هر فرآیند هست.
مطالب بسیار مفید و مناسب است، ولی متاسفانه قابلیت کپی و پیست نداره!! :دی