Chapter 3
Chapter 3
• پردازنده شروع به اجرای کد برنامه میکند و این موجودیت در حال اجرا را یک فرآیند در نظر
میگیریم.
2
Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3
• یک فرآیند میتواند به طور منحصربهفرد با تعدادی از عناصر ،از جمله موارد زیر مشخص شود:
• شناسه ( :)Identifierیک شناسه منحصربهفرد مرتبط با این فرآیند ،تا آن را از سایر فرآیندها متمایز کند.
• حالت/وضعیت ( :)Stateاگر فرآیند در حال اجرا باشد ،در وضعیت درحالاجرا ( )running stateاست.
• شمارنده برنامه ( :)Program counterآدرس دستور بعدی در برنامه که باید اجرا شود.
Program
Identifier State Priority
counter
3
Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3
• نشانگرهای حافظه ( :)Memory pointersشامل نشانگرهایی به کد برنامه و دادههای مرتبط با فرآیند و هر بلوک
حافظه مشترک با سایر فرآیندها.
• دادههای زمینه ( :)Context dataدادههایی هستند که در هنگام اجرای فرآیند در ثبات های پردازنده وجود دارند.
• اطالعات حسابداری ( :)Accounting informationاین ممکن است شامل مقدار زمان پردازنده و ساعت استفاده
شده ،محدودیتهای زمانی و غیره باشد.
• این امکان وجود دارد که یک فرآیند در حال اجرا را قطع کرده و بعداً
اجرا را از سر بگیرید ،گویی قطعی رخ نداده است.
5
Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3
• از دیدگاه پردازنده ،دستورات را از
مجموعه خود به ترتیبی که توسط
ثبات شمارنده برنامه مشخص
میشود ،اجرا میکند .با گذشت
زمان ،شمارنده برنامه ممکن است
به کد در برنامههای مختلف که
بخشی از فرآیندهای مختلف
هستند اشاره کند.
(:)dispatcher • توزیعکننده
برنامه کوچکی که پردازنده را از یک
فرآیند به فرآیند دیگر تغییر
میدهد.
6
رفتار یک فرآیند منفرد را با فهرست
کردن دنباله دستورالعملهایی که برای
آن فرآیند اجرا میشوند ،مشخص
میکنیم .چنین فهرستی به عنوان اثری
( )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
• فرآیند جدید ایجاد شده به عنوان فرآیند فرزند نامیده میشود. 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
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
• هنگامی که هیچ یک از فرآیندهای حافظه اصلی در حالت آماده نیست ،سیستمعامل یکی از فرآیندهای مسدودشده را به
یک صف تعلیق برروی دسیک انتقال میدهد.
• این یک صف از فرآیندهای موجود است که به طور موقت از حافظه اصلی حذف شده (به حالت تعلیق درآمده است).
• سپس سیستمعامل فرآیند دیگری را از صف تعلیق وارد میکند یا یک درخواست فرآیند جدید را اجرا میکند.
• مبادله یک عملیات ورودی/خروجی است و بنابراین امکان بدتر کردن مشکل وجود دارد ،اما از آنجایی که ورودی/خروجی
دیسک معموالً سریعترین ورودی/خروجی در یک سیستم است (نسبت به پرینتر و غیره) ،مبادله معمو الً عملکرد را بهبود
میدهد.
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
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
سیستمعامل از چهار نوع •
جدولورودی/خروجی .2
جدولفایل .3
جدولفرآیند .4
29
• جداول حافظه برای ردیابی حافظه اصلی (واقعی) و ثانویه
تخصیصحافظهاصلیبهفرآیندها
(مجازی) استفاده میشود.
تخصیصحافظهثانویهبهفرآیندها • قسمتی از حافظه اصلی برای استفاده توسط سیستمعامل رزرو
هرگونهویژگیحفاظتیبلوکهای شده است .باقیمانده برای استفاده توسط فرآیندها در دسترس
حافظهاصلییامجازی است.
هرگونهاطالعاتموردنیازبرای
مدیریتحافظهمجازی • فرآیندها با استفاده از حافظه مجازی یا مکانیزم مبادله ()swap
ساده در حافظه ثانویه نگهداری میشوند.
30
Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3
• جداول ورودی/خروجی توسط سیستمعامل برای مدیریت دستگاههای ورودی/خروجی و کانالهای
سیستم کامپیوتری استفاده میشود.
• در هر زمان معین ،یک دستگاه ورودی/خروجی ممکن است در دسترس باشد یا به یک فرآیند خاص
اختصاص داده شود.
• اگر عملیات ورودی/خروجی در حال انجام است ،سیستمعامل باید اطالعات زیر را بداند:
.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
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حداکثر مدت زمانی که یک فرآیند میتواند قبل از قطع شدن اجرا شود.
52
Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3
• یک خطا ( )Errorیا شرایط استثنا ( )Exceptionایجاد شده در فرآیند در حال اجرا.
• اگرخیراقدام()Actionبهماهیتخطاوطراحیسیستمعاملبستگیدارد.
53
Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3
• اگر یک وقفه در انتظار باشد:
.2از حالت کاربر به حالت هسته سوئیچ میکند ،بنابراین کد پردازش وقفه ممکن است شامل
دستورالعملهای ممتاز باشد.
54
Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3
• واکشی اولین دستورالعمل روال کنترلکننده وقفه و ذخیره زمینه ( )contextفرآینده قطعشده.
• زمینه ذخیرهشده شامل :هرگونه اطالعاتی که ممکن است با اجرای کنترلکننده وقفه تغییر کند و برای از
سرگیری فرآیند در آینده نیاز باشد( .شمارنده برنامه ،اطالعات پشته و سایر ثباتها )...
• کنترلکننده وقفه معموالً یک برنامه کوتاه است که چند کار اساسی مربوط به یک وقفه را انجام میدهد:
• پرچم یا نشانگر را بازنشانی میکند که وجود یک وقفه را نشان میدهد.
• یک تاییدیه ( )acknowledgmentبرای نهادی که وقفه را صادر کرده است (مانند یک ماژول )I/Oارسال کند.
• وقفه لزوما تعویض فرآیند را به دنبال نخواهد داشت ،در این حالت توابع ذخیره و بازیابی اجرا میشوند.
55
Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3
• تعویض مد اجرا مفهومی متمایز از تعویض فرآیند است.
56
Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3
.1ذخیره اطالعات زمینه پردازنده ،از جمله شمارنده برنامه و سایر ثباتها (مربوط به فرآیند در حال اجرا).
.2بروزرسانی PCBفرآیندی که در حالت اجرا است( .تغییر حالت اجرا به یک حالت دیگر)
.3انتقال PCBفرآیند در حالت اجرا به صف مناسب (آماده ،مسدود شده در رویداد ،iآماده/معلق).
.7بازیابی مقادیر زمینه ( )Contextفرآیند انتخاب شده به زمانی که آخرین باز از حالت اجرا خارج شده
است.
57
Operating Systems Principles | Department of Computer Science | University of Mazandaran | Chapter 3