0% found this document useful (0 votes)
5 views57 pages

Chapter 3

Let me gooo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views57 pages

Chapter 3

Let me gooo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 57

Process 1

Department of Computer Science


University of Mazandaran
‫• یک فرآیند به مانند یک موجودیت است که از تعدادی عنصر تشکیل شده است‪.‬‬

‫• دو عنصر ضروری یک فرآیند عبارتنداز‪:‬‬


‫• کد برنامه (که ممکن است با فرآیندهای دیگری که همان برنامه را اجرا میکنند به اشتراک گذاشته‬
‫شود)‪.‬‬

‫• مجموعهای از دادههای مرتبط با آن کد‪.‬‬

‫• پردازنده شروع به اجرای کد برنامه میکند و این موجودیت در حال اجرا را یک فرآیند در نظر‬
‫میگیریم‪.‬‬

‫‪2‬‬
‫‪Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3‬‬
‫• یک فرآیند میتواند به طور منحصربهفرد با تعدادی از عناصر‪ ،‬از جمله موارد زیر مشخص شود‪:‬‬

‫• شناسه (‪ :)Identifier‬یک شناسه منحصربهفرد مرتبط با این فرآیند‪ ،‬تا آن را از سایر فرآیندها متمایز کند‪.‬‬

‫• حالت‪/‬وضعیت (‪ :)State‬اگر فرآیند در حال اجرا باشد‪ ،‬در وضعیت درحالاجرا (‪ )running state‬است‪.‬‬

‫• اولویت (‪ :)Priority‬سطح اولویت نسبت به سایر فرآیندها‪.‬‬

‫• شمارنده برنامه (‪ :)Program counter‬آدرس دستور بعدی در برنامه که باید اجرا شود‪.‬‬

‫‪Program‬‬
‫‪Identifier‬‬ ‫‪State‬‬ ‫‪Priority‬‬
‫‪counter‬‬

‫‪3‬‬
‫‪Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3‬‬
‫• نشانگرهای حافظه (‪ :)Memory pointers‬شامل نشانگرهایی به کد برنامه و دادههای مرتبط با فرآیند و هر بلوک‬
‫حافظه مشترک با سایر فرآیندها‪.‬‬

‫• دادههای زمینه (‪ :)Context data‬دادههایی هستند که در هنگام اجرای فرآیند در ثبات های پردازنده وجود دارند‪.‬‬

‫• اطالعات وضعیت ورودی‪/‬خروجی (‪ :)I/O status information‬شامل درخواست‌های ورودی‪/‬خروجی معوق‪،‬‬


‫دستگاه‌های ورودی‪/‬خروجی اختصاص داده شده به این فرآیند‪ ،‬فهرستی از فایل‌های در حال استفاده توسط فرآیند و‬
‫غیره است‪.‬‬

‫• اطالعات حسابداری (‪ :)Accounting information‬این ممکن است شامل مقدار زمان پردازنده و ساعت استفاده‬
‫شده‪ ،‬محدودیتهای زمانی و غیره باشد‪.‬‬

‫‪Memory‬‬ ‫‪Context‬‬ ‫‪I/O status Accounting‬‬


‫‪pointers‬‬ ‫‪data‬‬ ‫‪information information‬‬
‫‪4‬‬
‫‪Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3‬‬
‫• توسط سیستمعامل ایجاد و مدیریت میشود‪.‬‬

‫• شامل عناصر فرآیند است‪.‬‬

‫• این امکان وجود دارد که یک فرآیند در حال اجرا را قطع کرده و بعداً‬
‫اجرا را از سر بگیرید‪ ،‬گویی قطعی رخ نداده است‪.‬‬

‫• ابزار کلیدی که امکان پشتیبانی از چندین فرآیند را فراهم میکند‪.‬‬

‫• یک فرآیند عبارتنداز کد برنامه‪ ،‬مجموعهای از دادههای مرتبط با آن‬


‫کد و بلوک کنترل فرآیند است‪.‬‬

‫‪5‬‬
‫‪Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3‬‬
‫• از دیدگاه پردازنده‪ ،‬دستورات را از‬
‫مجموعه خود به ترتیبی که توسط‬
‫ثبات شمارنده برنامه مشخص‬
‫میشود‪ ،‬اجرا میکند‪ .‬با گذشت‬
‫زمان‪ ،‬شمارنده برنامه ممکن است‬
‫به کد در برنامههای مختلف که‬
‫بخشی از فرآیندهای مختلف‬
‫هستند اشاره کند‪.‬‬

‫(‪:)dispatcher‬‬ ‫• توزیعکننده‬
‫برنامه کوچکی که پردازنده را از یک‬
‫فرآیند به فرآیند دیگر تغییر‬
‫میدهد‪.‬‬

‫‪6‬‬
‫رفتار یک فرآیند منفرد را با فهرست‬
‫کردن دنباله دستورالعمل‌هایی که برای‬
‫آن فرآیند اجرا می‌شوند‪ ،‬مشخص‬
‫میکنیم‪ .‬چنین فهرستی به عنوان اثری‬
‫(‪ )Trace‬از فرآیند نامیده میشود‪.‬‬

‫می‌توان رفتار پردازنده را با نشان دادن‬


‫اینکه چگونه اثر (‪ )Trace‬فرآیندهای‬
‫مختلف در هم می‌پیچد‪ ،‬مشخص کنیم‪.‬‬

‫‪7‬‬
‫فرض می‌کنیم که سیستم‌عامل‬
‫فقط به یک فرآیند اجازه می‌دهد تا‬
‫حداکثر شش دوره دستورالعمل‬
‫اجرا شود و پس از آن قطع می‌شود‪.‬‬
‫این عمل مانع از به انحصار گرفتن‬
‫فرآیند‬ ‫توسط‬ ‫پردازنده‬ ‫زمان‬
‫میشود‪.‬‬

‫‪8‬‬
‫مسئولیت اصلی سیستمعامل کنترل‬
‫اجرای فرآیندها است‪.‬‬

‫اولین قدم در طراحی یک سیستمعامل‬


‫برای کنترل فرآیندها‪ ،‬مدلسازی رفتار‬
‫فرآیندها است‪.‬‬

‫مدل ساده دو حالته‪ :‬یک فرآیند یا‬


‫توسط یک پردازنده اجرا میشود یا نه!‬
‫بنابراین دو مدل درحالاجرا یا‬
‫عدماجرا‪.‬‬

‫‪9‬‬
‫• چهار رویداد معمول‪ ،‬منجر به ایجاد یک فرآیند میشود‪:‬‬

‫در یک محیط دستهای (‪ ،)Batch‬فرآیندی در پاسخ به ارسال یک کار ایجاد میشود‪.‬‬ ‫‪.1‬‬

‫در یک محیط تعاملی (‪ ،)Interactive‬زمانی که یک کاربر جدید تالش میکند وارد سیستم شود‪ ،‬یک فرآیند‬ ‫‪.2‬‬

‫ایجاد میشود‪.‬‬

‫یک سیستمعامل همچنین ممکن است یک فرآیند از طرف یک برنامه ایجاد کند‪.‬‬ ‫‪.3‬‬

‫• مثال‪ :‬کاربر درخواست میکند که یک فایل چاپ شود‪ ،‬سیستمعامل میتواند فرآیندی ایجاد کند که چاپ را مدیریت کند‪.‬‬

‫یک فرآیند ممکن است توسط یک فرایند موجود ایجاد شود‪.‬‬ ‫‪.4‬‬

‫• مثال‪ :‬یک فرآیند برنامه کاربردی ممکن است فرآیند دیگری را برای دریافت دادههایی که برنامه تولید میکند ایجاد کند و آن‬
‫دادهها را به شکلی مناسب برای تجزیه و تحلیل بعدی سازماندهی کند‪.‬‬

‫‪10‬‬
‫‪Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3‬‬
‫• وقتی سیستمعامل یک فرآیند را به درخواست صریح یک فرآیند دیگر‬ ‫‪Process‬‬
‫ایجاد میکند‪ ،‬این عمل به عنوان ‪ Process spawning‬نامیده میشود‪.‬‬ ‫‪spawning‬‬

‫• هنگامی که یک فرآیند‪ ،‬فرآیند دیگری را ایجاد میکند‪ ،‬اولی به عنوان‬ ‫‪Parent‬‬


‫فرآیند والد در نظر گرفته میشود‪.‬‬ ‫‪process‬‬

‫• فرآیند جدید ایجاد شده به عنوان فرآیند فرزند نامیده میشود‪.‬‬ ‫‪Child‬‬
‫‪process‬‬

‫‪11‬‬
‫‪Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3‬‬
‫• هر سیستم کامپیوتری باید وسیلهای را برای یک فرآیند فراهم کند تا تکمیل آن را نشان دهد‪.‬‬

