PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : سوال درخواست کمک برای انجام تحقیق



ازهار
21st October 2009, 10:17 AM
با سلام خدمت دوستان گرامی@};-
من در درس سیستم عامل تحقیقی میخوام انجام بدم، اما مطلبی در مورد اون موضوع پیدا نمی کنم،نه در اینترنت نه در کتاب و پی دی اف ها{worried}{worried}.اگه ممکنه از شما دوستان خوب کمک می خواستم.{happy}
من می خوام در مورد نحوه ی ایجاد فرایند توسط سیستم عامل اطلاعاتی جمع آوری کنم.
طبق گفته ی استادمون هنگامی که کاربر جدیدی درخواست انجام فرایندی رو داره،فرایندی که در صف فرایندهای مسدود برای حادثه ی ورودی است و فرایند مانیتور نام داره باعث ایجاد این فرایند جدید میشه.حال من باید اطلاعاتی در مورد نحوه ی کار کردن این فرایند به دست بیارم مثل اینکه مثلا این فرایند منتظر ومسدود برای چه نوع ورودی هست و هنگامی که ورودی ای اتفاق می افته سیستم چگونه متوجه میشه که این ورودی مختص فرایند مانیتور هست و باید این فرایند اجرا شده و باعث ایجاد فرایند جدید، با شناسه ی کاربر تازه ای که میخواهد از سیستم استفاده کند،می شود.
و همچنین در مورد اینکه هنگامی که سیستمی تازه بالا میاد و هیچ فرایندی در صفوف آماده و مسدود و اجرا وجود نداره چه ترفندی برای درخواست ایجاد فرایند جدید توسط سیستم عامل وجود داره و عملکرد اون به چه صورت هست
ممنون می شم اگه اطلاعاتی رو که در این باره دارید در اختیارم بگذارید و یا منبعی که این اطلاعات رو داشته باشه بهم معرفی کنید @};-@};-

ازهار
22nd October 2009, 10:38 AM
8->

ØÑтRдŁ§
22nd October 2009, 11:57 AM
سلام دوست عزیز..
راستش من که کامپیوتری نیستم ولی یکی دوتا از بچه ها رو میشناسم..
بهشون خبر دادم که اگه اطلاعی دارند در اختیارتون بزارند..
(قولش رو گرفتم);)
منم مثل شما منتظرم..

ازهار
22nd October 2009, 05:15 PM
واقعا ممنون.بی صبرانه منتظرم;;)
دیگه نمی دونم برای سرچ چه عبارتی رو بزنم تا مطلبی که می خوام رو پیدا کنم:-/.هر عبارتی به ذهنم می رسید امتحان کردم اما اصلا جواب نگرفتم{worried}

Admin
22nd October 2009, 06:48 PM
سلام

دوست من ازهار ... سوالی که کردید کمی وقت بره توضیحاتش ... برای همین باید کمی صبور باشی تا جوابت رو در همین بخش بدم.

موفق باشی ;)

moji5
23rd October 2009, 02:11 PM
همه موضات محوری در طراحی سیستم عامل به مدیریت فرایند ها و نخ ها مربوط است.

چند برنامه ای : مدیریت فرایند فرایندهای متعدد در داخل یک کامپیوتر تک پردازنده ای.
چند پردازشی: مدیریت فرایند فرایندهای متعدد در داخل یک کامپیوتر چند پردازنده ای.
پردازش توزیعی: مدیریت فرایند فرایندهای متعدد در روی سیستم های کامپیوتری متعدد.
برای هر سه زمینه فوق مسئله هم زمانی است.
همزمانی در سه زمینه متفاوت طراحی می گردد:

کاربردهای متعدد: زمان پردازش کامپیوتر به طور پویا بین تعدادی کار یا کاربرد بتواند تقسیم گردد.

کاربرد ساختیافته: بعضی از کاربردها رابه صورت مجموعه ای از فرایندهای همزمان،به طورکارامد برنامه سازی کرد.

ساختار سیستم عامل: همین امتیاز ساختاردهی ،برای برنامه ساز سیستم نیز قابل اعمال است.
نیاز اصلی برای حمایت از فرآیند های همزمان، توان اعمال ا نحصار متقابل است.


یعنی وقتی به یک فرآیند قدرت انجام عملی داده شد. بتوان تمام فرایندها دیگررا از این قدرت بازداشت.
اصول همزمانی

در سیستم های چند پردازنده ای ،نه تنها ممکن است فرایند ها در بین یکدیگر اجرا شوند،بلکه می توانند واقعا به موازات هم و با همپوشانی اجرا گردند.

در این روش مشکلات زیر پیش می آید:

1- اشتراک منابع سراسری پر مخاطره است.
2- مدیریت تخصیص بهینه منابع برای سیستم عامل است
3- تعیین محل خطای برنامه سازی مشکل می شود.

