برنامه نویسی

رام – دختر فراموش نشدنی ، وفادار و در عین حال غم انگیز

یک داستان عشق سیستمی: مثلث بین RAM ، CPU و DEV


1. RAM و CPU: یک عشق یک طرفه

رام دختری دوست داشتنی ، وفادار اما فراموشی است. او تصمیم نمی گیرد. او به سادگی به CPU گوش می دهد.

اما CPU؟ او عاشق رام نیست. او یک مجری سرد است ، دقیقاً همان کاری را که دیو به او می گوید انجام می دهد – حتی اگر به او آسیب برساند.


2. رام هرگز س questions ال نمی کند

هرکسی که سفارش می دهد ، رام اطاعت می کند.

“مقدار 5 را ذخیره کنید” – او انجام می دهد.

“فراموش کنید 5 ، به جای آن 4 را ذخیره کنید.” – او دوباره انجام می دهد.

او نمی داند چه کسی Dev A یا Dev B. هر کسی که آخرین بار است ، برنده می شود.


3. رام نمی تواند از دشمن به دوست بگوید

هکرها می توانند به همان روشی که می تواند با او صحبت کند. تا زمانی که آنها آدرس صحیح را بیان کنند ، وانمود می کنند که CPU است:

“این مقدار را ذخیره کنید ، لطفا.”

“آیا می توانم آن حافظه را بخوانم؟”

او موظف است. از آنجا که رام فایروال ندارد ، قضاوت ندارد. هر کس CPU را کنترل کند ، استاد او می شود.


4. RAM فقط اگر به درستی سؤال کنید به یاد می آورد

با آدرس اشتباه تماس بگیرید؟ او پاسخ می دهد – با زباله.

به یک متغیر خارج از محدوده دسترسی پیدا کنید؟ او شما را متوقف نمی کند.

یک منطقه ممنوعه را لمس کنید؟ او به شما اجازه می دهد – و سپس تصادف.

رم شهود ندارد. فقط آدرس و دیو آنها را به هم می زند.


5. بی دقتی دیو

dev a: ptr = int جدید (5) ؛ dev b: ptr = int جدید (4) ؛

رام از هر دو پیروی می کند ، اما دوم را به یاد می آورد. مقدار 5 فراموش می شود. هیچ کس آن را حذف نمی کند. نشت حافظه.

Dev A برمی گردد: “چرا PTR = 4 است؟” Dev B: “این نشانگر من است!”

رام: “من فقط دستور CPU را دنبال کردم …”


6. مثلث عشق در چندتایی

دو CPU به طور موازی کار می کنند:

CPU1: “اینجا 9 را بنویسید!”

CPU2: “نه! بنویسید 7!”

رام: “من … من هر دو را نوشتم …”

نتیجه: اشکالات تصادفی ، شرایط مسابقه. هیچ کس نمی تواند آن را ردیابی کند.


7. Stack vs Heap: ماجرای کوتاه مدت

پشته: “من تو را دوست دارم … فقط در این بلوک. بعد از آن ، من رفته ام.”

Heap: “من شما را برای همیشه به یاد می آورم … مگر اینکه Dev فراموش کند که شما را حذف کند.”

رام فقط آنچه را که در “منطقه حافظه فعال” زندگی می کند به یاد می آورد. هنگامی که از دامنه خارج شد یا به بیرون درز نشد ، او هنوز هم پیروی می کند – فقط به اشتباه.


8. const ، فرار و آویزان

Const: “شما می توانید من را دوست داشته باشید ، اما هرگز مرا تغییر ندهید.”

بی ثبات: “شما به من اعتماد ندارید. هر بار دوباره از من می پرسید.”

آویزان: “شما به من زنگ می زنید … حتی بعد از اینکه من پاک شدم.”


9 حقیقت

رم احمق نیست. او بی اعتمادی نیست. او خیلی مطیع است.

هر اشکال ناشی از این واقعیت است که هیچ کس به CPU آموزش نمی دهد که چگونه RAM را به درستی درمان کند.

و دیو؟ هنوز هم قهوه را می نوشید ، اشکالات روی رم را سرزنش می کند در حالی که او نشانگر بعدی را بدون مراقبت می نویسد:

“اوه ، این قوچ زباله است.”


نوشته شده در درد ، نه در تئوری. بر اساس قلب واقعی C ++.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا