دکتر حقیقت | پر | پرلایک – Telegram
دکتر حقیقت | پر | پرلایک
3.51K subscribers
1.49K photos
80 videos
228 files
507 links
دکتر ابوالفضل حقیقت | پر (انتشارات پارس رسانه) |پلتفرم آموزشی پرلایک

par.ir, parlike.com, parlike.ir

Admin: @Dr_Haghighat
Download Telegram
3 سوال بعدی شبکه هم درست است.
فقط در مورد سوالات زیر اعتراض بزنید
تست 99: سیستم عامل کامپیوتر 99


پاسخ سنجش: گزینه 4 (این تست غلط است ,گزینه ی صحیح وجود ندارد)

دو تا trace می کنیم و نشان می دهیم این راه حل انحصار متقابل ندارد و بن بست هم دارد و اصلا به پیشرفت ربطی ندارد:


اولین trace: (شکست انحصار متقابل)
فرض کنید تک تک برنامه ها سه خط اول را اجرا می کنند و وقفه می آید:
یعنی برای همه
Waiting[i]=true;
Key=true;
حال فرآیند p0 ,اولین فرآیندی است که حلقهwhile را چک می‌کند (بقیه cpu ندارند)
While(waiting[0] && key)
key=test&set(&lock);
چون داخل شرط true && true است tsl انجام می شود:
lock <----- 1
key <----- 0
و چون key=0 شده ، شرط false شده از حلقه خارج می شود و وارد ناحیه بحرانی می شود.

حال اگر cpu از p0 گرفته شود، همه ی فرآیند های دیگر نیز از حلقه
while(waiting[i] && key)
به علت 0 (false) بودن key خارج و وارد ناحیه بحرانی می شوند و انحصار متقابل شکست می خورد و اصلی ترین شرط را نداریم.

اصولا اشتباه در این است که tsl را در یک while گذاشته است.
در اصل برای پرهیز از این مشکل tsl خودش یک حلقه اسمبلی دارد که بعد از ورود یکی باید فرایندهای دیگر داخل آن حلقه درون تابع گیر کنند:
Test&set(&lock);
نه اینکه یک while بنویسیم.

پس به شکست انحصار متقابل رسیدیم.

در trace بعد بن بست هم داریم. اصلا این راه حل به پیشرفت ربطی ندارد و تازه اگر می داشت باز هم گزینه درست نداشتیم.

دومین trace: (بن بست)

این بار فرض کنید p0 وارد ناحیه بحرانی می شود و بقیه هنوز خطوط اولیه را اجرا نکرده باشند یعنی:
Waiting[0]=true;
key=true;
While(waiting[0]&&key)
key=test&set(&lock);
شرط true بوده و tsl انجام می شود
lock <----- 1
key <----- 0
و چون key صفر می شود شرط false شده و p0 از حلقه خارج می شود و در ضمن قبل از ورود به ناحیه بحرانی
waiting [0] =false

حال فرض کنید p1 یا هر فرایند دیگری بخواهد وارد ناحیه بحرانی شود

Waiting[1]=true;
key=true;
While(waiting[1] && key)
key=test&set(&lock);

شرط true بوده و tsl انجام می شود ولی چون lock قبلا با ورود p0 یک شده است
lock <---1
key <---1
لذاp1 در حلقه گرفتار می شود(busy waiting) حال اگر p0از ناحیه بحرانی خارج شود ,
j=(0+1)mod n
به عنوان مثال اگر n=2 باشدj=1 می شود
While(!waiting[j])
چون waiting[1] در حال حاضر true هست در نتیجه waiting[1]=false! است و از حلقه خارج می شود
If(j==i)
چون j==i نیست , lock را false نمی کند و وارد ناحیه غیر بحرانی می شود و همه تا ابد به علت true ماندن lock گرفتار بن بست می شوند (در test&set گیر می کنند).
در اعتراض لطفا درست تایپ کنید یا کپی کنید و اگر اشتباه تایپ کنید یا چیزی را از قلم بیندازید طراح یکی دو مورد را می خواند و فکر می کند همه غلط یک مطلب را کپی کرده اند و حوصله خواندن بقیه را نخواهد داشت و درخواست مان رد می شود.
سوال 106 که انقدر ساده است که همه تان بلدید دو خط بنویسید چرا جواب 6 می شود.
متن اعتراض بری دو گزینه ای شدن سوال 101 را هم قبلا نوشته ام :
در مورد سوال 117 شبکه دوستان کامپیوتری می پرسند. این سوال درسته
O(|N|. Deg)
همن طور که در صفحه 156ذگ جزوه رنگی شبکه من آمده است، مربوط به هر دور از الگوریتم DV است نه کل پیام ها تا همگرایی.
سیستم عامل IT را به تقاضای چند داوطلب عزیز انجام دادم🔺 این که طراحش خود تننباوم یا خود حقیقته و گیر داده به فصول اولیه و مفهومی سیستم .

همگی سوالات مفهومی و بسیار ساده بود

سوال (98) به علت مشکل تایپ و ناقص بودن رابطه و سوال 96 به علت اشتباه محاسباتی یا تایپی حذف خواهد شد. سوال 100 هم به تغییر گزینه یا 2 گزینه ای شدن نیاز دارد.
شبکه IT شروع شد 👆

خداییش سوال به سوال به عظمت جزوه رنگی شبکه بیشتر پی می برم.
شبکه IT 👆

خداییش سوال به سوال به عظمت جزوه رنگی شبکه بیشتر پی می برم.
به سوالات 57 و 59 اعتراض کنید تا حذف شود
موفق باشید دوستان ❤️🌹