ملاحظات سیستم عامل در همزمانی:
سیستم عامل باید به تواند فرایندهای فعال مختلف را دنبال کند که این کار توسط بلوک های کنترل فرایند انجام می شود.
سیستم عامل باید منابع را به هر یک از فرایند ها تخصیص دهد و یا باز پس بگیرد از جمله:

(وقت پردازنده، حافظه، پرونده هاريا، دستگاههای ورودی و خروجی)

سیستم عامل باید داده ها و منایع فیزیکی هر فرایند را در مقابل دخالت نا خواسته فرایند دیگر محافظت کند.
نتایج یک فرایند باید مستقل از سرعت پیشرفت اجرای فرایند های همزمان دیگر باشد.

محاوره فراینده ها:
محاوره فرآیندها : ارتباطات بین فرآیندها و نخ ها

بی اطلاعی فرایند ها از یکدیگر: فرایند ها مستقل هستند.

اطلاع غیر مستقیم فرایندها از یکدیگر : دسترسی به بعضی از اشیاء یکدیگر.

اطلاع ار یکدیگر :با نام ، با یکدیگر در ارتباط هستند.
هنگامی که چند فرایند برای استفاده از یک منابع فعالیت می کنند درگیری دارند که
شرایط اساسی در راه حل صحیح :

انحصار متقابل در اجرای بخش بحرانی.

فعالیت های محدوده زمانی در هر بخش.

تعداد مرتبه های رفتن به ناحیه بحرانی در حضور منتظران محدود است.
هیچ فرضی نسبت به طول دستورات و سرعت اجرا نمی باشد.

فرایند:حلقه همیشگی.

در پایان بن بست به باقی فرایند ها پیامی ارسال می گردد.

گرسنگی.

همکاری فرایند ها توسط اشتراک:

فرایندهایی را پوشش می دهند که با یکدیگر محاوره می کنند، بدون اینکه صراحتا از یکدیگر مطلع باشند.

مسئله کنترل انحصار متقابل ، بن بست ،گرسنگی باز وجود دارد و داده در دو حالت ممکن خواندن و نوشتن مورد دسترسی قرار می گیرند و تنها مورد نوشتن باید در انحصار متقابل قرار گیرد.

همکاری فرایند ها توسط ارتباط:

هر فرایند محیط مجزای خود را دارد و فرایند های دیگر را در بر ندارد.
محاوره بین فرایند ها غیر مستقیم است و فرایند ها صراحتا از محل یکدیگر اطلاع شندارند.

ارتباط را با نوعی پیام مشخص می کنند.

مسئله بن بست و گرسنگی وجود دارد.
ملزومات انحصار متقابل:
انحصار متقابل باید اعمال گردد:

فرایندی که در بخش غیر بحرانی خود متوقف می شود ، باید طوری عمل کند که هیچ دخالتی در فرایند های دیگر نداشته باشد .

برای فرایندی که نیاز به دسترسی یک بخش بحرانی دارد،نباید به تاخیر انداختن نا محدود آن وجود داشته باشد ، بن بست یا گرسنگی نمی تواند مجاز باشد.
هنگامی که هیچ فرایندی در ناحیه بحرانی نیست ورود یک فرایند بدون تاخیر است.

هیچ فرضی در باره تعداد فرایند ها و یا سرعت آن داشت.

هر فرایندی تنها برای زمان محدودی در ناحیه بحرانی قرار می گیرد.

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

الگوریتم DEKKER:

برای انحصار متقابل دو فرایند ،الگوریتمی را منتشر کرد .
امتیاز این رویکرد آن ایت که حداکثر خطاهای متداول در ایجاد برنامه های همزمان ،تشریح می شود.

الگوریتم Peterson :

آرایه سراسری flag نمایانگر وضع هر فرایند نسبت به انحصار متقابل است و متغییر سراسری turn در گیریهای همزمانی را حل می کند.

انحصار متقابل: حمایت سخت افزار
از کار انداختن وقفه:

در یک ماشین تک پردازنده ،هم زمان نمی شود فرایند ها وارد ناحیه بحرانی شوند.

برای ضمانت انحصار متقابل ،کافی است از مواجهه فرایند با وقفه جلوگیری شود.
چون بخش بحرانی نمی تواند وقفه داده شود، لذا انحصار متقابل ضمانت شده است.

کارایی اجرایی به طور متقابل کم می شود.

این روش در معماری چند پردازندهای کارایی ندارد.


دستور العمل آزمون و مقدار گذاری:
دراین روش هر فرایند در هنگام وارد شدن به ناحیه بحرانی مقدار متغییر را یک می کند و هنگام خارج شدن آن را صفر می کند ،هنگامی که مقدار یک می باشد هیچ فرایندی اجازه ورود به این ناحیه را ندارد.
ویژگیهای رویکرد دستورالعمل ماشین:
برای هر تعداد از فرایندها ،روی یک پردازنده و یا چند پردازنده که از حافظه مشترک استفاده می کنند ،قابل به کارگیری است.