‫• یک کار دستهای باید شامل یک دستورالعمل ‪ HALT‬یا یک تماس سرویس سیستمعامل (‪)OS Service Call‬‬
‫صریح برای خاتمه باشد‪.‬‬

‫• برای یک برنامه تعاملی‪ ،‬عملکرد کاربر نشان میدهد که فرآیند تکمیل شده است (مانند خروج از سیستم)‪.‬‬

‫• در رایانه شخصی‪ ،‬کاربر ممکن است از یک برنامه خارج شود‪.‬‬

‫‪12‬‬
‫‪Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3‬‬
13
Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3
‫• اگر همه فرآیندها همیشه آماده اجرا بودند‪ ،‬مدل پیشنهادی دو حالته دارای صف موثر میبود‪.‬‬

‫• صف یک لیست ‪ FIFO‬است و پردازنده به صورت ‪ Round-Robin‬روی فرآیندهای موجود کار میکند (به هر فرآیند‬
‫در صف زمان مشخصی داده میشود تا اجرا شود و سپس به صف بازگردانده میشود‪ ،‬مگر اینکه مسدود شده باشد)‪.‬‬

‫• این پیاده‌سازی ناکافی است‪ :‬برخی از فرآیندها در حالت ‪ Not Running‬آماده اجرا هستند‪ ،‬در حالی که برخی دیگر‬
‫مسدود شده‌اند و منتظر تکمیل عملیات ‪ I/O‬هستند‪.‬‬

‫‪14‬‬
‫‪Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3‬‬
.‫ تقسیم کنید‬Blocked/Waiting ‫ و‬Ready ‫ را به دو حالت‬Not Running ‫ حالت‬:‫• یک راه حل‬

15
Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3
‫درحالاجرا‪ :‬فرآیندی که در حال حاضر در حال اجراست‪.‬‬ ‫‪.1‬‬

‫آماده‪ :‬فرآیندی که آماده اجرا است و منتظر فرصت برای به دست گرفتن کنترل پردازنده ‪.‬‬ ‫‪.2‬‬

‫مسدود‪/‬منتظر‪ :‬فرآیندی که تا زمانی که رویدادی رخ ندهد (مانند تکمیل یک عملیات ‪ )I/O‬قابل اجرا نیست‪.‬‬ ‫‪.3‬‬

‫جدید‪ :‬فرآیندی که به تازگی ایجاد شده است اما هنوز توسط سیستمعامل در مجموعه فرآیندهای اجرایی‬ ‫‪.4‬‬

‫پذیرفته نشده است‪ .‬به طور معمول‪ ،‬یک فرآیند جدید هنوز در حافظه اصلی بارگذاری نشده است‪ ،‬اگرچه‬
‫بلوک کنترل فرآیند آن ایجاد شده است‪.‬‬

‫خروج‪ :‬فرآیندی که توسط سیستمعامل از مجموعه فرآیندهای قابل اجرا خارج شده است‪.‬‬ ‫‪.5‬‬

‫‪16‬‬
‫‪Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3‬‬
Null New Running Blocked

New Ready Blocked Ready

Ready Running Ready Exit

Running Exit Blocked Exit

17
Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3
18
Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3
‫با ورود هر فرآیند‪ ،‬در صف آماده قرار‬
‫میگیرد‪ .‬وقتی سیستمعامل میخواهد‬
‫فرآیند دیگری را برای اجرا انتخاب کند‪،‬‬
‫یکی را از صف آماده انتخاب میکند‪.‬‬
‫(مثال‪ :‬میتواند یک صف ساده ‪FIFO‬‬

‫باشد) هنگامی که یک فرآیند در حال‬


