سئوال 1: در   multi program  چه  موقع عمل  switching    انجام می گیرد؟  وقت I/O

 

سئوال 2: در   multi task   چه  موقع عمل  switching    انجام می گیرد؟  در یک برهه زمانی  یعنی فقط منتظر عمل I/O   

 

  نمی ماند  اگر به I/O   بر خورد کند switch   می کند.  ولی اگر به I/O   بر خورد نکند و آن برهه زمانی بگذرد بازهم switch می کند. یعنی پردازنده از آن گرفته می شود.

 

نکته1: یک سیستم   عامل  میتواند چند برنام ه(Multi program)  باشد ولی  چند  وظیفه ای(Multi  Task) نباشد. مثل ویندوز 1و2و3

چون فقط به I/O   برخورد می کردند پردازنده Switch  می کرد.

 

نکته2: یک سیستم   عامل  که هم  چند برنامه(Multi program) و هم  چند  وظیفه ای(Multi  Task) باشد. مثل ویندوز 95و98

 

 چون اگر چند پنجره را باز کنید می بینید همه پنجره ها در حال فعلیت هستند. یعنی پردازنده ما بین آنها Switch   می کند .

 

نکته 3: اشتراک زمانی (Time Sharing ) وقتی است که سیستم چند کاربره(Multi User) باشد.

 

 

مثال :  وینوز 2000  و time sharing  و multi task است.  N   تا کاربر بتوانند از طریق شبکه به  یک سیستم وصل شوند و کاملا منابع اش را به اشتراک بگذارد. در ویندوز NT - n  تا کاربر به آن سیستم می یابند و از منابع سیستم استفاده می کنند.

 

نکته 4:  در وینروز95و 98 همه منابع غیر از حافظه و پردازنده را می توانیم به اشتراک بگذاریم.ولی در وینروز NT  و ویندوز 2000و یونیکس همه منابع را می توانیم به اشتراک بگذاریم.

 

 

 

دو نکته  ضرورت چند وظیفه ای  بودن را روی کامپیوتر های شخصی موجب شده اند.{استالینگ    87}

1- با افزایش سرعت و ظرفیت ریز پردازند ه ها و با حمایت از حافظه مجازی ، کاربر ده پیچیده تر و مرتبتر  شده اند .

 

برای مثال ممکن است کاربران بخواهند یک برنامه ، word    ، یک برنامه Excel    ، یک برنامه Autocad

 

 را به طور همزمان  برای ایجاد یک سند به کار برند.

1-       باز کردن برنامه Autocad

2-       رسم شکل و ذخیره آن

3-       بستن برنامه Autocad

4-       بازکردن Word

5-       درج شکل در محل مناسب

 

در محیط چند وظیفه ای کاربر هر یک  از کاربرد های مورد نیاز خود را باز کرده و به صورت باز رها می کند . و

اطلا عات به سادگی می تواند بین  چند کاربرد حرکت کند.

ولی در تک وظیفه ای  اگر تغییری در شکل لازم باشد کاربر باید برنامهWord   را ببندد، برنامه Autocad را باز کند ، شکل را ویرایش و ذخیره نماید ، برنامه Autocad راببندد، برنامه  Wordرا باز کند ودر نهایت شکل  ویرایش شده را درج کند . که خیلی ملال آور است.

 

1-       برای عملکر چند وظیفه ای ، رشد به کار گیری کامپیوتر به صورت مشتری / خدمتگزار(Client/Server) می باشد.  در این دید گاه یک کامپیوتر شخصی (Client ) و یک سیستم میزبان(Server) مشتر کا، برای انجام یک کاربرد،خاص، بک کار گرفته شده اند. این تر تیب در یک کاربرد ممکن است یک یا چند کامپیوتر شخصی و یک یا چند دستگاه خدمتگزار (Client ) در گیر باشند.

 

برای هر کدام  از وقفه ها ما سرویس  روتین مربوط به خودش را داریم .

 

 

 

تعویض فرآیند:  زمانیکه  فرآیند در حال اجرا با وقفه مواجه می شود و سیستم عامل  فرآیند دیگری را برای  اجرا در نظر می گیرد و کنترل را به آن منتقل می کند.ولی  چند نکته طراحی مطرح می شود . اولاٌ ، چه حادثهای موجب شروع یک تعویض می گردد؟ دوماٌ تفاوت  بین تعویض متن(Context Switching) و تعویض فرآیند context  Process)چیست؟ سوماٌ برای تعویض فرآیند  سیستم عامل چه اعمالی را روی  ساختمان داده ایی که تحت کنترل دارد، باید انجام دهد؟

 