ساده است و لذا وارسی آن آسان می باشد.

از آن برای حمایت از بخسهای بحرانی متعدد می توان استفاده کرد.
معایب رویکرد دستورالعمل ماشین:
انتظار مشغول جود دارد.

امکان گرسنگی وجود دارد.
راهنماها:
برای علامت دهی بین فرایند ها و اعمال یک نظام انحصار متقابل استفاده کرد.

اصل اساسی این است که دو یا چند فرایند بتوانند به وسیله علائم سادهای با یکدیگر همکاری کنند.

برای علامت دادن از متغییر ویژه ای به نام راهنما استفاده می کند.

برای فرستادن علامت توسط راهنمای s،فرایند اولیه signal( s ) را اجرا می کند.

->برای دریافت علامت توسط یک راهنمای s ،فرایند اولیه wait(s) را اجرا می کند.

اگر علامت مربوط ، هنوز فرستاده نشده باشد ،این فرایند تا زمان ان،معلق می ماند.

ناظرها:
ساختاری از زبان بزنامه سازی است که کار راهنما را انجام می دهد و کنترل آن هم ساده تر است.
ساختار ناظر در تعدادی از زبانهای برنامه سازی ازmodulaو ... وبه صورت کتابخانه ای پیاده سازی می شود.
این افراد اجازه می دهد تا قفل های ناظر در روی هر شئ
بگذارد.
در عمل مانند لیست پیوندی است.

ناظر با علامت:
مولفه ای نرم افزاری مشتمل بر یک یا چند رویه، دنباله ای از مقدار گذاری اولیه و داده های محلی است .

دارای ویژگی های :


متغییرهای داده محلی ناظر تنها برای رویه های خود ناظر قابل دسترسی بوده و هیچ رویه دیگری به آنها دسترسی ندارد .




یک فرایند با احضار یکی از رویه های ناظر ،وارد ان می شود.




در هر زمان تنها یک فرایند می تواند در ناظر در حال اجرا باشد.

دو تابعی که روی متغییر شرطی عمل می کند عبارتند از:

Cwait(c) : اجرای یک فرایند صدا کننده را روی شرط c معلق می کند.

Csignsl(c) : اجرای یک فرایندی که بعد از یک عمل cwait ، روی همان شرط معلق بوده است را از سر می گیرد.

تبادل پیام:
پیام ها برای انحصار متقابل مفید هستند.
ابزاری موثری را برای ارتباط بین فرآیندها فراهم می کند.
هنگامی که دو فرآیند با یکدیگر ارتباط برقرارمی کند ،دو نیاز بنیادی همگام سازی و ارتباط باید تامین می شود.
فرایند ها نیاز به همگامسازی دارند تا انحصار متقابل تامین شوند.


Send (destination,message)


Receive(source,message)


همگام سازی

در هنگام تبادل پیام سه ترکیب زیر متداول است :
مسدود شدن فرستنده ،مسدود شدن گیرنده:
گاهی به این قرار ملاقات میگویند.همگام سازی بین فرایند ها را محکم می کند.
مسدود نشدن فرستنده ،مسدود شدن گیرنده:
گیرنده تا رمان ورود پیام مسدود است.
مسدود نشدن فرستنده ، مسدود نشدن گیرنده .
آدرس دهی:
آدرس دهی مستقیم:


Send شامل شناسه آدرس فرایند مقصد.
receive یا صریح بیان می کند یا ضمنی.

آدرس دهی غیر مستقیم:
پیام ها مستقیما از فرستنده به گیرنده فرستاده نمی شوند بلکه به یک ساختمان داده مشترک ارسال می گردد.
این ساختمان داده دارای صفهایی است که به آن ها صندوق پستی می گویند.
انتساب پیام به صندوق پستی می تواند : پویا و ایستا باشد.

ایستا: به یک فرایند نسبت داده می شود.

پویا: هنگامی که فرستنده های زیادی وجود داشته باشد.


ارتباط غیر مستقیم فرایندها:

http://i36.tinypic.com/ot2rf7.jpg (http://tinypic.com/)

قالب پیام:
قالب پیام شامل:


سرآمد:حاوی اطلاعات درباره پیام.
بدنه:حاوی خود پیام.


http://i36.tinypic.com/i5c60p.jpg (http://tinypic.com/)
نظام صف بندی
FIFO ساده ترین نظام صف بندی

اولیت پیام بر اساس نوع پیام

اولیت پیام توسط فرستنده

اولیت پیام توسط گیرنده (بازرسی صف پیامها و انتخاب پیام بعدی)