‫اجرا از اجرا حذف میشود‪ ،‬بسته به‬
‫شرایط‪ ،‬یا خاتمه مییابد یا در صف‬
‫آماده یا مسدود قرار میگیرد‪ .‬در نهایت‪،‬‬
‫هنگامی که یک رویداد رخ میدهد‪،‬‬
‫فرآیندی که در صف مسدود منتظر آن‬
‫رویداد بوده است به صف آماده منتقل‬
‫میشود‪.‬‬
‫‪19‬‬
‫مشکل یگانه بودن صف مسدود‪:‬‬
‫هنگامی که یک رویداد رخ میدهد‪،‬‬
‫سیستمعامل باید کل صف مسدود شده‬
‫را اسکن کند و فرآیندهای منتظر آن‬
‫رویداد را جستجو کند‪ .‬در یک‬
‫سیستمعامل بزرگ‪ ،‬صدها یا حتی‬
‫هزاران فرآیند در آن صف وجود دارد‪.‬‬
‫بنابراین‪ ،‬داشتن تعدادی صف‪ ،‬یکی‬
‫برای هر رویداد‪ ،‬کارآمدتر خواهد بود‪.‬‬
‫سپس‪ ،‬هنگامی که رویداد رخ میدهد‪،‬‬
‫کل لیست فرآیندهای موجود در صف‬
‫مناسب را میتوان به حالت آماده منتقل‬
‫کرد‪.‬‬
‫‪20‬‬
‫• مبادله (‪ : )Swapping‬شامل انتقال بخشی از یا تمام یک فرآیند از حافظه اصلی به دیسک است‪.‬‬

‫• هنگامی که هیچ یک از فرآیندهای حافظه اصلی در حالت آماده نیست‪ ،‬سیستمعامل یکی از فرآیندهای مسدودشده را به‬
‫یک صف تعلیق برروی دسیک انتقال میدهد‪.‬‬
‫• این یک صف از فرآیندهای موجود است که به طور موقت از حافظه اصلی حذف شده (به حالت تعلیق درآمده است)‪.‬‬

‫• سپس سیستم‌عامل فرآیند دیگری را از صف تعلیق وارد می‌کند یا یک درخواست فرآیند جدید را اجرا می‌کند‪.‬‬

‫• اجرا با فرآیند تازه وارد ادامه مییابد‪.‬‬

‫• مبادله یک عملیات ورودی‪/‬خروجی است و بنابراین امکان بدتر کردن مشکل وجود دارد‪ ،‬اما از آنجایی که ورودی‪/‬خروجی‬
‫دیسک معموالً سریع‌ترین ورودی‪/‬خروجی در یک سیستم است (نسبت به پرینتر و غیره)‪ ،‬مبادله معمو ‌الً عملکرد را بهبود‬
‫می‌دهد‪.‬‬

‫‪21‬‬
‫‪Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3‬‬
22
Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3
23
Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3
Blocked to Blocked/Suspend New to Ready/Suspend or Ready

Blocked/Suspend to Ready/Suspend Blocked/Suspend to Blocked

Ready/Suspend to Ready Running to Ready/Suspend

Ready to Ready/Suspend Any State to Exit

24
Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3
‫• فرآیند فوراً برای اجرا در دسترس نیست‪.‬‬

‫• فرآیند ممکن است در انتظار یک رویداد باشد یا نباشد‪.‬‬

‫• این فرآیند توسط یک عامل (‪ )agent‬در حالت تعلیق قرار گرفت‪ :‬یا خود (یک فرآیند والد) یا سیستمعامل‪،‬‬
‫به منظور جلوگیری از اجرای آن‪.‬‬

‫• تا زمانی که عامل به صراحت دستور حذف را صادر نکند‪ ،‬ممکن است فرآیند از این حالت حذف نشود‪.‬‬

‫‪25‬‬
‫‪Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3‬‬
26
Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3
27
Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3
‫• سیستمعامل برای مدیریت فرآیندها و منابع‪ ،‬باید اطالعاتی در مورد وضعیت کنونی هر منبع و‬
‫فرآیند داشته باشد‪.‬‬

‫• برای تهیه این اطالعات‪ ،‬سیستمعامل برای هر موجودیتی (‪ ،)entity‬جداول اطالعاتی الزم را‬
‫ساخته و مدیریت میکند‪.‬‬

‫• چهار نوع جداول مختلف که توسط سیستمعامل نگهداری میشوند‪:‬‬


‫• حافظه‪ ،‬ورودی‪/‬خروجی‪ ،‬فایل و فرآیند‪.‬‬

‫‪28‬‬
‫‪Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3‬‬
‫سیستمعامل از چهار نوع‬ ‫•‬

‫جدول برای مدیریت منابع‬


‫استفاده میکند‪:‬‬
‫جدول‌حافظه‬ ‫‪.1‬‬

‫جدول‌ورودی‪/‬خروجی‬ ‫‪.2‬‬

‫جدول‌فایل‬ ‫‪.3‬‬

‫جدول‌فرآیند‬ ‫‪.4‬‬

