کامپیوتر چجوری کار میکنه؟ - مقدمه ای از شروع برنامه نویسی
امروزه کلی برنامه نویس شاید دور و بر خودمون دیده باشیم که درآمدای خیلی خوبی دارن. ممکنه بارها براتون پیش بیاد که بخواین شروع کنین عمیق یاد بگیرین اما هرجا رو که نگاه میکنین میبینین یا آموزشاش خسته کننده است و یا این که یکم میرین جلو گیجتون میکنه.
به نظرم علت اصلی همه اینا اینه که هرکسی که میخواد برنامه نویسی شروع کنه مستقیما میره سراغ این که چطوری کد بزنه جدای از این که کامپیوتر چطوری کار میکنه، الگوریتم چی هست و امثال اینها
تو این مقاله کوتاه سعی میکنم قبل این که با مفاهیم برنامه نویسی آشنا بشین بهتون توضیح بدم که کامپیوترها از اول به چه علت به وجود اومدن.
کامپیوتر (Computer) همونطور که از اسمش معلومه قراره یک چیزی رو محاسبه (compute) بکنه. برای این کار اصلی ترین جزئش میشه CPU که مخفف Central Processing Unit (واحد پردازش مرکزی) هستش. خود همین CPU از 3 بخش اصلی تشکیل میشه:
- واحد ALU: مخفف Arithmetic Logic Unit هستش. وقتی میگیم Arithmeticکارش اینه که با اعداد صحیح کار بکنه. یعنی اگر بر فرض شما بخواین 5 رو با 8 جمع، تفریق، ضرب، و یا تقسیم کنین میره داخل ALU کاراشو انجام بده. وقتیم میگیم Logic یعنی کارای منطقی هم میتونه انجام بده. عملیات منطقی مثل AND, OR, NOT و ... که وقتی سراغ برنامه نویسی بریم برامون ملموس تر میشن.
- واحد FPU: این واحد هم کارش اینطوریه که میاد همون کارایی که ALU با اعداد صحیح میکرد رو این بار با اعداد اعشاری انجام میده.
- واحد Control Unit: خیلی خلاصه بخوایم این واحد رو هم شرح بدیم، اینطوریه که کارای کنترلی رو انجام میده.
اما خب الان ما با CPU میشینم محاسبات انجام میدیم. اینارو باید یه جایی ذخیره کنیم. کجا ذخیره کنیم؟
برا ذخیره سازی داده ها داخل همون CPU یک واحدی تحت عنوان Register گذاشتن. این واحد سرعت انتقال داده اش خیلی زیاده ولی همین که سرعتش به شدت زیاد میشه باعث میشه گرون بشه!
پس برای این که بتونیم با هزینه کمتر حجم زیادی رو داشته باشیم میایم از RAM کمک میگیریم. (هرچند در واقعیت بین این 2 یک Cache هم قرار میگیره که از لحاظ سرعت ما بین این 2 تا هستش و داده هایی که خیلی زیاد استفاده میشن رو اون تو قرار میدیم که بعدا سریع تر بتونیم ازش استفاده کنیم).
اما RAM دو تا مشکل برامون به وجود میاره:
- وقتی بخوایم در 16 گیگ به بالا ازش داشته باشیم هزینش خیلی زیاد میشه
- وقتی کامپیوتر رو خاموش میکنیم همه داده هاش پاک میشه (بهش میگن Volatile)
پس برای حل این 2 تا مشکل یک حافظه ای تحت عنوان HDD هم داخل کامپیوتر قرار میدن. این حافظه یک دیسکیه که نصفش مکانیکیه. همه هم میدونیم که یک عمل مکانیکی (مثل راه رفتن) خیلی کند تره نسبت به یک عمل الکتریکی (روشن شدن لامپ). پس باعث میشه HDD سرعتش خیلی خیلی کندتر بشه نسبت به RAM ولی بشه در حد 500 گیگ و 1 ترابایت رو با یه هزینه معقول ازش داشت.
بعد از مدت ها برای رفع مشکل کندی بیش از اندازه HDD یک حافظه SSD هم به بازار اومد که مشکل کارای مکانیکی HDD رو گذاشت کنار و سرعت رو خیلی خیلی بیشتر کرده. ولی خب بازم به سرعت RAM نمیرسه.
حالا ممکنه برامون یه سوالی پیش بیاد. این که میگیم کامپیوتر محاسبه میکنه، ماشین حساب هم میکنه خب! پس چه فرق میکنن!؟ اول این که ماشین حساب فقط 2 تا ورودی بهش میدی یه خروجی بهت میده. ولی کامپیوتر میتونه یک سری دستورالعمل هارو به ترتیب پشت سر هم اجرا بکنه. دستور العمل هایی که میتونن راه حل های یک مساله مارو توصیف کنن (که بهشون میگیم الگوریتم). همین کار باعث میشه که کامپیوتر یک پرش بزرگی نسبت به ماشین حساب داشته بشه و بشه کلی کارای خفن تری باهاش انجام داد.
این مقدماتی که بهتون گفتم تمام چیزایی هستش که قبل برنامه نویسی باید بلد باشین. امیدوارم براتون مفید باشه.
نسخه ویدیویی این مقاله رو هم میتونین از کانال یوتیوب ام مشاهده بکنین.
موفق باشین :)
مطلبی دیگر از این انتشارات
برنامه نویسی به زبان Dart - انواع شیوه های تعریف متغیر در دارت
مطلبی دیگر از این انتشارات
سلام دنیا
مطلبی دیگر از این انتشارات
آموزش متنی جاوا اسکریپت و برنامه نویسی وب