۰
subtitle
ارسال: #۱
  
سمافور؟؟؟
سلام
سوال) اگر فرایند زیر به صورت همروند اجرا شوند و مقدار اولیه ی سمافور x=3 و y=6 ،حداکثر تعداد فرایند در حال اجرا در قسمت های AوBوC ؟؟
[tex]down(x)[/tex]
A
[tex]down(y)[/tex]
B
[tex]up(x)[/tex]
C
[tex]up(y)[/tex]
۱) A=3, B=3,C=3
*۲) A=3,B=3,c=6
۳) A=3,B=6,c=6
۴) A=3,B=6,C=9
سوال من اینه که چرا C=6 شده من Cرو ۳ تا بدست آوردم؟؟
ممنون
سوال) اگر فرایند زیر به صورت همروند اجرا شوند و مقدار اولیه ی سمافور x=3 و y=6 ،حداکثر تعداد فرایند در حال اجرا در قسمت های AوBوC ؟؟
[tex]down(x)[/tex]
A
[tex]down(y)[/tex]
B
[tex]up(x)[/tex]
C
[tex]up(y)[/tex]
۱) A=3, B=3,C=3
*۲) A=3,B=3,c=6
۳) A=3,B=6,c=6
۴) A=3,B=6,C=9
سوال من اینه که چرا C=6 شده من Cرو ۳ تا بدست آوردم؟؟
ممنون
۰
ارسال: #۲
  
RE: سمافور؟؟؟
سلام دوست عزیز.
اگر در ابتدا سه فرآیند به طور هم زمان این مجموعه دستورات رو که فرض کن مجموعا داخل یک تابع هست اجرا کنن. با توجه به مقدار x=3 هر سه فرآیند با کم کردن یکی واحد از شمارنده سمافور وارد ناحیه A میشن که باعث میشه x=0 شه، پس هر فرآیندی که بخواد این دستورات رو اجرا کنه به حالت مسدود میره . حالا ادامه کار با همین سه فرآیندی که وارد شدن، سه فرآیند با اتمار کار در ناحیه A با کم کردن یک واحد از شمانده ی y ، وارد ناحیه B می شن پس مقدار شمارنده y=3 هست.
و حواسمون باشه تا اینجا هیچ فرآیندی هم اجازه وارد شدن به ناحیه A رو نداشته بدلیل x=0 .
حالا اگه توجه کنی میبینی این سه فرآیند با اتمام کارشون توی ناحیه B هر کدام یک عدد به شمارنده x اضافه میکنند که مقدار x=3 میشه که به ترتیب سه فرآیند که اول کار مسدود میشن وارد ناحیه A می شن که آنها هم با اتمام کار توی ناحیه A به ترتیب مقدار y=0 می کن و وارد ناحیه B می شن. و در ادامه هم با up کردن x وارد ناحیه C می شوند و با اون سه فرآیندی که قبلا وارد ناحیه C شده بودن همون حداکثر ۶ فرآیند در ناحیه C می شن . در ادامه هم اگر این ۶ فرآیند کارشون تموم بشه با ۶ تا up رو y دوباره مقدار y=6 میشه که باعث تکرار روند قبلی تکرار میشه .
ان شالله که مطلب واست جا افتاده باشه اگه ابهام داشتی جاییش بگو با هم برطرفش کنیم.
اگر در ابتدا سه فرآیند به طور هم زمان این مجموعه دستورات رو که فرض کن مجموعا داخل یک تابع هست اجرا کنن. با توجه به مقدار x=3 هر سه فرآیند با کم کردن یکی واحد از شمارنده سمافور وارد ناحیه A میشن که باعث میشه x=0 شه، پس هر فرآیندی که بخواد این دستورات رو اجرا کنه به حالت مسدود میره . حالا ادامه کار با همین سه فرآیندی که وارد شدن، سه فرآیند با اتمار کار در ناحیه A با کم کردن یک واحد از شمانده ی y ، وارد ناحیه B می شن پس مقدار شمارنده y=3 هست.
و حواسمون باشه تا اینجا هیچ فرآیندی هم اجازه وارد شدن به ناحیه A رو نداشته بدلیل x=0 .
حالا اگه توجه کنی میبینی این سه فرآیند با اتمام کارشون توی ناحیه B هر کدام یک عدد به شمارنده x اضافه میکنند که مقدار x=3 میشه که به ترتیب سه فرآیند که اول کار مسدود میشن وارد ناحیه A می شن که آنها هم با اتمام کار توی ناحیه A به ترتیب مقدار y=0 می کن و وارد ناحیه B می شن. و در ادامه هم با up کردن x وارد ناحیه C می شوند و با اون سه فرآیندی که قبلا وارد ناحیه C شده بودن همون حداکثر ۶ فرآیند در ناحیه C می شن . در ادامه هم اگر این ۶ فرآیند کارشون تموم بشه با ۶ تا up رو y دوباره مقدار y=6 میشه که باعث تکرار روند قبلی تکرار میشه .
ان شالله که مطلب واست جا افتاده باشه اگه ابهام داشتی جاییش بگو با هم برطرفش کنیم.
ارسال: #۳
  
RE: سمافور؟؟؟
(۲۹ مهر ۱۳۹۱ ۰۱:۰۵ ب.ظ)mp1368 نوشته شده توسط: حالا اگه توجه کنی میبینی این سه فرآیند با اتمام کارشون توی ناحیه B هر کدام یک عدد به شمارنده x اضافه میکنند که مقدار x=3 میشه که به ترتیب سه فرآیند که اول کار مسدود میشن وارد ناحیه A می شن که آنها هم با اتمام کار توی ناحیه A به ترتیب مقدار y=0 می کن و وارد ناحیه B می شن. و در ادامه هم با up کردن x وارد ناحیه C می شوند و با اون سه فرآیندی که قبلا وارد ناحیه C شده بودن همون حداکثر ۶ فرآیند در ناحیه C می شن . در ادامه هم اگر این ۶ فرآیند کارشون تموم بشه با ۶ تا up رو y دوباره مقدار y=6 میشه که باعث تکرار روند قبلی تکرار میشه .
ان شالله که مطلب واست جا افتاده باشه اگه ابهام داشتی جاییش بگو با هم برطرفش کنیم.
سلام
بچه ها من توی مبحث سمافور گیج شدم!!!!
همین مثال رو برا اینکه درک کنم بیشتر توضیح میدید؟
مخصوصا این تکه آخرش...
Can I see some ID?
Feeling left out?
نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close