‫‪29‬‬
‫• جداول حافظه برای ردیابی حافظه اصلی (واقعی) و ثانویه‬
‫تخصیص‌حافظه‌اصلی‌به‌فرآیندها‬
‫(مجازی) استفاده میشود‪.‬‬
‫تخصیص‌حافظه‌ثانویه‌به‌فرآیندها‬ ‫• قسمتی از حافظه اصلی برای استفاده توسط سیستمعامل رزرو‬
‫هر‌گونه‌ویژگی‌حفاظتی‌بلوکهای‌‬ ‫شده است‪ .‬باقیمانده برای استفاده توسط فرآیندها در دسترس‬
‫حافظه‌اصلی‌یا‌مجازی‬ ‫است‪.‬‬
‫هر‌گونه‌اطالعات‌مورد‌نیاز‌برای‌‬
‫مدیریت‌حافظه‌مجازی‬ ‫• فرآیندها با استفاده از حافظه مجازی یا مکانیزم مبادله (‪)swap‬‬
‫ساده در حافظه ثانویه نگهداری میشوند‪.‬‬

‫‪30‬‬
‫‪Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3‬‬
‫• جداول ورودی‪/‬خروجی توسط سیستمعامل برای مدیریت دستگاههای ورودی‪/‬خروجی و کانالهای‬
‫سیستم کامپیوتری استفاده میشود‪.‬‬

‫• در هر زمان معین‪ ،‬یک دستگاه ورودی‪/‬خروجی ممکن است در دسترس باشد یا به یک فرآیند خاص‬
‫اختصاص داده شود‪.‬‬

‫• اگر عملیات ورودی‪/‬خروجی در حال انجام است‪ ،‬سیستمعامل باید اطالعات زیر را بداند‪:‬‬

‫وضعیت عملیات ورودی‪/‬خروجی‬ ‫‪.1‬‬

‫‪ .2‬مکانی در حافظه اصلی که به عنوان منبع یا مقصد انتقال ورودی‪/‬خروجی استفاده میشود‪.‬‬

‫‪31‬‬
‫‪Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3‬‬
‫• سیستمعامل ممکن است جداول فایل را نیز نگهداری کند‪ .‬این جداول دارای اطالعات زیر میباشد‪:‬‬
‫• وجود فایلها‬

‫• موقعیت آنها در حافظه ثانویه‬

‫• وضعیت فعلی آنها‬

‫• سایر ویژگیها‬

‫• بسیاری از این اطالعات (اگر نگوییم همه)‪ ،‬ممکن است توسط یک سیستم مدیریتفایل نگهداری و‬
‫استفاده شوند‪ ،‬در این صورت‪ ،‬سیستمعامل اطالعات کمی از فایلها دارد‪.‬‬

‫‪32‬‬
‫‪Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3‬‬
‫• در نهایت‪ ،‬سیستمعامل باید جداول فرآیند را برای مدیریت فرآیندها نگهداری کند‪.‬‬

‫• حافظه‪ ،‬ورودی‪/‬خروجی و فایل‌ها به نمایندگی از فرآیندها مدیریت می‌شوند‪ ،‬بنابراین باید به‬
‫طور مستقیم یا غیرمستقیم به این منابع در جداول فرآیند اشاره شود‪.‬‬

‫• خود جداول باید توسط سیستمعامل قابل دسترس باشند و مشمول مدیریتحافظه هستند‪.‬‬

‫‪33‬‬
‫‪Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3‬‬
‫• جایی که فرآیند در آن‬
‫قرار دارد‪.‬‬ ‫برای مدیریت و‬
‫کنترل یک‬
‫• ویژگیهای فرآیند که برای‬ ‫فرآیند‪،‬‬
‫مدیریت آن ضروری‬ ‫سیستمعامل‬
‫است‪(.‬شناسه فرآیند و وضعیت‬ ‫باید بداند‪:‬‬
‫فرآیند)‬

‫‪34‬‬
‫‪Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3‬‬
‫• قبل از اینکه بتوانیم به سؤاالتی بپردازیم که یک فرآیند در کجا واقع شده است یا ویژگیهای آن‬
‫چیست‪ ،‬باید به یک سؤال اساسیتر بپردازیم‪ :‬تجلی فیزیکی یک فرآیند چیست؟‬

‫‪35‬‬
‫‪Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3‬‬
‫• یک فرآیند باید شامل یک برنامه یا مجموعهای از برنامهها و دادههای مرتبط باشد که باید اجرا شوند‪.‬‬

