تالار گفتمان مانشت
سوال ۹۳ جامع دوم پارسه (زباله و ارجاع معلق) - نسخه‌ی قابل چاپ

سوال ۹۳ جامع دوم پارسه (زباله و ارجاع معلق) - shima541 - 11 بهمن ۱۳۹۲ ۰۸:۳۳ ب.ظ

سلام بچه ها
چرا پارسه گفته این سوال زباله نداره؟؟؟؟ تو قسمت R=Qمگه R زباله نمیشه؟
ویسوال دیگه اینکه FRAGMENTATIONکی بوجود میاد؟اگه منظور همن تکه تکه شدن حافظست تو این سوال بنظرتون اتفاق نمیافته؟

RE: سوال ۹۳ جامع دوم پارسه - AEM4949 - 11 بهمن ۱۳۹۲ ۰۸:۵۹ ب.ظ

اگه میشه صورت سوال رو هم قرار بدیدShy

RE: سوال ۹۳ جامع دوم پارسه - shima541 - 11 بهمن ۱۳۹۲ ۰۹:۱۶ ب.ظ

(۱۱ بهمن ۱۳۹۲ ۰۸:۵۹ ب.ظ)aem4949 نوشته شده توسط:  اگه میشه صورت سوال رو هم قرار بدیدShy