moji5
23rd October 2009, 02:12 PM
فرآیند دو خصوصیت زیر را دارد:

- تملک منبع: ( فرآیند یا وظیفه )
به هر فرآیند یک آدرس مجازی برای نگهداری تصویر فرآیند می دهد.

- توزیع وقت فرآیند: ( نخ یا فرآیند سبک وزن )
فرآیند مسیر اجرای یک یا چند برنامه است و توسط سیستم عامل مورد زمان بندی و توزیع قرار می گیرد.

چند نخی:
به قابلیتی از سیستم که امکان اجرای چند نخ را حمایت می کند.

تک نخی: به رویکرد سنتی یک نخ اجرا در هر فرآیند .

مانند MS-DOS از فرآیند تک کاربره و از یک نخ حمایت می کند.

UNIX از چند کاربر ولی تنها از یک نخ حمایت می کند.

موتور زمان اجرا یjava نمونه سیستمی از یک فرآیند چند نخی است.
در سيستمهاي عامل هاي زیرازسيستم جند نخي استفاده شده است
Windows NT ; solaris ; Mach ; os/2
موارد همراه فرآیند:
فضای آدرس مجازی که تصویر فرآیند را در بر دارد.
دسترسی حفاظت شده به فرآیند.
حالت اجرای نخ.
متن ذخیره شده.
پشته اجرا.
مقداری حافظه ایستا برای متغییرهای محلی هر نخ.
دسترسی به منابع و حافظه فرآیند.
مقاسیه فرآیند تک نخی و چند نخی:
فرآیند چند نخی:
یک بلوک کنترل فرآیند،فضای آدرس فرآیند،برای هر نخ پسته جدا گانه و بلوک کنترل جدا گانه و ... وجود دارد.
تمام نخ های فرآیند ،در حالت و منابع آن فرآیند شریک هستند.
در یک فضای آدرس هستندوبه داده های یکسانی دسترسی دارند.
فرآیند تک نخی:
شامل بلوک کنترل ،فضای آدرس فرآیند،فضای آدرس فرآیند،پشته کاربر،هسته یرای مدیریت و ... است.
حالات نخ :
ایجاد (زایش):
با ایجاد یک فرآیند ،نخ هم ایجاد می شود.
مسدود شدن:
تا بروز حادثه نخ مسدود می شود.
رفع مسدود بودن:
اتفاق حادثه لازم.
پایان:
با تکمیل یک نخ ،متن ثبات و پشته هایش آزاد می شود.
همگام سازی نخ ها
تمام نخ ها یک فرآیند در فضای آدرس و در منابع دیگر شریک هستند به همین تغییر در هر یک از منابع توسط یک نخ در محیط سایرین تغییر ایجاد می کند لذا همگام سازی فرآیند ها ضروری است.

به دو دلیل از نخ جداگانه برای رسم مجدد صفحه نمایش استفاده می کنند:

1-page maker تعدادشیء هایی که در روی یک صفحه است را محدود نکند.

2-استفاده از نخ جداگانه،امکان قطع کردن رسم را در اختیار می گذارد.

نخهای سطح کاربر
کار مدیریت توسط کاربر انجام می شود.
هسته از وجود این نخ ها بی اطلاع است.
از کتابخانه ها برای مدیریت نخها استفا ده می کنند.
هر کاربردی با یک نخ شروع می شود و شروع اجرایش از همان نخ است.
هرگاه این نخ در حال اجرا باشد می توان نخ جدیدی را ایجاد کرد که به احضار کتابخانه منجر می شود.
الگوریتم زمانبندی آن ایجاد می شود تا آماده اجرا می شود.
نخهای سطح هسته
تمام کار مدیریت نخ توسط هسته انجام می شود.

کد مدیریت در ناحیه کاربرد وجود ندارد.

یک نخ واسط برنامه سازی کاربردی به نخ هسته وجود دارد.
امتیاز نخ سطح کاربر به سطح هسته:
تعویض نخ به حالت ممتاز نیاز ندارد.

کاربرد می تواند زمانبندی خاص داشته باشد

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

اشکال نخ های سطح کاربر به سطح هسته:
اکثر فراخوانی های سیستم مسدود کننده هستند.

کاربرد چند نخی نمی تواند از امتیازات چند پردازشی استفاده کند.
رفع اشکال نخ های سطح کاربر به سطح هسته
نوشتن کاربردها به صورت فرآیندهای متعدد به جای نخ های متعدد که امتیاز اصلی نخ ها را از بین می برد.

راه حل غلبه بر نخ های مسدود کننده : استفاده از روشی به نام جلد کردن که هدف آن تبدیل فراخوانی سیستم از مسدود کننده به غیر مسدود کننده.
امتیاز نخ های سطح هسته:
(تمام کارمدیریت نخ توسط هسته انجام می شود.)