‫• یک فرآیند حداقل از حافظه کافی برای نگهداری برنامهها و دادههای آن فرآیند تشکیل شده است‪.‬‬

‫• برای اجرای یک برنامه نیاز به یک پشته است‪.‬‬

‫• هر فرآیند دارای تعدادی ویژگی است که توسط سیستمعامل برای کنترل فرآیند استفاده میشود‪ .‬به طور‬
‫معمول‪ ،‬مجموعهای از ویژگیها به عنوان یک بلوک کنترل فرآیند نامیده میشود‪.‬‬

‫• میتوانیم به این مجموعه از برنامه‪ ،‬داده‪ ،‬پشته و ویژگیها به عنوان تصویر فرآیند (‪)Process Image‬‬
‫اشاره کنیم‪.‬‬

‫‪36‬‬
‫‪Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3‬‬
37
Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3
:‫• ما میتوانیم اطالعات بلوک کنترل فرآیند را به سه دسته کلی گروهبندی کنیم‬
)Process Identification( ‫ شناسایی فرآیند‬.1

)Processor State Information( ‫ اطالعات وضعیت پردازنده‬.2

)Process Control Information( ‫ اطالعات کنترل فرآیند‬.3

38
Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3
39
Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3
40
Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3
41
Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3
42
Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3
‫هر تصویر فرآیند شامل یک بلوک‬
‫کنترل فرآیند‪ ،‬یک پشته کاربر‪،‬‬
‫فضای آدرس خصوصی فرآیند و هر‬
‫فضای آدرس دیگری است که‬
‫فرآیند با سایر فرآیندها به اشتراک‬
‫میگذارد‪ .‬در شکل‪ ،‬هر تصویر‬
‫فرآیند به عنوان یک محدوده‬
‫پیوسته از آدرسها ظاهر می شود‪.‬‬
‫در اجرای واقعی‪ ،‬ممکن است اینطور‬
‫نباشد‪ .‬این به طرح مدیریتحافظه و‬
‫نحوه سازماندهی ساختارهای کنترل‬
‫توسط سیستمعامل بستگی دارد‪.‬‬

‫‪43‬‬
‫همانطور که قبال گفته شده است‬
‫بلوک کنترل فرآیند ممکن است‬
‫حاوی اطالعات ساختاری‪ ،‬از جمله‬
‫اشارهگرهایی باشد که امکان پیوند‬
‫بلوکهای کنترل فرآیند را فراهم‬
‫میکند‪ .‬بنابراین‪ ،‬صفهایی که در‬
‫بخش قبل توضیح داده شده است‬
‫میتوانند به عنوان لیستهای پیوندی‬
‫بلوکهای کنترل فرآیند پیادهسازی‬
‫شوند‪.‬‬

‫‪44‬‬
‫• بلوک کنترل فرآیند مهمترین ساختار داده در یک سیستمعامل است‪:‬‬
‫• هر بلوک کنترل فرآیند حاوی تمام اطالعات مربوط به یک فرآیند است که توسط سیستمعامل مورد‬
‫نیاز است‪.‬‬

‫• بلوک‌ها تقریب‌اً توسط هر ماژول در سیستم‌عامل‪ ،‬از جمله مواردی که با زمان‌بندی‪ ،‬تخصیص منابع‪،‬‬
‫پردازش وقفه‪ ،‬و نظارت و تحلیل عملکرد مرتبط هستند‪ ،‬خوانده و‪/‬یا اصالح می‌شوند‪.‬‬

‫• میتوان گفت که مجموعه بلوکهای کنترل فرآیند وضعیت سیستمعامل را مشخص میکند‪.‬‬

‫• مشکل طراحی‪:‬‬
‫• دسترسی ساده است اما محافظت سخت است‪.‬‬

‫‪45‬‬
‫‪Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3‬‬
‫مد‌هسته‬ ‫مد‌کاربر‬

‫• حالت‌با‌امتیاز‌بیشتر‬ ‫• حالت‌با‌امتیاز‌کمتر‬

‫• همچنین‌به‌عنوان‌مد‌سیستم‌یا‌‬ ‫• برنامههای‌کاربر‌در‌این‌مد‌اجرا‌‬
‫مد‌کنترل‌نیز‌نامیده‌میشود‪.‬‬ ‫میشوند‪.‬‬

‫• هسته‌سیستم‌عامل‬

‫‪46‬‬
‫‪Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3‬‬
47
Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3
‫• پردازنده چگونه میداند که در کدام حالت قرار است اجرا شود؟‬
‫• معموالً بیتی در ‪ PSW‬وجود دارد که مد اجرا را نشان میدهد‪.‬‬

‫• به عنوان مثال‪ ،‬پردازنده ‪ Intel Itanium‬را در نظر بگیرید که معماری ‪ 64‬بیتی ‪ IA-64‬را‬
‫پیادهسازی میکند‪.‬‬
‫• پردازنده دارای یک ثبات وضعیت ‪ PSR‬است که شامل یک قسمت ‪ CPL‬دو بیتی است‪ .‬سطح ‪ 0‬ممتازترین سطح است (مد‬
‫هسته)‪ ،‬در حالی که سطح ‪ 3‬کمترین (مد کاربر) است‪ .‬هنگامی که یک وقفه رخ میدهد‪ ،‬پردازنده بیشتر بیتهای موجود در ‪،PSR‬‬
‫از جمله فیلد ‪ CPL‬را پاک میکند‪ .‬این به طور خودکار ‪ CPL‬را روی سطح ‪ 0‬تنظیم میکند‪ .‬در پایان روال مدیریت وقفه‪،‬‬
‫دستورالعمل نهایی ‪ IRT‬است‪ .‬این دستورالعمل باعث میشود که پردازنده‪ ،‬مقادیر ثبات وضعیت ‪ PSR‬فرآیند قطع شده را بازیابی‬
‫کند که مد اجرا (مقادیر فیلد ‪ )CPL‬آن برنامه را بازیابی میکند‪.‬‬

‫‪48‬‬
‫‪Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3‬‬
‫• یک شناسه منحصربهفرد را به فرآیند جدید‬
‫اختصاص میدهد‪.‬‬

‫به فرآیند فضای حافظه اختصاص میدهد‪.‬‬ ‫•‬

‫بلوک کنترل فرآیند را راهاندازی میکند‪.‬‬ ‫•‬

‫پیوندهای مناسب را تنظیم میکند‪.‬‬ ‫•‬

‫سایر ساختارهای داده را ایجاد یا گسترش‬ ‫•‬


‫میدهد‪.‬‬

‫‪49‬‬
‫‪Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3‬‬
‫• در ظاهر‪ ،‬عملکرد تعویض فرآیند ساده به نظر میرسد‪ .‬در برخی مواقع‪ ،‬یک فرآیند در حال اجرا قطع‬
‫می‌شود و سیستمعامل فرآیند دیگری را به حالت ‪ Running‬اختصاص می‌دهد و کنترل را به آن‬
‫فرآیند می‌سپارد‪.‬‬

‫• با این حال‪ ،‬چندین مسئله طراحی مطرح شده است‪:‬‬


‫• چه رویدادهایی باعث تعویض فرآیند میشوند؟‬

‫• ما باید تفاوت بین تعویض مد اجرا و تعویض فرآیند را تشخیص دهیم‪.‬‬

‫• سیستمعامل برای دستیابی به تعویض فرآیند‪ ،‬چه کاری باید با ساختارهای داده مختلف تحت کنترل خود انجام‬
‫دهد؟‬

‫‪50‬‬
‫‪Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3‬‬
‫ در اینصورت سیستمعامل کنترل را از فرآیند در حال‬،‫• تعویض فرآیند ممکن است هر زمانی رخ دهد‬
.‫اجرا پس میگیرد‬

51
Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3
‫• وقفه ساعت (‪:)Clock interrupt‬‬
‫• برش زمانی (‪ :)time slice‬حداکثر مدت زمانی که یک فرآیند میتواند قبل از قطع شدن اجرا شود‪.‬‬

‫• وقفه ورودی‪/‬خروجی (‪:)I/O interrupt‬‬


‫• سیستم‌عامل تمام فرآیندهای مسدود شده مربوطه را به حالت آماده (و فرآیندهای مسدود‪/‬تعلیق شده را به‬
‫حالت آماده‪/‬تعلیق) منتقل می‌کند‪ .‬سیستمعامل تصمیم نهایی را میگیرد‪.‬‬

‫• خطای حافظه (‪:)Memory fault‬‬


‫• پردازنده برای کلمهای که در حافظه اصلی نیست با مرجع آدرس حافظه مجازی مواجه میشود‪.‬‬

‫‪52‬‬
‫‪Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3‬‬
‫• یک خطا (‪ )Error‬یا شرایط استثنا (‪ )Exception‬ایجاد شده در فرآیند در حال اجرا‪.‬‬

‫• سیستمعامل تعیین میکند که آیا وضعیت کشنده (‪ )Fatal‬است یا خیر‪.‬‬


‫• اگر بله تعویض فرآیند شکل میگیرد‪.‬‬

‫• اگر‌خیراقدام‌(‪‌)Action‬به‌ماهیت‌خطا‌و‌طراحی‌سیستمعامل‌بستگی‌دارد‪.‬‬

‫‪53‬‬
‫‪Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3‬‬
‫• اگر یک وقفه در انتظار باشد‪:‬‬

‫‪ .1‬شمارنده برنامه را روی آدرس شروع یک برنامه کنترلکننده وقفه (‪ )interrupt-handler‬تنظیم‬


‫میکند‪.‬‬

‫‪ .2‬از حالت کاربر به حالت هسته سوئیچ می‌کند‪ ،‬بنابراین کد پردازش وقفه ممکن است شامل‬
‫دستورالعمل‌های ممتاز باشد‪.‬‬

‫‪54‬‬
‫‪Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3‬‬
‫• واکشی اولین دستورالعمل روال کنترلکننده وقفه و ذخیره زمینه (‪ )context‬فرآینده قطعشده‪.‬‬

‫• زمینه ذخیرهشده شامل‪ :‬هرگونه اطالعاتی که ممکن است با اجرای کنترلکننده وقفه تغییر کند و برای از‬
‫سرگیری فرآیند در آینده نیاز باشد‪( .‬شمارنده برنامه‪ ،‬اطالعات پشته و سایر ثباتها ‪)...‬‬

‫• کنترلکننده وقفه معموالً یک برنامه کوتاه است که چند کار اساسی مربوط به یک وقفه را انجام میدهد‪:‬‬
‫• پرچم یا نشانگر را بازنشانی میکند که وجود یک وقفه را نشان میدهد‪.‬‬

‫• یک تاییدیه (‪ )acknowledgment‬برای نهادی که وقفه را صادر کرده است (مانند یک ماژول ‪ )I/O‬ارسال کند‪.‬‬

‫• یا در صورت وجود خطا سیگنالی را به فرآیندی که در خواست داده ارسال کند‪.‬‬

‫• در وقفه مربوط به ساعت‪ ،‬کنترل را به ‪ dispatcher‬میدهد‪.‬‬

‫• وقفه لزوما تعویض فرآیند را به دنبال نخواهد داشت‪ ،‬در این حالت توابع ذخیره و بازیابی اجرا میشوند‪.‬‬

‫‪55‬‬
‫‪Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3‬‬
‫• تعویض مد اجرا مفهومی متمایز از تعویض فرآیند است‪.‬‬

‫• تعویض مد اجرا ممکن است بدون تغییر وضعیت فرآیند‬


‫در حالت اجرا (‪ )Running‬است رخ دهد‪.‬‬

‫• اگر قرار است فرآیند در حالت اجرا به حالت دیگری‬


‫(آماده‪ ،‬مسدود و غیره) منتقل شود‪ ،‬سیستمعامل باید‬
‫تغییرات اساسی در محیط خود ایجاد کند‪.‬‬

‫‪56‬‬
‫‪Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3‬‬
‫‪ .1‬ذخیره اطالعات زمینه پردازنده‪ ،‬از جمله شمارنده برنامه و سایر ثباتها (مربوط به فرآیند در حال اجرا)‪.‬‬

‫‪ .2‬بروزرسانی ‪ PCB‬فرآیندی که در حالت اجرا است‪( .‬تغییر حالت اجرا به یک حالت دیگر)‬

‫‪ .3‬انتقال ‪ PCB‬فرآیند در حالت اجرا به صف مناسب (آماده‪ ،‬مسدود شده در رویداد ‪ ،i‬آماده‪/‬معلق)‪.‬‬

‫‪ .4‬انتخاب فرآیند بعدی (‪ )Next Process‬برای اجرا‪.‬‬

‫‪ .5‬بروزرسانی ‪ PCB‬فرآیند انتخاب شده‪.‬‬

‫‪ .6‬بروزرسانی ساختارهای داده مدیریت حافظه‪.‬‬

‫‪ .7‬بازیابی مقادیر زمینه (‪ )Context‬فرآیند انتخاب شده به زمانی که آخرین باز از حالت اجرا خارج شده‬
‫است‪.‬‬

‫‪57‬‬
‫‪Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3‬‬

You might also like