سمافور؟؟؟ - نسخهی قابل چاپ |
سمافور؟؟؟ - jafarir - 29 مهر ۱۳۹۱ ۱۰:۳۰ ق.ظ
سلام سوال) اگر فرایند زیر به صورت همروند اجرا شوند و مقدار اولیه ی سمافور 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: سمافور؟؟؟ - mp1368 - 29 مهر ۱۳۹۱ ۰۱:۰۵ ب.ظ
سلام دوست عزیز. اگر در ابتدا سه فرآیند به طور هم زمان این مجموعه دستورات رو که فرض کن مجموعا داخل یک تابع هست اجرا کنن. با توجه به مقدار 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: سمافور؟؟؟ - sara_m - 16 آبان ۱۳۹۱ ۱۰:۴۹ ق.ظ
(۲۹ مهر ۱۳۹۱ ۰۱:۰۵ ب.ظ)mp1368 نوشته شده توسط: حالا اگه توجه کنی میبینی این سه فرآیند با اتمام کارشون توی ناحیه B هر کدام یک عدد به شمارنده x اضافه میکنند که مقدار x=3 میشه که به ترتیب سه فرآیند که اول کار مسدود میشن وارد ناحیه A می شن که آنها هم با اتمام کار توی ناحیه A به ترتیب مقدار y=0 می کن و وارد ناحیه B می شن. و در ادامه هم با up کردن x وارد ناحیه C می شوند و با اون سه فرآیندی که قبلا وارد ناحیه C شده بودن همون حداکثر ۶ فرآیند در ناحیه C می شن . در ادامه هم اگر این ۶ فرآیند کارشون تموم بشه با ۶ تا up رو y دوباره مقدار y=6 میشه که باعث تکرار روند قبلی تکرار میشه . سلام بچه ها من توی مبحث سمافور گیج شدم!!!! همین مثال رو برا اینکه درک کنم بیشتر توضیح میدید؟ مخصوصا این تکه آخرش... |