هسته می تواند به صورت هم زمان،نخ های چند گانه یک فرآند واحد را روی پردازنده های متعدد زمانبندی کند.

اگر نخی در یک فرآیند مسدود شد ،هسته می تواند نخ دیگری از آن فرآیند را بار گئاری کند.

<خود روالهای هسته نیز می تواند چند نخی باشد.

عیب اصلی نخ های سطح هسته:
انتقال کنترل از یک نخ به نخ دیگر در داخل یک فرآیند واحد نیز نیازمند تغییر به حالت هسته است.

رویکردهای ترکیبی:
ترکیبی از امکانات نخ سطح کاربر و نخ سطح هسته را فراهم می کند. مانند solaris .
ایجاد نخ به طور کامل در فضای کاربرد در داخل یک کاربرد صورت می گیرد.
به تعداد (کمتر یا مساوی) از نخ های سطح هسته نگاشته می شود.
نخ ها به موازات هم روی پردازنده های متعدد اجرا می شود.
یک فراخوان مسدود کننده کل سیستم را مسدود نمی کند.

moji5
23rd October 2009, 02:15 PM
نخها : فرآیندها
یک به یک
هر نخ اجرا یک فرآیند
مثال سیستم های عامل unix

چند به یک یک فرآیند یک فضای آدرس Windows NT



