تبليغاتX
DIGITALDREAMS





    صفحه نخست  | آرشیو مطالب  | پروفایل من  | تماس  |


      توضیحی مختصر در مورد server skeleton و client stub

توضیحی مختصر در مورد server skeleton و client stub  میخواستم.

برای درک مفهوم server skeleton و client stub ابتدا بهتر است که با مفهوم CORBA و ORB آشنا شویم.

CORBA مخفف Common Object Request Broker Architecture یک معماری نرم افزاری است که قطعاتی به نام اشیا را صرفنظر از زبانی که با آن نوشته شده اند یا سیستم عاملی که بر روی آن اجرا میشوند به برقراری ارتباط با یکدیگر قادر میسازد.CORBA بوسیله یک کنسرسیوم صنعتی به نام OMG توسعه داده میشود.

ORB مخفف Object Request Broker است و یک جز از CORBA است که بعنوان میان افزار بین client و Server عمل میکند.

مدل شی CORBA شی ای را در نظر میگیرد که صفات و سرویس ها را بسته بندی کرده باشد. اشیا CORBA باید واسط جداگانه ای داشته باشند که صفات و عملیات عمومی شی را تعریف کند . واسط های شی CORBA با استفاده از واسط IDL(زبان تعریف واسط) تعریف شده اند.اگر شی ای بخواهد از سرویس های شی دیگر استفاده کند ، از طریق واسط IDL به آنها دسترسی دارد.اشیا CORBA شناسه منحصربفردی به نام IOR دارند.این IOR وقتی استفاده میشود که شی ای سرویس هایی را از شی دیگر درخواست کند.کارگزار درخواست شی(object request server) اشیای درخواست کننده سرویس ها و واسط های بین آنها را می شناسد.ORB ارتباط بین اشیا را اداره می کند .اشیایی که با هم ارتباط برقرار میکنند لازم نیست محل یکدیگر را بدانند و از پیاده سازی همدیگر اطلاع داشته باشند.چون واسط IDL اشیا را از ORB جدا می کند میتوان پیاده سازی شی را بسادگی تغییر داد.محل شی ممکن است در فراخوانی ها تغییر کند و تمام اشیا دیگر هم این تغییر محل را ببینند.شکل زیر نشان میدهد که چگونه دوشی O1و O2 از طریق ORB  با هم ارتباط برقرار می کنند.

                                       ORB,CORBA

                                                     ارتباط اشیا از طریق ORB

                                            

شی فراخوان (O1) یک stub(تابع) مربوط به IDL دارد که واسط شی ای را تعریف می کند که سرویس های درخواستی را ارائه میدهد.پیاده سازی O1  هنگام نیاز به سرویس ها فراخوانی این تابع(stub) را در پیاده سازی شی خود تعبیه می کندIDL شبیه به ++C است و در نتیجه اگر به C++ ، C یا Java برنامه نویسی کنید IDL  میتواند به این تابع دسترسی داشته باشد.

شی ای که سرویس ها را ارائه می کندیک اسکلت IDL دارد که واسط را به پیاده سازی زبان مورد استفاده پیوند میدهد.وقتی رویه اجرا شود IDL Skeleton نتیجه را به به IDL ترجمه می کند به طوری که اشیای فراخوان می توانند به آن دستیابی داشته باشند.وقتی شی ای سرویس هایی را برای اشیای دیگر ارائه می کند و از سرویس های اشیای دیگر استفاده می کند به IDL Stubو IDL skeleton نیاز دارد . Stub برای هر شی ای لازم است.

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


      لیست System Call Standard posix

لیست System Call Standard posix چه چیزهایی را شامل میشود؟

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

دانلود با حجم 1.6 مگابایت


      وظایف ()System call fork

وظایف ()System call forkچیست؟

()System call fork برای ایجاد یک پردازش جدید به کار میرود . هیچ آرگومانی ندارد و شناسه یک پروسه را بر می گرداند.هدف از به کارگیری تابع ()Fork ایجاد یک پروسه زیرشاخه است که پروسه فراخواننده را بعنوان والد خود داراست.هر دوی پروسه ها دستورات بعد از فراخوانی تابع ()Fork  را اجرا می کنند بنابراین باید بتوانید پروسه فرزند و پروسه والد را تشخیص دهید.این عمل را میتوانید با تست مقدار ()Fork  انجام دهید:

