ساختن یک پروسه ی فرزند برای یک پروسه در لینوکس و نحوه ی ارسال داده ها بین آنها
به نام خدا
برای این کار از تابع fork() در لینوکس استفاده می شه که هیچ آرگومانی رو دریافت نمی کنه ولی خوب مقدار بازگشتیش
id پردازه ی فرزند هست برای پردازه ی والد و صفر هست برای خود پردازه ی تازه تولید شده.
برای
کد نویسی در این راستا ما باید یک کد برای هر دوی این دو پردازه بنویسیم و
از طریق مقدار بازگشتی این تابع fork پردازه ی والد رو از فرزند شناسایی
کنیم.
برای ارسال داده ها در این موقعیت یکی از راه ها ارسال داده ها با پایپ لاین هستش که این خودش رو نوع داره.
یکی
ارسال از طریق پایپ معمولی و دیگری از طریق پایپ نامدار هستش که نوع اول
فقط یک نفر باید فرستنده باشه و دیگری دریافت کننده و در اصل دو طرفه نیست.
این از طریق تابع pipe() ساخته میشه.
ولی پایپ نامدار دو طرفه است ولی
در لینوکس half duplex هستش به این مفهوم که در آن واحد فقط یک طرف می تونه
ارسال داده و دیگری دریافت داشته باشه.
نکته ی دیگری که در این مورد
هستش اینه که وقتی یک پردازه پایپ نامدار رو برای read کردن باز می کنه در
آنجا block میشه که به نحوی میشه از این کار جلوگیری کرد که در ادامه
میگم.
برای ساختن یک پایپ نامدار می شه از رو راه استفاده کرد :
1.ساختن اون از طریق shell
$mknode namedpipe_name p
یا
$mkfifo namedpipe_name
که راستی این نکته هم مهمه که در لینوکس به این نوع پایپ fifo میگن چرا که مثل یک صف عمل می کنه
این نوع پایپ یک فایل در اصل هستش که در این موقع یعنی یعد از ساخت باید سطح دسترسی اون رو تنظیم کرد.
ولی به طور خودکار به صورت زیر هستش:
همان طور که می دونیم این flag های کنترلی در لینوکس 3 دسته هستن:1.برای صاحب اون فایل 2.برای گروه 3.برای افراد دیگر
در
این مورد id سازنده ی اون فایل به این پایپ اختصاص داده میشه id گروه اون
به این فایل داده میشه و id دایرکتوری والد این فایل به این فایل اختصاص
داده میشه.
2. برای ساختن این فایل در کد برنامه نویسی باید از تابع
mkfifo() استفاده کنید که آرگومان اول اشاره گری از نوع const به این مکان
این فایل می باشد و دومی سطح دسترسی به اون فایل می باشد.
برای استفاده
از این پایپ باید اون رو با استفاده از توابع open() و یا fopen() باز کرد
که در صورت استفاده از اولی مقدار بازگشتی یک توصیفگر هستش و اگر از دومی
استفاده کنید به شما یک اشاره گر به اون فایل رو بر می گردونه و در زمان
باید نحوه ی باز کردن اون رو هم مشخص کنید که برای خواندن هستش یا برای
نوشتن
ما نمی تونیم یک فایل رو هم برای خواندن و هم برای نوشتن باز کنید در این مورد استفاده از پایپ لاین نامدار.
برای
موردی هم که گفتم برای جلوگیری از block شدن یک پردازه در زمان باز شدن
برای خواندن از یک فلگ به نام O_NONBLOCK در زمان باز کردن اون فایل
استفاده می کنیم.
خوب امیدوارم چیزهای بدرد بخوری بوده باشه این مطالب موفق باشید.
قسمت سوم اسلاید های درس هوش مصنوعی
قسمت دوم اسلاید های درس هوش مصنوعی
برای دانلود کلیک کنید.
اسلاید های درس هوش مصنوعی
برای دانلود اینجا را کلیک کنید.
گروه مهندسی نرم افزار
با سلام آدرس زیر شما رو به گروه درس مهندسی نرم افزار می بره که استاد دانشفر گفتن همه تو اون ثبت نام کنند.
http://groups.google.com/group/se_umz
A Programming Joke
(Okay, you have to be in computer development to really get this one. But it's good. - Vikar)
A developer/tester convention was being held.
On the train to the convention, there were a bunch of developer majors and a bunch of tester majors. Each of the developer majors had his/her train ticket.
The group of testers had only ONE ticket for all of them. The developer majors started laughing and snickering.
Then, one of the testers said, "Here comes the conductor" and then all of the testers went into the bathroom.
The developer majors were puzzled.
The conductor came aboard and said "tickets please" and got tickets from all the developer majors. He then went to the bathroom and knocked on the door and said "ticket please" and the testers stuck the ticket under the door.
The conductor took it and then the testers came out of the bathroom a few minutes later.
The developer majors felt really stupid. So, on the way back from the convention, the group of developer majors had one ticket for the group.
They started snickering at the testers, for the whole group had no tickets amongst them.
Then, the tester lookout said "Conductor coming!" All the testers went to one bathroom. All the developer majors went to another bathroom.
Then, before the conductor came on board, one of the testers left the bathroom, knocked on the other bathroom, and said "ticket please."
Lesson learned: Any test that passed in unit testing can fail in system testing.
تدریس گویش مازندرانی در دانشگاه سوئد
شمال نیوز: گویش و فرهنگ مازندرانی در دانشگاه آپسالای سوئد تدریس میشود . به گزارش شمال نیوز به نقل از فارس ، مدیر گروه همكاریهای علمی و روابط بینالملل دانشگاه مازندران از عقد تفاهم نامهای با دانشگاه سوئد خبر داد كه در آیندهای نزدیك، اساتید این دانشگاه برای آموزش 10 واحد درسی به این كشور سفر میكنند. كریم سلیمانی گفت: این قرارداد میان دپارتمان ایران شناسی دانشگاه آپسالا و گروه ادبیات فارسی دانشگاه مازندران منعقد شده است. وی اظهار داشت: با اجرای این تفاهم نامه، كرسیهای مربوط به زبان و گویشهای مختلف ایرانی با استفاده از كار میدانی و جمع آوری گویشها ا ایجاد میشود. سلیمانی با اشاره به قدمت 700 ساله دانشگاه آپسالا افزود: این دانشگاه از جمله دانشگاههای معتبر قاره اروپا است و در حال حاضر دارای 40 هزار دانشجو است.
وی تبادل استاد، دانشجو و اعزام استادان برای گذراندن دورههای فرصت مطالعاتی در رشتههای كشاورزی، منابع طبیعی و محیط زیست را از جمله مفاد دیگر قرارداد با دانشگاه سوئدی برشمرد. سلیمانی با اشاره به گسترش همكاریهای بین المللی دانشگاه مازندران در سالهای اخیر از سفر هیئت دانشگاهی از دانشگاه گلاسكو انگلستان در 23 بهمن امسال خبر داد.
یه سوال
سلام
طرف صحبت با حاج رسول و مظاهز ولی دارم اینجا این مطلب رو میذارم تا بقیه هم اگر خواستن تو بحث باشن.
اقا یادت که تو c# ما آرایه ی دو بعدی پویا ساختیم؟ حالا اون تو c++ کار نمی کنه ولی من چک کردم یه همچین چیزی هم تو c++ داریم می خوام بدونم تو چیزی در این مورد میدونی یا نه؟