یک به چند یک نخ از یک محیط به دیگر رود ) Ra(clouds

چند به چند ترکیب چند به یک ویک به چند TRIX

moji5
23rd October 2009, 02:15 PM
روش های پیاده سازی رابط چند به چند:
تمام برنامه به صورت یک فرآیند واحد پیاده سازی شود.
از نظر مدیریت حافظه اشکالاتی دارد.
برنامه اصلی و زیر برنامه ورودی /خروجی به صورت دو فرآیند جداگانه پیاده سازی شوند. مستلزم سر بار اضافی است.
برنامه اصلی و زیر برنامه ورودی / خروجی به عنوان یک فعالیت و به صورت یک نخ پیاده سازی شود. ولی یک فضای آدرس ویکی برای زیربرنامه ورودی/خروجی ایجاد گردد. (بهترین روش است.)
معماری چند پردازشی متقارن:
FLYNN گروههای زیر را پیشنهاد کرده است:

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

جریان دستورالعمل چند گانه و داده های واحد: اجرای هم زمان تعدادی از دستورات پردازشی.
جریان دستورالعمل چند گانه و داده های چند گانه: اجرای هم زمان چنددستور بر روی چند داده.

جریان دستورالعمل واحد و داده های چند گانه: اجرای هم زمان چنددستور بر روی داده.

سازمان چند پردازنده متقارن:
هر یک واحد کنترل ،واحد حساب و منطق و ثباتهای خاص خود را دارند.

به یک حافظه اصلی مشترک دسترسی دارد.

پردازنده ها از طریق حافظه با یکدیگر در ارتباط هستند.

امکان تبادل مستقیم وجود دارد.
هر پردازنده از طریق یک گذرگاه مشترک به یک حافظه اصلی متصل است.
امکان دسترسی به بلوک ها مهیا است.

تغییر در یک حافظه پنهان سبب تغییر در حافظه پنهان دیگر می شود.(وابستگی حافظه پنهان)

با آن در سخت افزار بر خورد می شود.
ملاحظات طراحی سیستم عامل چند پردازنده ای:
هم زمانی فرآیند ها یا نخ ها: توسط هر یک از پردازنده ها انجام شود .

زمانبندی: توسط هر یک از پردازنده ها انجام شود .
همگام سازی:: ابزاری است برای تنظیم انحصار متقابل و تنظیم حادثه ها.

مدیریت حافظه: باید سخت افزار مناسب را بهره جوید.

قابلیت اطمینان و تحمل خرابی: در برخورد با خرابی با ید اقدام کند.

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

رویکرد ریز هسته با به کارگیری آن در سیستم عامل Mach مورد توجه عمومی قرار گرفت.

سیستم عامل windows NT نیز داردای ریز هسته است که مدعی قابلیت حمل و مولفه ای بودن است.

معماری ریز هسته:
در این سیستم های عامل یکپارچه، مجازا هر رویه ای می توانست هر رویه دیگری را فراخوانی کنند.

در سیستم عامل های لایه ای،عمل ها به صورت سلسله مراتبی طراحی شده است و تنها سطوح مجاوربا یکدیگر محاوره داشته باشند.

فلسفه ریز هسته این است که تنها اعمال کاملا اصلی سیستم عامل باید در هسته باشد.

کاربردها روی ریز هسته ساخته شده.

بخشهایی از سیستم عامل که درخارج ریز هسته قرار دارند به صورت فرآیند خدمتگذار پیاده سازی می شوند.
بر مبنای برابری و از طریق ریز هسته با هم ارتباط برقرار می کنند.

ریز هسته به عنوان یک مبادله کننده پیام عمل می کند.
مزایای ریز هسته:
واسط یکنواخت. (برای درخواستهای فرآیند)

قابلیت گسترش. (مجاز دانستن افزایش خدمات)

قابلیت انعطاف. (به قابلیت گسترش مربوط است)

قابلیت حمل. (تمام کد مربوط به ویژگی های خاص پردازنده در هسته وجود دارد)
قابلیت اطمینان.

حمایت سیستم توزیعی: (توسط سیستم عامل توزیعی)

سیستم عامل شیء گرا.
کارایی ریز هسته:
ریز هسته خیلی کوچک سبب شده که کاهش کارایی را حذف و انعطاف و فابلیت اطمینان را بهتر کند.

به دلیل اینکه ریز هسته های مختلف طیفی از اعمال و اندازه را نشان می دهند، نمی توان هیچ قاعده محکم و سریعی در مورد اعمالی که ریز هسته باید ارائه کند و ساختار پیاده سازی آن اظهار داشت.
طرح ریز هسته:
ریز هسته مستقیما به سخت افزار بستگی دارد و اعمال زیر را حمایت می کند:

1- مدیریت حافظه اولیه.
2- ارتباط بین فرآیندها.
3- ورودی / خروجی.
4- مدیریت وقفه.
سه روش زیر برای حمایت مدیریت حافظه مجازی و صفحه بندی خارجی:
اهدا: هر فرآیند می تواند تعدادی از صفحات خود را به دیگری دهد.
نگاشت: یک فرآیند می تواند هر یک از صفحات خود را به فضای دیگری بنگارد.
مطالبه: هر صفحه که قبلا استفاده شده را مطالبه کند.

ارتباط داخلی فرآیند:
پیام شکل اصلی ارتباط بین فرایندها یا نخهاست.

1-سرآمد => فرآیندهای گیرنده –فرستنده
را مشخص می کند.
پیام=>
2-بدنه => اشاره گری به بلوک داده ها
یا بعضی اطلاعات کنترلی

مدیریت ورودی و خروجی و وقفه ها:
اداره وقفه های سخت افزاری به صورت پیام و درگاه های ورودی و خروجی در فضاهای آدرس میسر می شود.

ریز هسته وقفه را تشخیص می دهد ولی آنها را اداره نمی کند.

پیامی را برای فرآیند سطح کاربر مربوط به آن وقفه تولید می کند.

مدیریت نخ و چند پر دازشی متقارن در Windows NT
ویژگیهای فرآیندهای NT عبارتند از:

فرآیند NT به صورت شیءپیاده سازی شده اند.

هر فرآیند قابل اجرا،می تواند حاوی یک نخ یا بیشتر یاشد.

هم شیء های فرآیند و هم شیء های نخ ،دارای راهکارهای پیش ساخته همگام سازی هستند.
به هر فرآیند مجموعه بلوک های حافظه مربوط است.

به هر فرآیند یک نشانه امنیتی دست یابی نسبت داده می شود.

فرآیند شامل یک جدول شیء هم هست که دستگیره های به دیگرشیءهای شناخته شده این فرایند دارد. برای هر یک از نخهای که در این شیء هست یک دستگیره وجود دارد.
اگر فرآیندی برای باز کردن چنین دستگیرهای تلاش کند، سیستم امنیتی مجاز بودن آن ودر نتیجه امکان تغییر خصوصیا تش را تعیین می کند.

فرآیند نمی تواند مستقیما ساختار ها را تغییر دهد.

فرایند شامل یک جدول شیء است .

moji5
23rd October 2009, 02:15 PM
خصوصیت شیء نخ :
شناسه نخ: مقدار یکتای نخ.
متن نخ: مجموع مقادیر نخ و....
اولویت پویا: اولویت اجرای نخ در هر لحظه.
اولویت پایه: کمترین اولویت نخ.
وابستگی نخ به پردازنده: پردازتده هایی که می توان در روی نخ انجام شود.
زمان اجرای نخ: زمان اجرای آن در هسته و در حالت کاربرد.
وضعیت هشدار: فراخوانی رویه نا همگام .
شماره تعلیق : تعداد دفعات تعلیق اجرای نخ.
نشانه جعل هویت: دستیابی موقت .
درگاه پایان: یک کانال ارتباطی بین فرآیندها.
وضعیت خروجی نخ: دلیل پایان یافتن نخ.

حالت های نخ:
آماده: برای اجرا زمانبندی گردیده.
جانشین: برای هر پردازنده خاص ،یک نخ جانشین
اجرا: با تعویض به مرحله اجرا می رود.
انتظار: یک نخ موقعی به حالت اجرا می رود که:
1- روی حادثه مسدود کردد.
2- به منظور همگام سازی ،داوطلبانه منتظر شود.
3- توسط یک زیر سیستم محیط وادار به تعلیق گردد.

انتقال: منابع فراهم نیست.

پایان: توسط خودش یا پدر.
مدیریت نخ و جند پردازشی متقارن در Solaris
فرآیند: همان فرآیند معمولی

نخ های سطح کاربر: به وسیله کتابخانه ای ار نخها در فضای آدرس یک فرآیند پیاده سازی می شوند.

فرآیند سبک وزن: نگاشتی بین نخ های سطح کاربر و نخ های هسته در نظر گرفت.

نخ های هسته: موجودیتهای بنیادی.
اجرای نخ:
همگام سازی: جهت هما هنگ کردن فعالیت.
تعلیق : معلق شدن و منتظر درخواست.
قبضه : عملی که موجب به اجرا در آمدن فعالیت اولویت دار شود.
واگذاری.
راه حل solaris برای اداره وقفه
برای اداره وقفه ها solaris مجموعه ای نخ های هسته را به کارگرفته است.

با استفاده از اولیه های انحصار متقابل ،هسته دسترسی به ساختمان داده ها را کنترل می کند.

اولویت وقفه ها ،از اولویت دیگر نخ های هسته بیشتر است.

Admin
24th October 2009, 08:03 PM
از آقا مجتبی ممنون ولی جواب ازهار خانوم فقط پیش منه ...

کمی صبر کنین همین امشب جواب رو می ذارم چون باید تایپ بشه ;)