تفاوت  بین تعویض متن(Context Switching) و تعویض فرآیند context  Process)چیست؟{استالینگ 143}

فرآیندی که در حال اجراست ، به وسیله یک وقفه (حادثه ای که خارج از فرآیند بروز کرده و پردازنده آن را تشخیص می دهد) یا با اجرای یک System Call  از سیستم عامل ، دچار وقفه می شود. در هر صورت ، پردازنده یک عمل تعویض حالت() انجام می داده و کنترل را به یک روال سیستم عامل منتقل می کند.بعد از انجام عمل لازم ، ممکن است سیستم عامل  فرآیند ی که دچار وقفه شده بود را از سر گیرد و یا فرآیند دیگری را فعال نماید.{استالینگ 156}

 

 

چه چیزی متن (وضعیت) ذخیره شده را تشکیل می دهد؟

هر اطلاعی که بتواند با اجرای سرویس روتین  وقفه تغییر کند و برای از سرگیری  برنامه  وقفه داده شده  لازم باشد باید ذخیره گردد. بنابراین شامل بلوک کنترل فرآیند(PCB) باید ذخیره گردد.{ استالینگ 143}

 

 

 

مفاهیم   فرآیند(Process-فرآروند- پردازه- پروسه -پردازش)

 

فرآیند چیست؟برنامه در حال اجرا  را Process   گویند.

تعریف مفیدتر فرآیند: هر وقت یک  Job  را  برای اجرا انتخاب می کند ، گوئیم فرآیند تا زمانی کهJob  خاتمه پیدا کند.

فرآیند(process)  مفهومی دینامیکی است منظور اینست Running   عوض می شود یعنی دائماٌ در CPU ، Flag ها و Register   ها ،  Stack   ها و Data   ها عوض می شوند.

هر فرآیند دارای   فضای آدرس ( Address Space)   مخصوص به خود است . فضای آدرس  شامل برنامه اجرایی ، داده ای برنامه و پشته آن است.  همچنین هر فرآیند برای خودش یک مجموعه از رجیستر ها دارد، شامل شمارنده برنامه ، اشاره گر پشته ( Stack Pointer ) و دیگر رجیستر ها ی سخت افزاری ، همینطور همه اطلا عات دیگری که برای اجرای برنامه  مورد نیاز  است.

 

عیناٌ یک کپی از فضای آدرس  فرآیند بر روی فضای Swap  دیسک وجود دارد که  Process Core Image   گویند .

در واقع تصویر حافظه اصلی فرآیند بر روی حافظه جانبی  است.

 

Core :  حافظه اصلی (چمره ای )   که در حال حاضر استفاده نمی شود..

1-  هر وقت فرآیند بخواهد اجرا شود یک کپی را از دیسک می آورد  در حافظه   می گذارد.

2- Core Image

 

بازگشت به دیسک Suspond   خواهد بود . در سیستم های قبلی  که سیستم Swap   باشند.

 

نکته : اگر فرآیند ها نیاز  به اجرای برنامه خارجی داشته  باشند (جزو خودشان نیست)  باید  یک فرزند ایجاد کنند، فرزند یک فرآیند، خودش فرآیند است . و فرزندان ، فرزندان هم می توانند فرزند  ایجاد کند یعنی ساختار درختی  داریم . در Unix

 

  این ساختار واحد است و حتی درخت واحد فایلها  هم دارد.

 

مثال :در    بعضی unix  ها وقتی Start up   می کند ، فرزند ی  می سازد  به نام Init   بعد سیستم عامل می بیند کدام ترمینالها رو شن هستند  به تعداد آنها فرزند به  نام   Login می سازد.

 

Init

Login

Shell

Dir

cp

 

نکته : در سیستم Unix  : اگر  فرآیند پدر از بین برود . فرآیند  فرزند اطلاعات را به فرآیند Init   داده می شود . هنگامیکه  سیستم بوت می شود فرآیند Init   که جد تمام فرآیند ها است.به وجود می آیئد. فرآیند پد همیشه منتظر فرآیند فرزند است . هر فرآیندی  یک پدر دارد که اطلا عات به آن بر می گردد.

 



:: موضوعات مرتبط: سیستم عامل
ن : مهدی تقوی
ت : چهارشنبه نهم دی 1388
 
جهت اطلاع از تنظیمات و ویــــرایش این قالب اینجا را کلیک کنید.

.:: کلیک کنید ::.