Int*Q,*P;
(Q=malloc(20;
(P=malloc(10;
(R=malloc(30;
Q=P;
R=Q;
(Free(Q;

جوابشم اینه که این کد فقط ارجاع معلق داره!

(گزینه ۴ سوال گفته هم ارجاع معلق هم زباله هم fragmentation داره که بنظر من این درسته)

RE: سوال ۹۳ جامع دوم پارسه - AEM4949 - 11 بهمن ۱۳۹۲ ۰۹:۴۶ ب.ظ

(۱۱ بهمن ۱۳۹۲ ۰۹:۱۶ ب.ظ)shima541 نوشته شده توسط:  
(11 بهمن ۱۳۹۲ ۰۸:۵۹ ب.ظ)aem4949 نوشته شده توسط:  اگه میشه صورت سوال رو هم قرار بدیدShy



Int*Q,*P;
(Q=malloc(20;
(P=malloc(10;
(R=malloc(30;
Q=P;
R=Q;
(Free(Q;

جوابشم اینه که این کد فقط ارجاع معلق داره!

(گزینه ۴ سوال گفته هم ارجاع معلق هم زباله هم fragmentation داره که بنظر من این درسته)

قطعا زباله و ارجاع معلق داریم.

RE: سوال ۹۳ جامع دوم پارسه - shima541 - 11 بهمن ۱۳۹۲ ۱۰:۱۴ ب.ظ

قطعا زباله و ارجاع معلق داریم.
[/quote]
ممنون
fragmentationچی؟شما میدونیدقضیه این چی هست وکیا fragmentation داریم؟

RE: سوال ۹۳ جامع دوم پارسه - AEM4949 - 11 بهمن ۱۳۹۲ ۱۱:۰۳ ب.ظ

(۱۱ بهمن ۱۳۹۲ ۱۰:۱۴ ب.ظ)shima541 نوشته شده توسط:  ممنون
fragmentationچی؟شما میدونیدقضیه این چی هست وکیا fragmentation داریم؟
نه متاسفانه ، اطلاعی ندارم

RE: سوال ۹۳ جامع دوم پارسه - hosshah - 11 بهمن ۱۳۹۲ ۱۱:۰۴ ب.ظ

(۱۱ بهمن ۱۳۹۲ ۱۰:۱۴ ب.ظ)shima541 نوشته شده توسط:  ممنون
fragmentationچی؟شما میدونیدقضیه این چی هست وکیا fragmentation داریم؟

تو یه سواله کنکور هم اومده بود من پرسیدم کسی جواب نداد
اگه کسی میدونه fragmentation چیه لطفا کمک کنه

RE: سوال ۹۳ جامع دوم پارسه - mahsalove - 11 بهمن ۱۳۹۲ ۱۱:۵۸ ب.ظ

سلام منم دقیقا همین مشکلو داشتم و همین گزینه رو زدم!
اول تحلیل خودمو از کد بنویسم بعد برم سراغ تحلیل پارسه!
در ابتدا حافظه جداگانه ای برای P Q R گرفته میشه بعد Q به همانجایی اشاره می کنه که P اشاره می کنه و R هم به همان جایی اشاره می کنه که Q اشاره می کنه و در زمان اجرای دستور free Q حافظه مورد نظر رها شده ولی همچنان Q به آن اشاره می کند در واقع چون همه اشاره گرها به یک مکان اشاره می کنند و فضایشان free شده پس مسیر هست ولی داده نیست!ولی چون فضاهای ابتدای کار که گرفته شده توسط Q و R هنوز آزاد نشده پس Garbageهم داریم ضمنا چون این کد نویسی به زبان c هست و در واقع با کد malloc می توان فضاهایی را از حافظه heap گرفت و موقعی که این فضاها به درستی آزاد نشن مشکل garbage وجود داره و یکی از اشکالات فضای heap اینه که پس از چند بار اختصاص و آزاد سازی( نادرست) حافظه تکه تکه می شود fragmentetion پس به وجود می باد!
اگه بخواهیم همینحوری که پارسه تحلیل کرده تحلیل کنیمConfused اینجوری میشه کهDodgy
پس از اجرای این کد چون این فضاها خالی هستند پس از بین می روند ولی مسیر هنوز وجود دارد!و اینجوری خودشونو از دست fragmentation و garbage رها کردند!نمی دانم شایدم وقتی محتویاتی وجود نداشته باشه چرا باید garbage به وجود بیاد یا fragmentation!nv در واقع فضاهایی استفاده شده واسه اشاره گرهایی و اون اشاره گرها دیگه به اون فضاها اشاره نمی کنند پس چه دلیلی داره واسه فضایی که چیزی داخلش نیست garbage به وجود بیاد!در واقع با تعریف garbage هم همخوانی نداره چون شی داده ای وجود نداره که بخواهد انقیادش به حافظه از بین نرفته باشه!فضاها خالی اند الانم آزاد شدند!Big GrinTongue
آدم چه اشتباهایی می کنه بعضی وقتها!Big Grinپس واسه کنکور باید خیلی حواسمون جمع باشه!Big Grin

ضمنا اینو هم بگم که مشکل garbage زمانی به وجود میاد که اطلاعاتی وجود داشته باشند و مسیرشان از بین رفته باشه پس اگه فرایند دیگه ای اون فضا رو بگیره و اجرا بشه پس اطلاعات غلطی برمی گردانه ولی الان که اطلاعاتی وجود نداره که بخواهد غلط یرگردونه!Rolleyes

RE: سوال ۹۳ جامع دوم پارسه (زباله و ارجاع معلق) - hosshah - 12 بهمن ۱۳۹۲ ۱۲:۱۳ ق.ظ

سلام باهاتون مخالفم Tongue
تو ایم مسئله هم garbage داریم چون هنوز انقیادش به فضای حافظه هست (فضاهای اولیه R و Q) و هم ارجاع معلق داریم (آزاد شدن فضای اولیه P در حالی که اشاره گر های P و Q و R) و در ضمن با توجه به تعریف شما برای fragmentation میشه گفت این عمل رو هم داریم چون فضای اولیه P آزاد شده
دلیلم هم اینه Wink
راستی چرا تو تعریف متغیرها R رو تعریف نکرده؟؟؟ Undecided

[تصویر:  244186_Capture6gGoY.png]

RE: سوال ۹۳ جامع دوم پارسه (زباله و ارجاع معلق) - mahsalove - 12 بهمن ۱۳۹۲ ۱۲:۲۶ ق.ظ

بله می دانم منظورتون چی هست ولی منم اگر توجه کنید نوشتم طبق تحلیلی که پارسه کرده!Angry
آقای مقسمی هم تو کتابشون همچین مثالی زدن و گفتن در اثرش هم garbage و هم ارجاع معلق به وجود می یاد!ولی اگر به تستهای کنکور نگاهی بندازیم در سال ۸۲ چنین تستی داده شده و داده درونش بوده به خاطر همین garbage بوده!
ضمنا اساتید پارسه اساتیدی بزرگی هستن که من حرف اون اساتیدو بیشتر قبول دارم!من کار به تعریف garbage دارم که تعریف garbage هم همینو می گه!Dodgy
در تست آزمون کتاب مدرسان شریف یا یکی از تست های دیگه پارسه هم توجه کنیم همینجوری تحلیل کردن!Dodgy

RE: سوال ۹۳ جامع دوم پارسه (زباله و ارجاع معلق) - hosshah - 12 بهمن ۱۳۹۲ ۱۲:۳۱ ق.ظ

حالا چرا عصبی میشین Big Grin خب درسته پارسه تحلیل کرده بود ولی خب شما هم موافقشی دیگه
یعنی شما میگی چون این اشاره گر ها مقدار اون محل از حافظه رو تغییر ندادن زباله نداریم؟؟؟؟

RE: سوال ۹۳ جامع دوم پارسه (زباله و ارجاع معلق) - mahsalove - 12 بهمن ۱۳۹۲ ۱۲:۳۹ ق.ظ

ضمنا شی داده رو اول تعریفشو بخوانید !شی داده یعنی داده و مجموعه ای از صفات که حالا به مکانی از حافظه انقیاد داده شده باشه!که بعد از اینکه مسیر از بین برود داده وجود داشته باشد یا حداقل اشاره گری به اون اشاره کنه ولی اینجا نه داده وجود داره نه اشاره گری داره به اون اشاره می کنه ضمنا اینم جواب پارسه:
در این حالت پس از اجرای کد فضایی که Q و p به آن اشاره می کنند از بین می رود!
بهتره آْدم سرسری هر چیو دید نپذیره منم اول مثل شما اینو دیدم و همینو گفتم ولی بعدش که تحلیل کردم درستش همینه!اگر بخواهیم نسبت به کتابها بسنجیم که بعضیهاشون واسه یه تست ۳ تا جواب مختلف دارن!TongueBig Grin

RE: سوال ۹۳ جامع دوم پارسه (زباله و ارجاع معلق) - hoda ahmadi - 13 بهمن ۱۳۹۲ ۱۰:۳۸ ب.ظ

(۱۲ بهمن ۱۳۹۲ ۱۲:۱۳ ق.ظ)hosshah نوشته شده توسط:  سلام باهاتون مخالفم Tongue
تو ایم مسئله هم garbage داریم چون هنوز انقیادش به فضای حافظه هست (فضاهای اولیه R و Q) و هم ارجاع معلق داریم (آزاد شدن فضای اولیه P در حالی که اشاره گر های P و Q و R) و در ضمن با توجه به تعریف شما برای fragmentation میشه گفت این عمل رو هم داریم چون فضای اولیه P آزاد شده
دلیلم هم اینه Wink
راستی چرا تو تعریف متغیرها R رو تعریف نکرده؟؟؟ Undecided

[تصویر:  244186_Capture6gGoY.png]

سلام ببینید دوستان منم میگم فقط ارجاع معلق داره چون اولش شی داده Q زباله میشه اما بعدش وقتی R بهش دسترسی داره یعنی یه مسیر دسترسی داره واسش ایجاد میشه پس مشکل زباله نداره فقط آخرش با دستور free ارجاع معلق میشه!

RE: سوال ۹۳ جامع دوم پارسه (زباله و ارجاع معلق) - shima541 - 14 بهمن ۱۳۹۲ ۱۰:۴۰ ق.ظ

ممنون از جواب همه
پس با این حساب تحلیل مقسمی غلطه چون فضای خالی و هم بعنوان garbage در نظر گرفتهUndecided