Admin
24th October 2009, 09:37 PM
اگه سوال شما رو درست گرفته باشم منظور شما اینه که عمل Cominication در سیستم عامل بین اجزای داخلی چه طوری صورت می گیره ...؟

خب عمل Communication همه از لایه ی Kernel انجام خواهد شد.


قبل از هر چیز نحوه ی اولویت دادن به پردازش ها به این صورت هست:

FIFO

Priority --> اولویت

SJF (Shortest Job First) --> هر کدام از job ها که زمان Rumtime کمتری داشته باشد انتخاب می شود.

MIXED --> بر حسب Cpu Bound و I/O Bound ابتدا یک Job که دارای CPU است انتخاب و سپس I/O Bound انتخاب می شود و دوباره Cpu Bound و بعد I/O Bound.

http://uc-njavan.ir/uploder/files/y88/4-5-6/system%20amel.GIF

شکل کل فرایند به صورت بالاست ...

که در پست بعدی توضیحاتش رو میدم ...

البته اگه بد کشیدم ببخشید دیگه ;)

Admin
24th October 2009, 09:58 PM
Running دو حالت داره ... یا حالت USER یا حالت Kernel.

پس اگه ما یک Process سیستمی به حالت Running ارسال کنیم به طور اتوماتیک سیستم به Kernel Mode سوئیچ کرده تا برنامه ی سیستمی را پردازش کنه.

وقتی زمان پردازش تمام می شود که با Interrupt ، تایمر پردازنده از حالت Running به حالت Ready سوئیچ داده شده و مکانیزم Ready آماده به کار می شود و Process در PCB ذخیره می شود.

اگر سیستم در حالت Running باشد و سیستم در User Mode باشد برای خواندن اطلاعات مورد نیاز از روی دیسک Interupt System Call اجرا شده و عملیات خواندن انجام میشود.

همچنین ممکن است Process در صف ورودی و خروجی در حالت Wait قرار بگیره و یا بلافاصله درخواست I/O انجام شده و عملیات I/O تمام شود.
بعد از اتمام عملیات I/O یک سیگنال I/O Complition پراسس را به Wait State انتقال میدهد.

سیگنال Wait پراسس رو به حالت انتظار خواهد بود تا زمانی که به آن نیاز باشد.

برای ذخیره شدن پراسس ، پردازش را بر روی دیسک برده و در صورت نیاز به آن دوباره از State Suspend Ready به State Ready انتقال می دهد.

اگر Suspend ، Process شده باشد و بعد پردازش به آن نیاز داشته باشد.

پس از قسمت Suspend Wait به Wait انتقال پیدا می کند.

در بخش Suspend Wait پردازش منتظر یک حادثه است که اتفاق بیافتد و در صورت اتفاق افتادن این حادثه اطلاعات ممکن است Ready به Suspend انتقال پیدا کند و در بخش Suspend Ready اطلاعات پردازش در دیسک ذخیره شده ولی منتظر هیچ حادثه ای نیست ..!

حادثه ای که ممکن است در Suspend Wait اتفاق بیوفتد ممکن است سنکرون کردن اطلاعات باشند و یا عمیات I/O.

بسته به عملیات مختلف ، مسیرهای مختلفی به Ready وجود دارد.