اگر ()Fork  یک مقدار منفی بازگرداند، ایجاد پروسه فرزند با موفقیت همراه نبوده است.

اگر ()Fork مقدار صفر را بازگرداند بتازگی یک پروسه فرزند ایجاد کرده است.

اگر ()Fork  یک مقدار مثبت را بازگرداند ، این مقدار مثبت  شناسه پردازش پروسه فرزند است.که این شناسه از نوع T_id بوده و در سرفایل sys/types.h تعریف میشود.اگرچه شما با استفاده از تابع ()getpid هم میتوانید شناسه یک پروسه را بدست بیاورید.

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

 


      under flow و Oveflow

"under flow چیست و چه مشکلی ایجاد می کند؟"

Under flow (پاریز) به شرایطی گفته میشود که کامپیوتر سعی می کند تا یک عدد بسیار کوچک (بطور مثال یک عدد خیلی کوچک نزدیک به صفر ) را نمایش دهد. برنامه ها در صورت مواجه شدن با این وضعیت به چند صورت عمل می کنند.بعضی ها یک خطا را گزارش می کنند ، در حالیکه بعضی دیگر به بهترین وجه ممکن این عدد را گرد کرده و به پردازش ادامه می دهند.برای مثال اگر کامپیوتر شما تا هشت رقم اعشار پشتیبانی کند و محاسبات برنامه ما عدد 0.000000005 را تولید کند( با نه رقم اعشار)،وضعیت Under flow رخ داده است . 

در مقابل ، Overflow(سرریز) به شرایطی گفته میشود که کامپیوتر سعی میکند تا یک عدد بسیار بزرگ خارج از محدوده اش را نمایش دهد.هر کامپیوتر تنها قادر است تا محدوده ای از اعداد را به نمایش بگذارد.اگر در طی اجرا ، برنامه به عددی خارج از این محدوده برسد یک خطای Overflow رخ خواهد داد.

 


      نرم افزارهای کاربردی و سیستمی ((Application and System softwares)

"چراEditor جزء برنامه های سیستمیه؟ چرا جزء برنامه های کاربردی نیست؟"

برای فهم بهتر این مطلب که ادیتور جز کدام دسته از نرم افزار هاست بهتر است که تعریف دقیقی از هر دو دسته نرم افزاری یعنی نرم افزارهای کاربردی و نرم افزارهای سیستمی داشته باشیم :

نرم افزارهای سیستمی (Systems software ):

به سیستم عامل ها و برنامه های سودمندی (Utility ) گفته میشود که برای مدیریت منابع کامپیوتری در سطح پایین(Low level) به کار می روند . نرم افزارهای سیستمی علاوه بر سیستم عاملها، کامپایلرها(Compilers) ، بارکننده ها(Loaders) ، الحاق گر ها(Linkers) و اشکالزداها(Debuggers) را در بر می گیرند.

نرم افزارهای کاربردی(Applications Software) :

یک برنامه یا تعدادی از برنامه ها که برای کاربران پایانی طراحی شده اند.کاربران پایانی افرادی هستند که از محصولات نرم افزاری هنگامی که به طور کامل توسعه داده شده و اشکالزدایی شده باشند،  استفاده می کنند . برنامه های مدیریت پایگاه داده(Database programs) ، پردازشگرهای کلمات یا ادیتورها (Word Processor) ، و نرم افزارهای صفحه گسترده (Spread Sheet  programs) از این دسته هستند.نرم افزارهای کاربردی در سطح بالایی نرم افزارهای سیستمی قرار دارند . این نرم افزارها در صورت عدم وجود سیستم عامل و نرم افزارهای سیستمی نمی توانند اجرا شوند.

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

                   applications and systems softwares


      ادیتور برنامه سیستمی است یا کاربردی ؟

" سوالی داشتم در مورد سیستم عامل. چراEditor جزء برنامه های سیستمیه؟ چرا جزء برنامه های کاربردی نیست؟"

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

امیدوارم پاسخم برای شما مفید واقع شود.