الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Concurrent program using binary semaphores

مغلق
بدأه mara_9000 في 15 يونيو 2007 · 3 رد · 777 مشاهدة · في لغة C و ++C
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اخواني في هذا المنتدى العزيز

أنا عندي خبرة والحمد لله في كتابة برامج السي ولكن واجهتني مشكلة في ان اكتب البرنامج بطريقة الباينري سيمافورز

(Binary semaphores)

برنامج يحل هذه المشكلة

يوجد معالجين اسماؤهم

p1, p2

يستقبلوا داتا

x,y

من قمرين فضائيين

وبيعملوا تربيع للقيمتين ليصبحوا

اكس تربيع وواي تربيع

وبعدين بيعثوا القيمتين الى معالج ثالث اسمه

p3

لحساب مجموعهم

علما انه

p1,p2

لهم انبوت بفر واحد

one input buffer

p3 أما

له مدخلين بفر

two input buffer

البرنامج يريد تشغيل الثلاث معالجات متزامنات

وهذا وصف المشكلة بالانجليزي

Two processors P1 and P2 receive data X and Y respectively from two satellites, square the data, then send the result to a third processor P3 to calculate their sum. Each of P1 and P2 has only an input buffer for one data item while P3 has a buffer for two data items. I need concurrent program using binary semaphores to synchronize the operations of the three processors.

وهذا مثال على برنامج شبيه ولكن هنا يزيد قيمة كلن من

A.B,C

بطريقة متزامنة

يعني اذا اردنا تشغيله على برنامج يفحص كيف البروسيس

A,B,C

تعمل يقسمها وتعمل متزامنة وهذا المثال يحتوي ماهو الباينري سيمافورز

const int m = 5;

int n;

void incr (char id)

{

int i;

for (i = 1; i <= m; i = i + 1)

{

n = n +1;

cout C id C " n =" C n C " i =";

cout C i C " " C id C endi;

}

}

main()

{

n = 0;

cobegin

{

incr( 'A' ); incr( 'B' ); incr( 'C');

}

cout C "The sum is " C n C endl;

}

كلي امل وثقة بمساعدتكم

وشكرا

#2

على حسب ما فهمت إن كل بروسيسور من P1 و P2 ليه Input Buffer مكون من Data Item واحد, مش هما الإتنين مشاركين فى ال Buffer!

ما هى المشاكل اللى قابلتك بالظبط؟

#3

وضح مشكلتك بالضبط ماهي

اذا كنت تعني حل لهذه المشكلة بواسطة oob فهذا ممكن

( _ /)

(='.'=)

(")-(")

#4

lol

نفس المشكلة لما اخدت هادا الكورس

بس المفروض تعمل threading على اساس انه ينفذهم سوا

مع مراعاة عدم دخول 2 process على ال critical section سوا

يعني يعدلوا على ال shared data معا ما بصير

سلاااااااااااام

تم تعديل هذه المشاركة بواسطة white soul في 21 يونيو 2007 في 23:33

Computer Engineer

2007

"اللهم يا مثبت القلوب ثبت قلبي على دينك "

ولدتك امك باكيا والناس حولك يضحكون سرورا

فافعل لنفسك ان تكون اذا بكوا في يوم موتك ضاحكا مسرورا

هذا الموضوع مغلق.

مواضيع مشابهة