اگر اطلاعات Process در Wait State کامل شده و سیگنال I/O Completion صادر شود از Suspend Wait یک حافظه به Process داده می شود تا Process از حالت Kernel برای استفاده ی User انتقال پیدا کند و در حافظه ذخیره شود.

به Job Scaduler چون با Job ها کار دارد پس ممکن است به آن High Level Scaduler هم بگویند ولی به Suspend Area دسترسی ندارد.

Admin
24th October 2009, 10:13 PM
اینم توضیحاتش ...

امیدوارم کارت راه بیوفته ... ;)

ازهار
26th October 2009, 09:36 AM
با سلام و تشکر زیاد از زحمات دوستان
جناب مصطفی و مجتبی از توضیحات مفیدتون واقعا ممنون.
سوال من یه مقدار ریزتره.
جناب مصطفی در مورد قسمتhold وfork بیشتر توضیح می خواستم(البته با عرض شرمندگی).
فرایندهایی که وارد ready می شوند دو حالت دارند یا از قبل وجود داشتند (که همانtime rans out و swap in ) است ویا جدید به وجود آمده اند(که فکر کنم همان fork و hold باشند)
حال سوال من در مورد حالت دوم است که چگونه سیستم متوجه می شود که باید فرایند جدیدی را به فرایند ها اضافه کند یعنی برای آنpcb بسازد؟ در اصل اگر پدر این فرایند جدید فرایند های موجود در صفهای متفاوت اعم از wait و ready و... نباشد،چگونه این فرایند به وجود می آید؟ مانند حالتی که کابر جدیدی می خواهد از سیستم استفاده کند.

Admin
26th October 2009, 10:01 AM
خانوم ازهار من عملکرد اصلی سیستم رو طبق توضیحات بالا خدمت شما دادم.

یعنی سیستم کلا اینجوری عمل می کنه و عملیات ها صورت می گیره ... منتها سوال شما در این مورد جزئیه و باید نسبت به عملکرد سیستم پاسخی بدید.

و ممکنه پاسخ من در این مورد درست نباشه.

برای همین شما کل عملکرد رو دقیق یاد بگیرید و اون موقع می تونید جواب رو خودتون راحت پیدا کنید.

موفق باشید

Admin
26th October 2009, 10:02 AM
در مورد hold و fork هم صبر کنید شب یه مقدار بیشتر بازش می کنم

موفق باشید

Admin
25th December 2009, 03:35 PM
اما تشریح عملیات HOLD و FORK ...

Hold که از اسمش مشخصه ...

گاها در سیستم عملیات هایی نیازه که با هم پردازش بشن و یا یک JOB به JOB دیگری وابسته است برای همین JOB ی که در سیستم است به حالت HOLD رفته و منتظر پیشنیاز خود می شود.

اما در مورد Fork ...

Fork Process پردازشی است که باعث می شود که پردازشی تولید شود ...

در سیستم سنتی ( Fork سنتی ) محتویات Parent در Child که قرار است تولید شود ابتدا کپی می شود. ( مراجعه به عکس پیوست همین پست )

اگر n منفی و یا صفر باشد در child هستیم و اگر n مثبت باشد در مکان Parent یا خود پردازش هستیم.
همچنین کپی ها با Fork تولید می شوند.

وقتی هم سیستم در بخش Child باشد یعنی n<0 و n==0 باشد برنامه یک سیستم ، Call خورده و در نهایت با ایجاد و باز شدن یک Binary File بعد از عمل Execute مقادیر روی Child قرار می گیرد و محتوا عوض می شود.

وقتی Child تولید شد Parent منتظر می ماند تا عملیات Child تمام شود و در نهایت وقتی کار Child تمام شد یک سیگنال به Shel عملیات می دهد و shel عملیات رو بررسی و برمیگرداند.

عملیات را به parent و عملیات از Parent ادامه پیدا می کند.

شل ، Command ها را دریافت می کند و به Process تبدیل می کند....

موفق باشید

mohammadsava
30th January 2010, 11:29 AM
با عرض سلام من نیاز به یک یا چند محقق دارم که از طریق تلفن و اینترنت با من همکار ی کنند برای به اتمام رساندن یک پروژه علمی بسیار مهم من مدیر گروه نو پا تحقیقاتی ساوا هستم در ضمن ساوا نظریه علمی عشق رو بیان کرده و این پیام رو قبلا فرستاده
با تشکر گروه مسئول گروه تحقیقاتی ساوا

استفاده از تمامی مطالب سایت تنها با ذکر منبع آن به نام سایت علمی نخبگان جوان و ذکر آدرس سایت مجاز است

استفاده از نام و برند نخبگان جوان به هر نحو توسط سایر سایت ها ممنوع بوده و پیگرد قانونی دارد