c p p

c p p

کدها و برنامه های سی پلاس پلاس ، ساختمان داده به زبان cpp، کدها و برنامه های اسمبلی،پروژه های آماده سی پلاس ،سی پلاس تحت داس
c p p

c p p

کدها و برنامه های سی پلاس پلاس ، ساختمان داده به زبان cpp، کدها و برنامه های اسمبلی،پروژه های آماده سی پلاس ،سی پلاس تحت داس

مثال sharing memory برای لینوکس

SHARING MEMORY IN LINUX  exampel


در لینوکس میشود با دستور fork یک پروسس جدید ساخت که از همان خطی که این تابع صدا زده شده ، همراه با پروسس اصلی بصورت موازی برنامه را اجرا میکند . در این حال میتوانیم با دستور if برای هر پروسس ایجاد شده(که یک pid دارد) یک قطعه کد اختصاص دهیم . تااینجا که کاری نداشت . 

این پروسس ها نمیتونن همزمان از متغیرهای عمومی استفاده کنن . درحقیقت اولین پروسسی که به توابع عمومی دسترسی پیدا کنه صاحب اون میشه و بقیه نمیتونن به اون متغیر دست بزنن(میتونین امتحان کنین) . برای اینکه یه حافظه مشترک بسازیم باید از روش های خاصی استفاده کنیم . یکی از این روشها روش MEMORY SHARING هست . 


>>دانloaد<<

روش دیگه PIPE هست که فعلا توضیح نمیدم(چون بلدنیستم). در روش SHARING MEMORY در حالت ساده از این دستورات استفاده میشه :

دستور shmget برای تخصیص حافظه مشترک با اندازه خاص .

دستور  shmat برای اتصال یک پوینتر به حافظه مشترک با id خاص .

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

دستور shmctl برای تخریب حافظه مشترک .



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

>>دانloaد<<

نظرات 1 + ارسال نظر
حسین شنبه 29 خرداد‌ماه سال 1389 ساعت 12:24 ق.ظ http://www.akslar.com

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

برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد