FaraComp | فرا کامپیوتر: مهندسی و علوم کامپیوتر – Telegram
FaraComp | فرا کامپیوتر: مهندسی و علوم کامپیوتر
1.49K subscribers
68 photos
26 videos
304 links
فراکامپیوتر — کانال تخصصی مهندسی و علوم کامپیوتر

🔸 مدار منطقی
🔸 طراحی کامپایلر
🔸 طراحی الگوریتم
🔸 ساختمان داده‌ها
🔸 معماری کامپیوتر
🔸 ریاضیات گسسته
🔸 و صدها ساعت آموزش جذاب

🚀 برای مشاهده تمام آموزش‌های ویدیویی، روی لینک زیر بزنید:👇
fdrs.ir/tc/ce
Download Telegram
✳️ کامپیوتر چطور ساخته شد؟

‏در دنیای امروز، کامپیوترها چنان در زندگی ما رسوخ کرده‌اند که وجود آن‌ها را امری بدیهی می‌شماریم؛ اما واقعیت این است که کامپیوتر ها در عرض یک شب ساخته نشدند. هر چند بنیان‌گذاری محاسبات ماشینی به طور جدی در قرن نوزدهم میلادی پیگیری شد؛ اما کار از زمان‌هایی بسیار پیش‌تر آغاز شده بود.

══ فهرست مطالب ══

‏ ○ جد بزرگ
‏ ○ معجزه بافندگی
‏ ○ تولد دوباره
‏ ○ عصر دودویی
‏ ○ تلاش انگلیسی
‏ ○ نخستین کامپیوتر تمام الکترونیکی
‏ ○ نخستین کامپیوتر چندکاره


🔸 جد بزرگ

‏ابزارهای محاسباتی از زمان‌های بسیار قدیم همراه بشر بوده‌اند. شاید مسحورکننده‌ترین و پیچیده‌ترین این ابزارها که از دوران کهن برجای مانده است، «دستگاه آنتیکی‌ثیرا» (Antikythera Mechanism) باشد که از بقایای کشتی شکسته‌ای یونانی به دست آمده است که در سال ۱۹۰۰ کشف شد.

‏به عقیده‌ی محققان، این ابزار بی‌نظیر و سرشار از چرخ‌دنده برای پیش‌بینی حرکت خورشید، ماه و سیاره‌ها کاربرد داشته است؛ اما بعضی نیز عقیده دارند دستگاه آنتیکی‌ثیرا در حقیقت نسخه‌ای از یک کامپیوتر اولیه است.

‏امروزه وقتی صحبت از کامپیوتر به میان می‌آوریم، معمولا منظورمان دستگاه‌های چندکاره‌‌ای است که نخستین نمونه آنها در میانه قرن بیستم میلادی پدیدار شدند. این دستگاه‌ها بر پایه رشته‌هایی از اعداد و با پیروی از دستورالعمل‌هایی که با عنوان «برنامه» شناخته می‌شود، عملیات منطقی را انجام می‌دهند.


🔸 معجزه بافندگی

‏«ژوزف ماری ژاکارد» (Joseph Marie Jacquard) بافنده‌ای فرانسوی و مخترعی آماتور بود که تجربیات خود از کار با دستگاه‌های بافندگی را به خوبی در اختراعاتش به‌کار گرفت. در نمایشگاه صنعتی پاریس در سال ۱۸۰۱، ژاکارد از یک دستگاه بافندگی رونمایی کرد که با «خواندن» خودکار زنجیره‌ای از کارت‌های سوراخ شده، قادر بود الگوی بافت پارچه خود را کنترل کند.

‏دستگاه بافندگی ژاکارد انقلابی در صنعت نساجی ایجاد کرد و تنها طی یک دهه، ۱۱ هزار دستگاه از این اختراع در سراسر فرانسه مشغول کار بود. از همه مهم‌تر، این دستگاه بنیان‌گذار ایده ساخت دستگاهی شد که با تغییر چیدمان و ساختارش، انجام کارها و وظایف متفاوت امکان‌پذیر می‌شد؛ ایده‌ای که تاثیر زیادی روی فردی گذاشت که بسیاری او را پدر علم محاسبات و کامپیوتر می‌دانند.

‏سال ۱۸۲۲ و در یک جلسه سخنرانی در انجمن پادشاهی اخترشناسی انگلستان، ریاضیدان و بحرالعلوم معروف، «چارلز بابیج» (Charles Babbage) طرح و عملکرد دستگاهی را مطرح کرد که خودش آن را «موتور تفاضلی» (Difference Engine) می‌نامید؛ دستگاهی که قادر بود محاسبات پیچیده را بسیار سریع‌تر و دقیق‌تر از هر انسانی انجام دهد.



مطالعه ادامه مطلب 👇👇

🔗 کامپیوتر چطور ساخته شد؟ — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

✳️ آموزش طراحی کامپایلر — مجموعه مقالات جامع وبلاگ فرادرس

‏یکی از پایه‌ای‌ترین مباحث در حوزه مهندسی کامپیوتر و برنامه‌نویسی، بحث کامپایلر است. در واقع کامپایلر پلی بین نرم‌افزار و سخت‌افزار رایانه محسوب می‌شود و گنجاندن آن به عنوان یکی از دروس استاندارد رشته مهندسی کامپیوتر و همچنین بسیاری از رشته‌های مرتبط با رایانه نشان دهنده نقش بسزایی است که کامپایلر در معماری رایانه‌ها دارد. لذا در رشته مطالبی که اخیراً در بلاگ فرادرس تنظیم و منتشر کرده‌ایم به بررسی اجزای مختلف کامپایلرها و معرفی و تشریح تک تک مراحل مرتبط پرداختیم. در تصویر زیر مراحل مختلف فرایند کامپایل یک کد منبع به کد ماشین مقصد را ملاحظه می‌کنید:

══ فهرست مطالب ══

‏ ○ مبانی کامپایلر
‏ ○ انواع تجز‌یه
‏ ○ محیط Run-Time (زمان اجرا)


🔸 مبانی کامپایلر

‏ما در سلسله مطالب این مجموعه در ابتدا به مرور مفاهیم مقدماتی و معرفی مراحل کامپایل کردن پرداختیم که می‌توانید در مقاله زیر مطالعه کنید.

‏– کامپایلر، طراحی و معماری آن — به زبان ساده

‏همان طور که در نمودار ابتدای این مقاله نیز مشخص است، در طی فرایند کامپایل کردن کد منبع سه نوع تحلیل روی کد صورت می‌گیرد که نخستین نوع آن، تحلیل واژگانی یا لغوی است. مقاله مرتبط با این تحلیل را می‌توانید در لینک زیر مطالعه کنید. همچنین از جمله مباحثی که در زمان طراحی فاز تحلیل واژه‌ای کامپایلر حائز اهمیت محسوب می‌شوند، عبارت‌های منظم و اتوماتای نامتناهی هستند که هر دو آن‌ها به تفصیل در بخش‌هایی با همین عناوین در این مقاله توضیح داده شده‌اند:

‏– تحلیل واژه‌ای (Lexical Analysis) در طراحی کامپایلر — راهنمای جامع

‏فاز دوم تحلیل کد منبع در زمان طراحی کامپایلر، تحلیل نحوی یا تحلیل ساختاری نام دارد که این فاز نیز در نوشته زیر به تفصیل مورد بحث و بررسی قرار گرفته است:


🔸 انواع تجز‌یه

‏یکی از مباحث مهم در زمینه تحلیل نحوی، تجزیه کد است. از این رو در مطلب زیر به معرفی انواع روش‌های تجزیه کد در طراحی کامپایلر پرداخته‌ایم:

‏– انواع تجزیه در طراحی کامپایلر — راهنمای جامع

‏به طور کلی در فرایند کامپایل کد منبع دو نوع تجزیه (Parsing) به صورت‌های تجزیه بالا به پایین و تجزیه پایین به بالا داریم که در دو نوشته زیر هر دوی آن‌ها مورد بررسی قرار گرفته‌اند:

‏– تجزیه بالا به پایین — طراحی کامپایلر

‏– تجزیه پایین به بالا — طراحی کامپایلر

‏هر خطایی که در کد منبع وجود داشته باشد، در مرحله تجزیه کد مشخص خواهد شد. از این رو در این مرحله باید از روش‌هایی برای بازیابی خطاها استفاده کنیم. روش‌های مختلفی که به این منظور می‌توان مورد استفاده قرار داد، موضوع نوشته‌ای است که در ادامه آمده:



مطالعه ادامه مطلب 👇👇

🔗 آموزش طراحی کامپایلر — مجموعه مقالات جامع وبلاگ فرادرس — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

✳️ گراف در علوم کامپیوتر — راهنمای مقدماتی

‏گراف‌ها در همه وجوه زندگی ما حضور دارند؛ اما احتمالاً آن چنان که باید با آن‌ها آشنا نیستیم. از نظر بسیاری از توسعه‌دهندگان خودآموخته، مفهوم گراف دشوار به نظر می‌رسد. به همین جهت، ممکن است درک گراف‌ها برای توسعه‌دهنده‌های باتجربه و فارغ‌التحصیلان علوم رایانه که با آن‌ها کار نکرده‌اند، دشوار باشد. اما واقعیت این است که گراف روشی جذاب و ضروری برای بازنمایی اطلاعات و روابط در دنیای پیرامون ما محسوب می‌شود. ما می‌توانیم از گراف‌ها برای انجام کارهایی بسیار جذاب به وسیله رایانه استفاده کنیم. الگوریتم‌های گراف ابزارهای زیادی برای درک شبکه‌ها و رابطه‌های پیچیده ارائه می‌کنند. در این مقاله مقدماتی، شما را با مبانی گراف‌ در علوم کامپیوتر آشنا می‌کنیم. ناگفته نماند که با مفاهیم پیچیده، دشوار یا ریاضیاتی سر و کار نخواهیم داشت و صرفاً مفاهیم مقدماتی را معرفی می‌کنیم.

══ فهرست مطالب ══

‏ ○ انگیزه بحث راجع به گراف در علوم کامپیوتر
‏ ○ گره‌ها، رأس‌ها و یال‌ها
‏ ○ جهت‌دار یا غیر جهت‌دار
‏ ○ گراف‌های دوری یا غیر دوری
‏ ○ یال‌های وزن‌دار
‏ ○ مسائلی که می‌توان با گراف حل کرد
‏ ○ سخن پایانی


🔸 انگیزه بحث راجع به گراف در علوم کامپیوتر

‏پیش از آن که وارد مباحث نظری گراف بشویم، در این بخش برخی انگیزه‌هایی که ممکن است برای یادگیری گراف مورد نیاز باشد را ارائه می‌کنیم. در واقع به این سؤال پاسخ می‌دهیم که گراف‌ها چه هستند و با آن‌ها چه می‌توان کرد؟

‏گراف در بنیادی‌ترین شکل خود گروهی از نقطه‌ها است که با خطوطی به هم وصل شده‌اند.

‏این همان تصوری است که باید در ذهن خود داشته باشید. همه مفاهیم پیچیده‌ای مانند (G(V, E که در کتب درسی ارائه می‌شوند صرفاً روشی برای بیان همان مفهوم انتزاعی اتصال نقطه‌ها به هم با استفاده از خطوط است.


🔸 گره‌ها، رأس‌ها و یال‌ها

‏زمانی که دانشمندان رایانه در مورد گراف صحبت می‌کنند، از واژه‌های نقطه و خط استفاده نمی‌کنند. به جای آن به هر نقطه، یک گره یا رأس و به هر خط، یک یال یا کمان گفته می‌شود. متداول‌ترین اصطلاح‌ها رأس و یال هستند. زمانی که می‌بیند فردی برای نمایش گراف از نماد (G(V, E استفاده می‌کند، در واقع منظور وی این است که گراف G دارای مجموعه رأس V و مجموعه یال E است.



مطالعه ادامه مطلب 👇👇

🔗 گراف در علوم کامپیوتر — راهنمای مقدماتی — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

✳️ CCNA چیست ؟ — آزمون، مدرک، گرایش‌ها، بازار کار و درآمد

‏CCNA یک مدرک معتبر برای افرادی است که قصد فعالیت در زمینه شبکه‌های کامپیوتری و فناوری اطلاعات (IT)، خصوصا کار با تجهیزات شرکت سیسکو را دارند. در این مطلب، به سوالات رایجی از قبیل «سیسکو چیست؟»، «مدرک سیسکو چیست؟»، «CCNA چیست؟»، «منابع CCNA چیست؟» «سرفصل‌های CCNA چیست؟» و سایر نکات و مسائل مربوط به CCNA پرداخته شده است. اما، قبل از ورود به بحث CCNA، لازم است ارائه دهنده و خالق این مدرک، به عنوان برجسته‌ترین شرکت در زمینه سخت‌افزار و نرم‌افزار شبکه،‌ معرفی شود.

══ فهرست مطالب ══

‏ ○ سیسکو چیست ؟
‏ ○ مدارک سیسکو چیست ؟
‏ ○ CCNA چیست ؟
‏ ○ معرفی فیلم آموزش سی سی ان ای
‏ ○ سرفصل های CCNA
‏ ○ چطور برای آزمون CCNA‌ آماده شویم ؟
‏ ○ تجدید مجوز CCNA
‏ ○ مشاغل CCNA
‏ ○ بازار کار CCNA
‏ ○ درآمد CCNA چقدر است ؟
‏ ○ فیلم آموزش CCNA فرادرس
‏ ○ جمع بندی


🔸 سیسکو چیست ؟

‏اتحادیه کسب و کار سیسکو سیستم (.Cisco Systems Inc)‌ از شرکت‌های پیشتاز در زمینه شبکه‌های کامپیوتری است. شرکت سیسکو همواره به عنوان مشهورترین تولید کننده و فروشنده تجهیزات شبکه شناخته شده است. همچنین، این شرکت یک ارائه کننده نرم‌افزار و خدمات مربوط به آن است.

‏سیسکو در طول حیاتش روی فناوری‌های شبکه مبتنی بر پروتکل اینترنت (فناوری‌های شبکه مبتنی بر آی‌پی |‌ IP-Based Networking Technologies)،‌ محصولات مسیریابی و سوئیچینگ برای شبکه خانگی (Routing and Switching Products for Home Networking)،‌ تلفن مبتنی بر آی‌پی (IP Telephony | VoIP)، شبکه فیبر نوری (Optical Networking)،‌ امنیت (Security)،‌ ذخیره‌سازی تحت شبکه (Storage Area Networking) و فناوری وایرلس (Wireless Technology) تمرکز داشته است.

‏سندی لِرنِر (Sandy Lerner) و همسرش لِن بوساک (Len Bosack)‌ شرکت سیسکو را در اوایل دهه ۶۰ شمسی تأسیس کردند. در آن زمان،‌ بوساک مسئول رایانه در واحد علوم کامپیوتر دانشگاه استنفورد بود و خانم لرنر همین مسئولیت را در دانشکده تحصیلات تکمیلی رشته اقتصاد دانشگاه برعهده داشت. بوساک و کرک لاکهید (Kirk Logheed)‌ اولین محصول سیسکو را با نام مسیریاب AGS در حالی توسعه دادند که هنوز در استنفورد مشغول به کار بودند. در ادامه و قبل از پرداختن به چیستی CCNA،‌ معرفی مدارک سیسکو و بررسی دلیل ارائه این مدارک توسط این شرکت، ضروری به نظر می‌رسد.


🔸 مدارک سیسکو چیست ؟

‏همان‌طور که گفته شد، فعالیت اصلی سیسکو در زمینه محصولات مسیریابی و سوئیچینگ است که برای مخابره داده‌ها، مکالمه‌های تلفنی و ویدئو از طریق شبکه مورد استفاده قرار می‌گیرند. البته، دامنه فعالیت این شرکت بسیار گسترده‌تر است و سیسکو در سایر زمینه‌های مرتبط با شبکه‌های کامپیوتری نیز فعالیت دارد و محصولات سخت‌افزاری و نرم‌افزاری متعدد و متنوعی را در این خصوص، تولید و ارائه کرده است.

‏بنابراین، برای اطمینان از این که افراد فعال در حرفه آی‌تی، مهارت و دانش لازم برای پشتیبانی از محصولات سیسکو و رفع مشکلات مشتریان در بسیاری از جنبه‌‌ها را داشته باشند،‌ ارائه برنامه صدور گواهینامه شغلی سیسکو (Cisco Career Certification program) بسیار ضروری و منطقی به نظر می‌رسد.

‏برنامه صدور گواهینامه شغلی سیسکو،‌ به صورت یک نقشه راه از سطح مبتدی آغاز شده و سپس در سطوح کاردان (Associate)، کارشناس (professional) و متخصص (Expert)‌ ادامه می‌یابد. البته، در برخی از گرایش‌ها،‌ ارائه گواهی در سطح معمار (Architect) نیز انجام می‌شود. سطح معمار، پس از سطح متخصص و بالاتر از آن قرار دارد.



مطالعه ادامه مطلب 👇👇

🔗 CCNA چیست ؟ — آزمون، مدرک، گرایش‌ها، بازار کار و درآمد — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

✳️ تعمیر هارد درایو با هدف بازیابی اطلاعات آن — راهنمای کاربردی

‏گفته شده که وقتی انسان می‌میرد، کل زندگیش در یک لحظه از جلوی چشمانش عبور می‌کند. البته همین اتفاق در صورتی که مطلع شوید با یک هارد درایو خراب مواجه شده‌اید نیز ممکن است برای شما اتفاق بیافتد! در این لحظه یاد هزاران عکس می‌افتید که از آن‌ها پشتیبان‌گیری نکرده‌اید و احتمالاً به فکر بازیابی آن‌ها بیافتید. در این مقاله روش این کار را توضیح می‌دهیم. اگر هارددیسک شما از کار افتاده است، با استفاده از این راهنما می‌توانید داده‌های خود را بازیابی کنید.

══ فهرست مطالب ══

‏ ○ داستان یک فرد نادم
‏ ○ قاب و کابل‌های هارد اکسترنال را بررسی کنید
‏ ○ همه اتصال‌های کابلی هارد درایو اینترنال را بررسی کنید
‏ ○ آیا هارد درایو شما سر و صدا تولید می‌کند؟
‏ ○ آیا ویندوز درایو شما را شناسایی می‌کند؟
‏ ○ آیا PCB شکسته است؟
‏ ○ جادو و جمبل
‏ ○ توصیه‌ای برای راهبرد پشتیبان‌گیری
‏ ○ با یک متخصص در زمینه بازیابی داده‌ها مشورت کنید
‏ ○ احیای درایو


🔸 داستان یک فرد نادم

‏در این بخش داستانی را برای شما تعریف می‌کنیم که ممکن است برای هر کدام از ما اتفاق بیفتد. قهرمان داستان ما چند سال پیش با یک خرابی هارد دیسک مواجه شده است. ابتدای قضیه از عملکرد عجیب لپ‌تاپ آغاز می‌شود. زمانی که این عملکرد عجیب پس از ریبوت لپ‌تاپ همچنان تداوم می‌یابد، وی متوجه می‌شود که مشکل چیزی بیش از پر شدن ظرفیت RAM است. درنتیجه بی‌درنگ اقدام به پشتیبانی‌گیری از فایل‌های جدید خود می‌کند. نیم ساعت بعد هارددیسک با سر و صدا از کار می‌افتد و لپ‌تاپ دیگر بوت نمی‌شود.

‏وی قبلاً نسخه‌های پشتیبانی از فایل‌های خود تهیه کرده بود، اما شامل همه چیز نمی‌شد. زیرا چند هفته قبل‌تر ظرفیت درایو پشتیبان پر شده بود و برای پشتیبان‌گیری از فایل‌های مهم‌تر کاری تصمیم گرفته بود که عکس‌های شخصی‌اش را حذف کند. البته او یک هارد درایو جدید نیز تهیه کرده بود، اما فرصت تهیه پشتیبان کامل از فایل‌های خود را نیافته بود و از این رو در این واقعه عکس‌هایش از دست رفتند و نادم و پشیمان شد.

‏این فرد چندین هفته از وقت خود را صرف جستجوی روش‌های مختلف برای بازیابی داده‌ها کرد و همه روش‌های گوناگون را امتحان کرد تا اطلاعات هارد دیسک قدیمی خود را بازیابی کند. در ادامه این مقاله با ما همراه باشید تا روش‌هایی که وی امتحان کرد را متوجه بشوید، به این امید که شما به موقع فایل‌های پشتیبان خود را تهیه بکنید و مجبور به امتحان کردن این روش‌ها نشوید.


🔸 قاب و کابل‌های هارد اکسترنال را بررسی کنید

‏زمانی که هارد درایو اکسترنال از کار می‌افتد، دلایل این خرابی می‌تواند کاملاً مشابه هارددیسک داخلی باشد. با این وجود در پاره‌ای موارد این درایو نیست که از کار افتاده، بلکه یک اتصال درون قاب قطع شده است. در این حالت درست کردن درایو کار بسیار آسانی است.

‏پیش از باز کردن سخت‌افزار باید مطمئن شوید که الکتریسیته ساکن بدن خود را تخلیه کرده‌اید. هارد درایو را از قاب آن جدا کنید و از یک کابل دیتا IDE/SATA و کانکتورهای برق برای نصب درایو به صورت اینترنال به رایانه رومیزی خود استفاده کنید. به طور جایگزین می‌توانید یک آداپتر IDE/SATA به USB و یا یک قالب USB جدید بگیرید و بدین ترتیب درایو خود را به صورت اکسترنال و از طریق یو‌اس‌بی به سیستم وصل کنید.

‏زمانی که درایو اکسترنال را مجدداً به رایانه خود وصل کردید، در صورتی که اشکال از قاب آن باشد، ویندوز باید آن را شناسایی کرده و یک حرف درایو به آن اختصاص دهد. در این حالت درایو در بخش File Explorer > This PC ظاهر می‌شود. همچنین می‌توانید بخش Disk Drives در Device Manager را نیز بررسی کنید. برای رفتن به Device Manager کلیدهای میانبر Win + X را بزنید تا گزینه مربوطه را مشاهده کنید.



مطالعه ادامه مطلب 👇👇

🔗 تعمیر هارد درایو با هدف بازیابی اطلاعات آن — راهنمای کاربردی — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

✳️ مفهوم فناوری ۷ نانومتری و ۱۰ نانومتری در CPU — به زبان ساده

‏CPU-ها از میلیاردها ترانزیستور بسیار کوچک تشکیل یافته‌اند. ترانزیستورها دروازه‌های الکتریکی هستند که برای اجرای محاسبات، روشن یا خاموش می‌شوند. ترانزیستور برای این کار به برق نیاز دارد و هر چه ترانزیستور کوچک‌تر باشد، توان کمتری مصرف می‌کند. فناوری ۷ نانومتری و یا ۱۰ نانومتری در واقع مقیاسی برای اندازه این ترانزیستورها هستند. نانومتر یک واحد طول بسیار کوچک و در عین حال معیاری مفید برای اندازه‌گیری قدرت محاسباتی یک CPU است.

══ فهرست مطالب ══

‏ ○ دلیل اهمیت فناوری ۷ نانومتری و ۱۰ نانومتری چیست؟
‏ ○ نانومتر واقعاً به چه معنا است؟
‏ ○ تراشه‌های موبایل بیشترین بهبود را شاهد خواهند بود


🔸 دلیل اهمیت فناوری ۷ نانومتری و ۱۰ نانومتری چیست؟

‏«قانون مور» (Moore’s Law) یک قانون قدیمی در صنعت سخت‌افزار است که بیان می‌کند تعداد ترانزیستورهای روی یک تراشه هر سال دو برابر و هزینه تولید آن نصف می‌شود. مدت مدیدی است که این قانون پابرجا بوده است؛ اما اخیراً روند آن کندتر شده است. در اواخر دهه ۱۹۹۰ و اوایل ۲۰۰۰، اندازه ترانزیستورها هر ساله نصف می‌شد و منجر به بهبود زیادی در طی یک زمان‌بندی منظم شد. اما اینک فشرده‌سازی بیشتر ترانزیستورها دشوار شده است و ما از سال ۲۰۱۴ به بعد دیگر شاهد فشرده‌سازی ترانزیستورها از سوی اینتل نبوده‌ایم. این فرایندهای تولید جدید یعنی فناوری‌های ۱۰ و ۷ نانومتری، در واقع نخستین فشرده‌سازی ترانزیستورها پس از مدتی طولانی به خصوص از سوی شرکت اینتل محسوب می‌شوند و بدین ترتیب شاهد احیای نسبی قانون مور خواهیم بود.

‏علی‌رغم این تأخیر اینتل، امروزه حتی دستگاه‌های موبایل نیز به لطف تراشه‌های A۱۲X اپل شانس بهره‌مندی از فناوری نانومتری TSMC را یافته‌اند و سامسونگ نیز فناوری خاص ۱۰ نانومتری خود را ابداع کرده است. با توجه به نسل بعدی فناوری ۷ نانومتری TSMC این فرصت برای تولیدکنندگان دیگر وجود دارد که عملکرد اینتل را پشت سر بگذارند و رقابتی سالم با انحصار اینتل، دست‌کم تا زمانی که هنوز تراشه‌های ۱۰ نانومتری Sunny Cove را به بازار عرضه نکرده است، به راه بیندازند.


🔸 نانومتر واقعاً به چه معنا است؟

‏CPU-ها با استفاده از تکنیک «لیتوگرافی نوری» (photolithography) ساخته می‌شوند. در این تکنیک، تصویری از CPU روی یک ورقه سیلیکونی حک می‌شود. شیوه دقیق انجام این کار غالباً به نام «process node» شناخته می‌شود و بر اساس میزان توانایی سازنده در کوچک ساختن ترانزیستورها اندازه‌گیری می‌شود.

‏از آنجا که ترانزیستورهای کوچک‌تر کارایی بیشتری دارند، می‌توانند محاسبات بیشتری را بدون این که بیش از حد داغ شوند، انجام دهند. این وضعیت بسیار مناسب است، زیرا داغ شدن در اغلب موارد یک عامل محدودکننده برای عملکرد CPU است. بدین ترتیب امکان ساخت تراشه‌هایی با اندازه کوچک‌تر نیز فراهم می‌شود که موجب کاهش هزینه و افزایش چگالی در اندازه‌های یکسان می‌شود و این بدان معنی است که تعداد هسته‌های بیشتری می‌توان روی یک تراشه داشت. فناوری ۷ نانومتری عملاً دو برابر فشرده‌تر از فناوری ۱۴ نانومتری است و به شرکت‌هایی مانند AMD امکان می‌دهد که تراشه‌های سرور ۶۴ هسته‌ای ارائه کنند. این تراشه‌ها نسبت به تراشه‌های قبلی که ۳۲ هسته‌ای بودند، بهبود عملکرد زیادی دارند.



مطالعه ادامه مطلب 👇👇

🔗 مفهوم فناوری ۷ نانومتری و ۱۰ نانومتری در CPU — به زبان ساده — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

✳️ الگوریتم چیست؟ — به زبان ساده

‏الگوریتم کلمه‌ای است که بسیار با آن مواجه می‌شویم. اما وقتی در مورد الگوریتم‌های یوتیوب یا فیسبوک صحبت می‌کنیم، منظورمان دقیقاً چیست؟ الگوریتم‌ها چه هستند و چرا افراد تا این حد از آن‌ها در هراس هستند؟

══ فهرست مطالب ══

‏ ○ الگوریتم‌ها، دستورالعمل حل مسئله هستند
‏ ○ اغلب افراد از «الگوریتم» و «یادگیری ماشین» به جای هم استفاده می‌کنند
‏ ○ چرا الگوریتم‌ها بحث‌ برانگیز هستند؟
‏ ○ چطور می‌توانیم از واژه الگوریتم استفاده کنیم؟


🔸 الگوریتم‌ها، دستورالعمل حل مسئله هستند

‏ما در دنیایی زندگی می‌کنیم که گرچه رایانه‌ها در لحظه لحظه زندگی ما نفوذ و رسوخ کرده‌اند، اما درک دقیقی از کارکرد آن‌ها وجود ندارد. با این حال یک حوزه در علوم رایانه وجود دارد که هر فردی می‌تواند مبانی آن را درک کند. این زمینه از دانش رایانه به نام برنامه‌نویسی شناخته می‌شود.

‏برنامه‌نویسی صرفاً یک عنوان شغلی جذاب محسوب نمی‌شود؛ بلکه مبنای همه نرم‌افزارهای رایانه‌ای از آفیس مایکروسافت تا نرم‌افزارهای سخنگوی تلفنی است. حتی اگر دانش شما از برنامه‌نویسی تنها منحصر به فیلم‌های خیلی قدیمی و گزارش‌های خبری زرد باشد، احتمالاً متوجه هستید که کار یک برنامه‌نویس چیست. برنامه‌نویس کدی را برای رایانه می‌نویسد و رایانه با استفاده از دستورالعمل‌های تعریف شده آن کد وظایفی را برای حل مسائل اجرا می‌کند.

‏اینک باید گفت که در دنیای دانش رایانه، الگوریتم در واقع عنوانی جذاب برای نامیدن کد است. هر مجموعه دستورالعمل که به یک رایانه اعلام کند مسائل را چگونه حل کند یک الگوریتم محسوب می‌شود؛ حتی اگر آن وظیفه بسیار آسان باشد. زمانی که رایانه خود را روشن می‌کنید، یک مجموعه از دستورالعمل‌های «شیوه روشن شدن» اجرا می‌شوند. زمانی که رایانه NASA از داده‌های موج رادیویی خام برای رندر کردن یک عکس فضایی استفاده می‌کند، همچنان یک الگوریتم اجرا شده است.


🔸 اغلب افراد از «الگوریتم» و «یادگیری ماشین» به جای هم استفاده می‌کنند

‏در گذشته، برنامه‌نویسان و فرهنگ عامه اغلب دستورالعمل‌های محاسباتی را به صورت کد می‌نامیدند. این وضعیت امروزه نیز تا حدودی زیادی برقرار است. یادگیری ماشین زمینه وسیع و مبهمی از محاسبات است که در آن به جای کد از الگوریتم استفاده می‌شود. بدیهی است که این مسئله نیز بر سردرگمی پیچیدگی موجود پیرامون کلمه الگوریتم می‌افزاید.

‏یادگیری ماشین مدت‌های زیادی است که وجود دارد، اما صرفاً در طی حدوداً ۱۵ سال اخیر بوده است که به بخش بزرگی از دنیای دیجیتال تبدیل شده است. با این که یادگیری ماشین مانند یک ایده پیچیده به نظر می‌رسد، اما درک آن کاملاً آسان است. برنامه نویسان نمی‌توانند کدهای خاص را برای هر موقعیت نوشته و تست کنند و از این رو کدی را می‌نویسند که بتواند خودش کدنویسی کند.

‏یادگیری ماشین را می‌توان مانند یک شکل عملی از هوش مصنوعی تصور کرد. اگر شما تعداد کافی از ایمیل‌های رئیس خود را به صورت اسپم علامت‌گذاری کنید، در این صورت کلاینت ایمیل به صورت خودکار همه ایمیل‌های رئیس را به صورت اسپم نمایش می‌دهد. به طور مشابه، گوگل از یادگیری ماشین برای مطمئن شدن از این که نتایج جستجوی یوتیوب مرتبط بوده‌اند بهره می‌گیرند. آمازون نیز از یادگیری ماشین استفاده می‌کند تا محصولاتی که بهتر است بخرید را به شما پیشنهاد کند.



مطالعه ادامه مطلب 👇👇

🔗 الگوریتم چیست؟ — به زبان ساده — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

✳️ درس الگوریتم های پیشرفته | مفاهیم پایه به زبان ساده

‏درس الگوریتم های پیشرفته از جمله مفاد درسی مقطع کارشناسی ارشد رشته‌های مهندسی کامپیوتر – نرم‌افزار، مهندسی کامپیوتر – الگوریتم‌ها و محاسبات و مهندسی کامپیوتر- هوش مصنوعی است. همچنین، درس الگوریتم های پیشرفته یکی از دروس اختیاری مقطع کارشناسی ارشد رشته مهندس فناوری اطلاعات نیز محسوب می‌شود. علاوه بر آنکه درس الگوریتم های پیشرفته یکی از مباحث درسی رشته‌های مهندسی کامپیوتر و فناوری اطلاعات است، یک مبحث پایه‌ای برای فعالیت در حوزه‌های «هوش مصنوعی» (Artificial Intelligence)، «یادگیری ماشین» (Machine Learning) و «علم داده» (Data Science) نیز به شمار می‌آید. تسلط بر مبحث تحلیل و طراحی الگوریتم ها و نظریه الگوریتم های پیشرفته به برنامه‌نویس‌ها نیز در حل بهتر مسائل برنامه‌نویسی و نوشتن کدهایی با کارایی و سرعت اجرای بالاتر و مصرف حافظه کم‌تر، کمک شایان توجهی می‌کند.

══ فهرست مطالب ══

‏ ○ الگوریتم چیست؟
‏ ○ فلوچارت
‏ ○ ساختارهای داده
‏ ○ ساختارهای داده پیشرفته
‏ ○ تحلیل الگوریتم‌ها
‏ ○ تحلیل پیشرفته الگوریتم‌ها و آنالیز استهلاکی
‏ ○ رده‌بندی مسائل محاسباتی
‏ ○ الگوریتم‌های مرتب‌سازی
‏ ○ روش‌های طراحی الگوریتم‌ها
‏ ○ روش‌های تکرار شونده
‏ ○ روش‌های بازگشتی
‏ ○ روش‌های تقسیم و حل
‏ ○ روش شاخه و حد
‏ ○ روش حریصانه
‏ ○ برنامه‌نویسی خطی
‏ ○ برنامه‌نویسی پویا
‏ ○ روش‌های پَس‌گَرد
‏ ○ تحلیل احتمالی الگوریتم‌ها
‏ ○ روش‌های چند ریسمانی
‏ ○ چند جمله‌ای و تبدیل فوریه سریع
‏ ○ روش‌های نظریه اعداد
‏ ○ روش‌های تقریبی
‏ ○ الگوریتم‌های گراف
‏ ○ تطبیق رشته
‏ ○ هندسه محاسباتی
‏ ○
‏ ○ کتب مرجع برای درس تحلیل و طراحی الگوریتم ها و درس الگوریتم های پیشرفته
‏ ○ منابع آموزشی ویدئویی برای درس تحلیل و طراحی الگوریتم ها و درس الگوریتم های پیشرفته


🔸 الگوریتم چیست؟

‏در درس تحلیل و طراحی الگوریتم ها، ابتدا به مفهوم الگوریتم‌ها پرداخته می‌شود. بنابراین، در اینجا نیز ابتدا واژه‌شناسی کلمه «الگوریتم» (Algorithm)، تعریف الگوریتم، مثالی از یک الگوریتم، کاربردهای الگوریتم‌ها و آینده الگوریتم‌ها مورد بررسی قرار می‌گیرد. کلمه الگوریتم بر خلاف تصویر بسیاری از افراد که فکر می‌کنند این کلمه از ریشه کلمه‌های یونانی Arithmos (به یونانی αριθμός) به معنای «عدد» و «Algos» (به یونانی άλγος) به معنای «درد» است، از این دو کلمه گرفته نشده است.

‏بلکه، این کلمه از نام دانشمند ایرانی قرن نهم میلادی، «محمد بن موسی خوارزمی» (Muhammad ibn Musa al-Khwarizmi) گرفته شده است. خوارزمی، بیشتر به خاطر نوشتن رساله «المختصر فی حساب الجبر والمقابله» (The Compendious Book on Calculation by Completion and Balancing) معروف است؛ کتابی که کلمه «جبر» (Algebra) از آن آمده است. خوارزمی در رساله دیگری نیز سیستم ده‌دهی نوین را برای نوشتن و دستکاری اعداد معرفی کرد.

‏«الگوریتم» (Algorithm) یک توالی صریح، دقیق، بدون ابهام و قابل اجرا به لحاظ مکانیکی از دستورات اولیه است که معمولا برای انجام کار و هدف خاصی، تعبیه شده‌اند. در واقع، یک الگوریتم روال یا فرمولی برای حل یک مسئله بر مبنای انجام یک توالی از فعالیت‌ها است. یک برنامه کامپیوتری را می‌توان یک الگوریتم حاوی جزئیات دقیق در نظر گرفت. الگوریتم‌ها به طور گسترده در حوزه فناوری اطلاعات مورد استفاده قرار می‌گیرند.


🔸 فلوچارت

‏«فلوچارت» (Flowchart) نوعی نمودار است که جریان کاری یا فرایند را نشان می‌دهد. می‌توان گفت که یک فلوچارت در واقع نمایش نموداری یک الگوریتم و یک رویکرد مرحله به مرحله برای حل مسئله است. فلوچارت از اشکال هندسی تشکیل شده است که هر یک نماد نوع خاصی از عملیات هستند. این فلوچارت‌ها با استفاده از جهت‌نماها به یکدیگر متصل شده‌اند. این نمایش بصری در واقع مدل راهکار برای یک مسئله داده شده را نشان می‌دهد.



مطالعه ادامه مطلب 👇👇

🔗 درس الگوریتم های پیشرفته | مفاهیم پایه به زبان ساده — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

2
✳️ ساختمان داده (Data Structure) — راهنمای جامع و کاربردی

‏آشنایی با «ساختمان داده‌ها» (Data Structures) از جمله نیازهای دانشمندان داده، مهندسان داده، داده‌کاوها، کارشناسان یادگیری ماشین و برنامه‌نویس‌ها محسوب می‌شود. مهندسین نرم‌افزار بیش از ۴۰ سال است که با انواع ساختارهای داده سر و کار دارند، از این رو در اغلب مسائل موجود در داده‌کاوی، یادگیری ماشین و برنامه‌نویسی نیاز به داشتن درک عمیقی از ساختمان داده‌ها وجود دارد. اهمیت این مبحث تا حدی است که در بسیاری از مصاحبه‌های استخدام پرسش‌هایی پیرامون آن مطرح می‌شود. بنابراین در این مطلب، به موضوع ساختمان داده‌ها پرداخته شده است. سرفصل‌های مورد بررسی در این مطلب در ادامه آمده‌اند.

══ فهرست مطالب ══

‏ ○ ساختمان داده چیست؟
‏ ○ چرا به ساختمان داده نیاز است؟
‏ ○ ساختارهای داده متداول کدامند؟


🔸 ساختمان داده چیست؟

‏به بیان ساده، «ساختمان داده» (Data Structure) ظرفی است که داده‌ها در آن در یک قالب خاص ذخیره‌سازی می‌شوند. این «قالب» به ساختمان داده‌ها این امکان را می‌دهد که در برخی از عملیات کارآمد و در برخی دیگر ناکارآمد باشند. در یک مساله جاری باید ساختمان داده‌ای انتخاب شود که بهینه‌ترین حالت ممکن است.


🔸 چرا به ساختمان داده نیاز است؟

‏ساختمان داده‌ها برای ذخیره‌سازی داده‌ها به شکل سازمان یافته قابل استفاده هستند. از آنجا که داده حیاتی‌ترین موجودیت در علم کامپیوتر است، ارزش واقعی ساختمان داده‌ها روشن است. اهمیتی ندارد که کارشناس در حال حل چه مساله‌ای است، از هر رو به نوعی با داده سر و کار دارد. از جمله مسائلی که کارشناسان به آن‌ها می‌پردازند می‌توان به حقوق کارمندان یک سازمان، قیمت سهام، لیست خار و بار و یا حتی یک راهنمای تلفن ساده اشاره کرد. بر اساس سناریوهای گوناگون، داده‌ها را باید در فرمت (قالب) خاصی ذخیره کرد. ساختمان داده‌های گوناگونی وجود دارند که پاسخگوی نیازهای کاربران جهت ذخیره‌سازی داده‌ها در قالب‌های گوناگون هستند. همچنین، جهت مطالعه بیشتر پیرامون ارتباط ساختمان داده و درس تحلیل و طراحی الگوریتم ها و درس الگوریتم های پیشرفته (درس نظریه الگوریتم پیشرفته)، مطالعه مطلب «درس الگوریتم های پیشرفته | مفاهیم پایه به زبان ساده» پیشنهاد می‌شود.



مطالعه ادامه مطلب 👇👇

🔗 ساختمان داده (Data Structure) — راهنمای جامع و کاربردی — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

✳️ آموزش ساختمان داده — مجموعه مقالات جامع وبلاگ فرادرس

‏ساختمان داده (ساختار داده) روش برنامه‌نویسی شده برای ذخیره‌سازی داده است تا بتوان به طرز کارآمدی از آن بهره جست. تقریباً همه اپلیکیشن‌ها از انواع مختلفی از ساختمان داده به روش‌های متفاوت استفاده می‌کنند. ما در سلسله مباحث آموزش ساختمان داده در بلاگ فرادرس به معرفی مفاهیمی پرداخته‌ایم که برای درک ساختارها و الگوریتم‌های مختلف مورد استفاده در کاربردهای گوناگون کمک می‌کنند. مطالبی که در این سلسله مقالات ارائه شده‌اند، به صورت زیر دسته‌بندی می‌شوند.

══ فهرست مطالب ══

‏ ○ مبانی ساختمان داده
‏ ○ الگوریتم‌های داده
‏ ○ الگوریتم‌های جستجوی داده
‏ ○ مرتب‌سازی داده
‏ ○ گراف و درخت
‏ ○ بازگشت


🔸 مبانی ساختمان داده

‏مفاهیم مقدماتی ساختمان‌ها و الگوریتم‌های داده در مقاله‌ زیر ارائه شده است. در این مقاله برخی مفاهیم ابتدایی و همچنین مواردی که در زمان اجرا مورد نیاز هستند به همراه روش راه‌اندازی محیط برنامه‌نویسی زبان C برای بررسی عملی مسائل مطرح شده در مقاله آموزش داده شده است:

‏– ساختار داده و الگوریتم‌ها — راهنمای مقدماتی

‏در ادامه در مطلب زیر به تعریف داده، انواع آن و برخی عملیات‌های ابتدایی که روی داده‌ها صورت می‌گیرد، پرداخته‌ایم. همچنین با ساختمان داده‌ای به نام آرایه شیوه نمایش و عملیات‌های آن آشنا می‌شوید:

‏– معرفی مبانی ساختار داده و آرایه‌های داده‌ای

‏همچنین، جهت مطالعه بیشتر پیرامون ارتباط ساختمان داده و درس تحلیل و طراحی الگوریتم ها و درس الگوریتم های پیشرفته (درس نظریه الگوریتم پیشرفته)، مطالعه مطلب «درس الگوریتم های پیشرفته | مفاهیم پایه به زبان ساده» پیشنهاد می‌شود.


🔸 الگوریتم‌های داده

‏در ادامه این مطالب به معرفی انواع الگوریتم‌های مختلف که در ساختمان داده مورد استفاده قرار می‌گیرند، پرداخته‌ایم. در مقاله زیر با مفاهیم اولیه الگوریتم و همچنین الگوریتم‌های مجانبی، حریصانه، تقسیم و حل و برنامه‌نویسی پویا آشنا می‌شوید:

‏– معرفی الگوریتم‌های مجانبی، حریصانه و برنامه‌نویسی دینامیک

‏پشته و صف دو مورد از ساختارهای داده‌ای هستند که بیشترین استفاده را در کاربردهای مختلف دارند. این دو ساختار داده در مطلب زیر به تفصیل مورد بحث و بررسی قرار گرفته‌اند:

‏– پشته (Stack)، صف (Queue) و تجزیه عبارت



مطالعه ادامه مطلب 👇👇

🔗 آموزش ساختمان داده — مجموعه مقالات جامع وبلاگ فرادرس — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

✳️ مفاهیم سیستم عامل — راهنمای جامع

‏سیستم عامل (OS) رابط بین کاربر رایانه و سخت‌افزار آن است. یک سیستم عامل در واقع نرم‌افزاری است که همه وظایف پایه‌ای مانند مدیریت فایل، مدیریت حافظه، مدیریت پروسه‌ها، مدیریت ورودی‌ها و خروجی‌ها و کنترل دستگاه‌هایی مانند درایوهای دیسک و پرینترها را بر عهده دارد. در این سری از نوشته‌های بلاگ فرادرس که این نوشته اولین بخش آن محسوب می‌شود، به بررسی جامع مفاهیم، کارکردها و نقش سیستم عامل می‌پردازیم. برخی سیستم‌های عامل محبوب شامل لینوکس، OS X، VMS، OS/۴۰۰، AIX، Z/OS و غیره هستند.

══ فهرست مطالب ══

‏ ○ تعریف سیستم عامل
‏ ○ مدیریت حافظه
‏ ○ مدیریت پردازنده
‏ ○ مدیریت دستگاه‌ها
‏ ○ مدیریت فایل
‏ ○ فعالیت‌های مهم دیگر


🔸 تعریف سیستم عامل

‏سیستم عامل برنامه‌ای است که به عنوان یک رابط بین کاربر و سخت‌افزار کامپیوتر عمل می‌کند و اجرای عملی انواع برنامه‌ها را کنترل می‌کند.

‏در ادامه برخی از ویژگی‌های مهم یک سیستم عامل ارائه شده است:

‏– مدیریت حافظه

‏– مدیریت پروسه‌ها

‏– مدیریت لوازم رایانه

‏– مدیریت فایل

‏– امنیت

‏– کنترل روی عملکرد سیستم

‏– محاسبه کارها

‏– کمک به تشخیص خطاها

‏– هماهنگی بین نرم‌افزارهای دیگر و کاربران


🔸 مدیریت حافظه

‏منظور از مدیریت حافظه در واقع مدیریت حافظه اصلی رایانه است. حافظه اصلی آرایه بزرگی از کلمه (word) ها و بایت‌ها است که در آن هر کلمه یا بایت آدرس خاص خود را دارد.

‏حافظه اصلی یک روش ذخیره‌سازی سریع است که می‌تواند به طور مستقیم از سوی CPU مورد دسترسی قرار گیرد. برای این که یک برنامه اجرا شود، باید در حافظه اصلی قرار داشته باشد. یک سیستم عامل فعالیت‌های زیر را برای مدیریت حافظه انجام می‌دهد:

‏– رد فعالیت‌هایی که در حافظه اصلی صورت می‌پذیرد را نگه‌داری می‌کند، یعنی بررسی می‌کند که کدام بخش‌های حافظه از سوی کدام برنامه‌ها اشغال شده‌اند و کدام بخش‌ها مورد استفاده قرار نگرفته‌اند.

‏– در زمان اجرای برنامه‌های چندگانه، سیستم عامل تصمیم می‌گیرد که کدام پروسه چه مقدار حافظه و از کدام موقعیت دریافت می‌کند.

‏– زمانی که برنامه‌ای درخواست حافظه می‌کند، آن را تخصیص می‌دهد.

‏– زمانی که پروسه‌ای دیگر به حافظه نیاز نداشته باشد، آن را تخصیص زدایی کرده و خاتمه می‌دهد.



مطالعه ادامه مطلب 👇👇

🔗 مفاهیم سیستم عامل — راهنمای جامع — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

✳️ رشته علوم کامپیوتر | معرفی گرایش ها، حقوق و درآمد و بازار کار + فیلم آموزش رایگان

‏در این مطلب از مجموعه مطالب معرفی رشته‌های دانشگاهی مجله فرادرس، به رشته علوم کامپیوتر پرداخته‌ایم و سعی کرده‌ایم تناسب آن با روحیات افراد، دروسی که برای موفقیت در این رشته باید در آن‌ها پایه‌ای قوی‌تر داشت، گرایش‌های آن، بازار کار و سایر موارد مرتبط را مورد بررسی قرار دهیم.

══ فهرست مطالب ══

‏ ○ رشته علوم کامپیوتر مناسب چه کسانی است؟
‏ ○ کدام دروس دوره دبیرستان در رشته علوم کامپیوتر بیشتر کاربرد دارند؟
‏ ○ گرایش‌های رشته علوم کامپیوتر برای ادامه تحصیل چه هستند؟
‏ ○ مهم‌ترین دروس دانشگاهی رشته علوم کامپیوتر چه هستند؟
‏ ○ فارغ التحصیل رشته علوم کامپیوتر در چه کارها و صنایعی می‌تواند شاغل شود؟
‏ ○ بازار کار رشته علوم کامپیوتر به چه صورت است؟
‏ ○ امکان ادامه تحصیل در رشته علوم کامپیوتر در داخل ایران چگونه است؟
‏ ○ امکان ادامه تحصیل در رشته علوم کامپیوتر در خارج از کشور به چه صورت است؟
‏ ○ دروس دانشگاهی رشته علوم کامپیوتر تا چه میزان نیازهای بازار کار را پاسخگو هستند؟


🔸 رشته علوم کامپیوتر مناسب چه کسانی است؟

‏رشته‌ علوم کامپیوتر برای مطالعه‌ نحوه‌ محاسبات به وجود آمد و یک راه ارتباطی موثر بین دانش کامپیوتر و ریاضی است؛ مهمترین هدف این رشته، دستیابی به بهترین روش، برای حل یک مسئله در کمترین زمان و با بالاترین دقت است.

‏خروجی رشته‌ علوم کامپیوتر، افرادی با دید ریاضی نسبت به مسائل منطقی در حوزه‌های مختلف مرتبط و غیر مرتبط با کامپیوتر است. نگرش فارغ التحصیلان این رشته به صورت پایه‌ای نسبت به موضوعات است و به عنوان مثال در آن، علاوه بر اموختن زبان‌های برنامه‌نویسی، نحوه‌ ساخت آن‌ها (زبان‌های برنامه‌نویسی) هم مورد بررسی قرار می‌گیرد.

‏پایه و اساس رشته‌ علوم کامپیوتر علاقه به ریاضیات است. دانشجوی این رشته باید علاوه بر مباحث ریاضی به ساخت استدلال و اثبات موضوعات مختلف با دید منطقی و عددی اشتیاق داشته باشد (حتی مسائل روزمره‌ جهان پیرامون). واژگان علوم کامپیوتر و گرایش‌های مربوطه بر خلاف معنا‌شناسی، برای انجام محاسبات، بیشتر نیازمند قلم و کاغذ هستند تا کامپیوتر.


🔸 کدام دروس دوره دبیرستان در رشته علوم کامپیوتر بیشتر کاربرد دارند؟

‏با توجه به وابستگی زیاد رشته‌ علوم کامپیوتر به ریاضیات، افرادی که فارغ‌ التحصیل رشته ریاضی‌ و فیزیک در دوره‌ متوسطه هستند، شرایط بهتری از نظر پیش‌نیازهای لازم نسبت به فارغ‌التحصیلان سایر رشته‌ها دارند.

‏در گرایش‌های مختلف علوم کامپیوتر، دروس مرتبط با آمار به عنوان پیش نیاز برای درس شبیه‌سازی هستند که با توجه به وجود آمار و احتمال در دوره‌ متوسطه و در رشته‌ ریاضی و فیزیک، درصد موفقیت فارغ التحصیلان از این رشته در پشت سر گذاشتن این دروس به مراتب بیشتر از سایرین است. دروس مربوط به فیزیک و ریاضیات گسسته هم به عنوان پیش نیاز برای سایر دروس تخصصی و پایه‌ای هستند و به دلیل آشنا شدن با این مباحث در دوره‌ متوسطه، آمادگی فارغ التحصیلان از این رشته نسبت به سایرین برای گذراندن واحدهای مربوطه بیشتر است.

‏فارغ التحصیلان رشته‌ فنی و حرفه‌ای گرایش کامپیوتر هم شرایط مناسبی برای ورود به دنیای علوم کامپیوتر خواهند داشت؛ زیرا این قشر پیش از این با مقدمات لازم برای برنامه‌نویسی آشنا شده‌اند و تا حدی به دید منطقی در حل مسئله و ارائه راهکارهای الگوریتم‌وار برای آن دست یافته‌اند. از همین رو افراد مذکور با ورود به رشته علوم کامپیوتر برای بسیاری از مباحث پایه در این حوزه آمادگی ذهنی دارند.



مطالعه ادامه مطلب 👇👇

🔗 رشته علوم کامپیوتر | معرفی گرایش ها، حقوق و درآمد و بازار کار + فیلم آموزش رایگان — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

✳️ گراف در علوم کامپیوتر — راهنمای مقدماتی

‏گراف‌ها در همه وجوه زندگی ما حضور دارند؛ اما احتمالاً آن چنان که باید با آن‌ها آشنا نیستیم. از نظر بسیاری از توسعه‌دهندگان خودآموخته، مفهوم گراف دشوار به نظر می‌رسد. به همین جهت، ممکن است درک گراف‌ها برای توسعه‌دهنده‌های باتجربه و فارغ‌التحصیلان علوم رایانه که با آن‌ها کار نکرده‌اند، دشوار باشد. اما واقعیت این است که گراف روشی جذاب و ضروری برای بازنمایی اطلاعات و روابط در دنیای پیرامون ما محسوب می‌شود. ما می‌توانیم از گراف‌ها برای انجام کارهایی بسیار جذاب به وسیله رایانه استفاده کنیم. الگوریتم‌های گراف ابزارهای زیادی برای درک شبکه‌ها و رابطه‌های پیچیده ارائه می‌کنند. در این مقاله مقدماتی، شما را با مبانی گراف‌ در علوم کامپیوتر آشنا می‌کنیم. ناگفته نماند که با مفاهیم پیچیده، دشوار یا ریاضیاتی سر و کار نخواهیم داشت و صرفاً مفاهیم مقدماتی را معرفی می‌کنیم.

══ فهرست مطالب ══

‏ ○ انگیزه بحث راجع به گراف در علوم کامپیوتر
‏ ○ گره‌ها، رأس‌ها و یال‌ها
‏ ○ جهت‌دار یا غیر جهت‌دار
‏ ○ گراف‌های دوری یا غیر دوری
‏ ○ یال‌های وزن‌دار
‏ ○ مسائلی که می‌توان با گراف حل کرد
‏ ○ سخن پایانی


🔸 انگیزه بحث راجع به گراف در علوم کامپیوتر

‏پیش از آن که وارد مباحث نظری گراف بشویم، در این بخش برخی انگیزه‌هایی که ممکن است برای یادگیری گراف مورد نیاز باشد را ارائه می‌کنیم. در واقع به این سؤال پاسخ می‌دهیم که گراف‌ها چه هستند و با آن‌ها چه می‌توان کرد؟

‏گراف در بنیادی‌ترین شکل خود گروهی از نقطه‌ها است که با خطوطی به هم وصل شده‌اند.

‏این همان تصوری است که باید در ذهن خود داشته باشید. همه مفاهیم پیچیده‌ای مانند (G(V, E که در کتب درسی ارائه می‌شوند صرفاً روشی برای بیان همان مفهوم انتزاعی اتصال نقطه‌ها به هم با استفاده از خطوط است.


🔸 گره‌ها، رأس‌ها و یال‌ها

‏زمانی که دانشمندان رایانه در مورد گراف صحبت می‌کنند، از واژه‌های نقطه و خط استفاده نمی‌کنند. به جای آن به هر نقطه، یک گره یا رأس و به هر خط، یک یال یا کمان گفته می‌شود. متداول‌ترین اصطلاح‌ها رأس و یال هستند. زمانی که می‌بیند فردی برای نمایش گراف از نماد (G(V, E استفاده می‌کند، در واقع منظور وی این است که گراف G دارای مجموعه رأس V و مجموعه یال E است.



مطالعه ادامه مطلب 👇👇

🔗 گراف در علوم کامپیوتر — راهنمای مقدماتی — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

✳️ انواع شبکه های کامپیوتری — راهنمای جامع

‏به طور کلی شبکه های کامپیوتری بر اساس گستره جغرافیایی‌شان از هم متمایز می‌شوند. یک شبکه می‌تواند در حد مسافت بین یک گوشی تلفن همراه و هدفون بلوتوث آن کوچک باشد و یا اینکه به اندازه اینترنت که همه نقاط کره زمین را پوشش داده است، بزرگ باشد.

══ فهرست مطالب ══

‏ ○ شبکه شخصی (Personal Area Network)
‏ ○ شبکه محلی (Local Area Network)
‏ ○ شبکه شهری (Metropolitan Area Network)
‏ ○ شبکه گسترده (Wide Area Network)
‏ ○ اینترنتورک (Internetwork)


🔸 شبکه شخصی (Personal Area Network)

‏یک شبکه شخصی (PAN) کوچک‌ترین نوع شبکه‌ای است که به یک کاربر اختصاص دارد. این نوع شبکه می‌تواند شامل دستگاه‌های دارای بلوتوث یا دستگاه‌های فروسرخ (اینفرارد) باشد. PAN گستره اتصال‌پذیری در حدود ۱۰ متر دارد. این نوع شبکه می‌تواند شامل کیبورد و ماوس بی‌سیم رایانه، هدفون‌های با قابلیت بلوتوث، پرینترهای بی‌سیم و ریموت‌های تلویزیون باشد.

‏برای نمونه پیکونت (Piconet) یک شبکه شخصی مجهز به بلوتوث است که می‌تواند شامل حداکثر ۸ دستگاه متصل به هم به روش master-slave باشد.


🔸 شبکه محلی (Local Area Network)

‏شبکه محلی (LAN) در محدوده داخل یک ساختمان گسترش یافته و زیر نظر یک مدیر سیستم منفرد کار می‌کند. LAN به طور معمول شامل اتاق‌های یک سازمان، مدرسه یا کالج‌ها و دانشگاه‌ها می‌شود. تعداد سیستم‌های متصل به یک LAN از دست‌کم دو سیستم تا ۱۶ میلیون دستگاه متفاوت است.

‏LAN روشی مفید بری اشتراک منابع بین کاربران نهایی فراهم می‌کند. منابعی مانند پرینترها، سرورهای فایل، اسکنرها و اینترنت از طریق رایانه‌های متصل به چنین شبکه‌ای به سهولت قابل اشتراک هستند.

‏LAN-ها از شبکه‌بندی و تجهیزات مسیریابی ساده‌ای تشکیل می‌یابند. یک چنین معماری می‌تواند شامل سرورهای محلی باشد که دارای کارکردهای ذخیره‌سازی فایل و دیگر کاربردهای مشترک محلی هستند. چنین شبکه‌هایی به طور معمول روی آدرس‌های IP خصوصی کار می‌کنند و مسیریابی چندان سنگینی ندارند. LAN تحت دامنه اختصاصی خود کار می‌کند و اتصال آن به صورت متمرکز است.



مطالعه ادامه مطلب 👇👇

🔗 انواع شبکه های کامپیوتری — راهنمای جامع — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

👍1
✳️ رشته علوم کامپیوتر | معرفی گرایش ها، حقوق و درآمد و بازار کار + فیلم آموزش رایگان

‏در این مطلب از مجموعه مطالب معرفی رشته‌های دانشگاهی مجله فرادرس، به رشته علوم کامپیوتر پرداخته‌ایم و سعی کرده‌ایم تناسب آن با روحیات افراد، دروسی که برای موفقیت در این رشته باید در آن‌ها پایه‌ای قوی‌تر داشت، گرایش‌های آن، بازار کار و سایر موارد مرتبط را مورد بررسی قرار دهیم.

══ فهرست مطالب ══

‏ ○ رشته علوم کامپیوتر مناسب چه کسانی است؟
‏ ○ کدام دروس دوره دبیرستان در رشته علوم کامپیوتر بیشتر کاربرد دارند؟
‏ ○ گرایش‌های رشته علوم کامپیوتر برای ادامه تحصیل چه هستند؟
‏ ○ مهم‌ترین دروس دانشگاهی رشته علوم کامپیوتر چه هستند؟
‏ ○ فارغ التحصیل رشته علوم کامپیوتر در چه کارها و صنایعی می‌تواند شاغل شود؟
‏ ○ بازار کار رشته علوم کامپیوتر به چه صورت است؟
‏ ○ امکان ادامه تحصیل در رشته علوم کامپیوتر در داخل ایران چگونه است؟
‏ ○ امکان ادامه تحصیل در رشته علوم کامپیوتر در خارج از کشور به چه صورت است؟
‏ ○ دروس دانشگاهی رشته علوم کامپیوتر تا چه میزان نیازهای بازار کار را پاسخگو هستند؟


🔸 رشته علوم کامپیوتر مناسب چه کسانی است؟

‏رشته‌ علوم کامپیوتر برای مطالعه‌ نحوه‌ محاسبات به وجود آمد و یک راه ارتباطی موثر بین دانش کامپیوتر و ریاضی است؛ مهمترین هدف این رشته، دستیابی به بهترین روش، برای حل یک مسئله در کمترین زمان و با بالاترین دقت است.

‏خروجی رشته‌ علوم کامپیوتر، افرادی با دید ریاضی نسبت به مسائل منطقی در حوزه‌های مختلف مرتبط و غیر مرتبط با کامپیوتر است. نگرش فارغ التحصیلان این رشته به صورت پایه‌ای نسبت به موضوعات است و به عنوان مثال در آن، علاوه بر اموختن زبان‌های برنامه‌نویسی، نحوه‌ ساخت آن‌ها (زبان‌های برنامه‌نویسی) هم مورد بررسی قرار می‌گیرد.

‏پایه و اساس رشته‌ علوم کامپیوتر علاقه به ریاضیات است. دانشجوی این رشته باید علاوه بر مباحث ریاضی به ساخت استدلال و اثبات موضوعات مختلف با دید منطقی و عددی اشتیاق داشته باشد (حتی مسائل روزمره‌ جهان پیرامون). واژگان علوم کامپیوتر و گرایش‌های مربوطه بر خلاف معنا‌شناسی، برای انجام محاسبات، بیشتر نیازمند قلم و کاغذ هستند تا کامپیوتر.


🔸 کدام دروس دوره دبیرستان در رشته علوم کامپیوتر بیشتر کاربرد دارند؟

‏با توجه به وابستگی زیاد رشته‌ علوم کامپیوتر به ریاضیات، افرادی که فارغ‌ التحصیل رشته ریاضی‌ و فیزیک در دوره‌ متوسطه هستند، شرایط بهتری از نظر پیش‌نیازهای لازم نسبت به فارغ‌التحصیلان سایر رشته‌ها دارند.

‏در گرایش‌های مختلف علوم کامپیوتر، دروس مرتبط با آمار به عنوان پیش نیاز برای درس شبیه‌سازی هستند که با توجه به وجود آمار و احتمال در دوره‌ متوسطه و در رشته‌ ریاضی و فیزیک، درصد موفقیت فارغ التحصیلان از این رشته در پشت سر گذاشتن این دروس به مراتب بیشتر از سایرین است. دروس مربوط به فیزیک و ریاضیات گسسته هم به عنوان پیش نیاز برای سایر دروس تخصصی و پایه‌ای هستند و به دلیل آشنا شدن با این مباحث در دوره‌ متوسطه، آمادگی فارغ التحصیلان از این رشته نسبت به سایرین برای گذراندن واحدهای مربوطه بیشتر است.

‏فارغ التحصیلان رشته‌ فنی و حرفه‌ای گرایش کامپیوتر هم شرایط مناسبی برای ورود به دنیای علوم کامپیوتر خواهند داشت؛ زیرا این قشر پیش از این با مقدمات لازم برای برنامه‌نویسی آشنا شده‌اند و تا حدی به دید منطقی در حل مسئله و ارائه راهکارهای الگوریتم‌وار برای آن دست یافته‌اند. از همین رو افراد مذکور با ورود به رشته علوم کامپیوتر برای بسیاری از مباحث پایه در این حوزه آمادگی ذهنی دارند.



مطالعه ادامه مطلب 👇👇

🔗 رشته علوم کامپیوتر | معرفی گرایش ها، حقوق و درآمد و بازار کار + فیلم آموزش رایگان — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

✳️ درس معماری کامپیوتر | به زبان ساده

‏درس معماری کامپیوتر یکی از دروس اصلی و پایه در مقطع کارشناسی رشته علوم کامپیوتر و همه گرایش‌های رشته مهندسی کامپیوتر شامل نرم‌افزار، سخت‌افزار و فناوری اطلاعات (IT) است. همچنین، معماری کامپیوتر یکی از گرایش‌های مقطع کارشناسی ارشد رشته مهندسی کامپیوتر محسوب می‌شود. معماری کامپیوتر به ساختار زیربنایی یک سیستم کامپیوتری اطلاق می‌شود. با توجه به این که نرم‌افزار وابستگی مستقیمی با سخت‌افزار دارد، شناخت کافی و دقیق معماری سیستم‌های کامپیوتری برای توسعه‌دهندگان نرم‌افزار و برنامه‌نویسان، به اندازه فعالان و متخصصین سخت‌افزار دارای اهمیت است. در این مطلب، سعی شده است تمامی سرفصل‌ها و مباحث مهم در درس معماری کامپیوتر به طور کامل و با بیان ساده شرح داده شود.

══ فهرست مطالب ══

‏ ○ معماری کامپیوتر چیست ؟
‏ ○ درس معماری کامپیوتر
‏ ○ معرفی فیلم آموزش درس معماری کامپیوتر
‏ ○ مدارهای منطقی چیست ؟
‏ ○ قطعات دیجیتال
‏ ○ نمایش داده ها
‏ ○ انتقال ثبات‌ها و ریزعملیات
‏ ○ معماری و سازمان کامپیوتر پایه
‏ ○ برنامه‌ نویسی کامپیوتر پایه
‏ ○ کنترل ریز برنامه نویسی شده
‏ ○ واحد مرکزی پردازش
‏ ○ پردازش خط لوله ای و برداری
‏ ○ محاسبات در کامپیوتر
‏ ○ سازمان ورودی-خروجی
‏ ○ سازمان حافظه
‏ ○ چند پردازنده ها
‏ ○ منابع و فیلم آموزشی معماری کامپیوتر
‏ ○ جمع بندی


🔸 معماری کامپیوتر چیست ؟

‏معماری کامپیوتر علم یا مجموعه قواعدی است که نحوه ارتباط و تعامل نرم‌افزار با سخت‌افزار را تعیین می‌کند. گرچه اصطلاح معماری کامپیوتر ممکن است پیچیده به نظر برسد، اما به وضوح، تعریفش از آن‌ چه تصور می‌شود، ساده‌تر است. معمولا اصطلاح معماری در ذهن به عنوان طراحی و ساخت یک خانه یا ساختمان تلقی می‌شود. با همین ذهنیت می‌توان معماری کامپیوتر را نیز به عنوان ساخت یک کامپیوتر و سرهم کردن اجزای آن در محل مناسب در نظر گرفت.

‏معماری کامپیوتر شامل سه بخش اصلی است: طراحی سیستم (System Design)، مجموعه دستورالعمل (Instruction Set Architecture) و ریزمعماری (Microarchitecture). تمام این بخش‌ها با ترتیب خاصی با هم در ارتباط هستند و باید در یک الگوی مشخص توسعه داده شوند تا عملکرد صحیحی داشته باشند. در ادامه به شرح مختصری از هر یک از این سه بخش پرداخته شده است.

‏– طراحی سیستم:‌ این بخش شامل تمام قطعات سخت‌افزاری از جمله واحد پردازنده مرکزی (سی‌پی‌یو | CPU)،‌ پردازنده‌های داده (Data Processors)، چندپردازنده‌ها (Multiprocessors)، کنترل‌گرهای حافظه (Memory Controllers) و دسترسی مستقیم حافظه (Direct Memory Access) است.

‏– مجموعه دستورالعمل: این بخش، تمام توانایی‌ها و قابلیت‌های سی‌پی‌یو را دربر می‌گیرد. زبان برنامه‌نویسی CPU، انواع و فرمت‌های داده، انواع ثبات (رجیستر | Register) و دستورالعمل‌هایی که توسط برنامه‌نویسان کامپیوتری به کار برده می‌شوند.

‏– ریزمعماری:‌ این بخش، شامل موارد ذخیره‌سازی، مسیر ذخیره داده‌ها و چگونگی پیاده‌سازی آن در قالب مجموعه دستورالعمل‌ها است.

‏یک نمونه مناسب از معماری کامپیوتر،‌ معماری فون نویمان (معماری وُن نویمان | Von Neumann Architecture) است که همچنان در بسیاری از انواع کامپیوترهای امروزی مورد استفاده قرار می‌گیرد. این معماری توسط جان ون نویمان در اوایل دهه ۱۳۲۰ شمسی ارائه شد. او طراحی یک رایانه الکترونیکی را به همراه سی‌پی‌یو معرفی کرد که این طراحی شامل واحد منطق ریاضی (Arithmetic Logic unit)، واحد کنترل، ثبات‌ها، واحد حافظه برای داده‌ها و دستورالعمل‌ها، یک رابط ورودی/خروجی و قابلیت‌های ذخیره‌سازی خارجی است.


🔸 درس معماری کامپیوتر

‏همان‌طور که در ابتدا مطرح شد، ‌درس معماری کامپیوتر یکی از دروس پایه و اصلی رشته کامپیوتر در مقطع کارشناسی و همچنین یکی از گرایش‌های مهندسی کامپیوتر در مقطع کارشناسی ارشد است. در نتیجه این درس برای دانشجویانی که به این حوزه علاقه‌مند هستند و قصد ادامه تحصیل در مقطع فوق لیسانس در این گرایش را دارند، بسیار مهم و حیاتی است.



مطالعه ادامه مطلب 👇👇

🔗 درس معماری کامپیوتر | به زبان ساده — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس


❇️ مصورسازی پیچیدگی الگوریتم‌ها با پایتون

در
این مطلب، مبحث پیچیدگی الگوریتم ها که با نماد O(n) نیز نمایش داده می‌شود، مورد بررسی قرار می‌گیرد. پیچیدگی الگوریتم ها یک مفهوم بسیار پیچیده در حوزه «علوم کامپیوتر» (Computer Science) محسوب می‌شود. برخورداری از پیش‌زمینه ریاضی مناسب، برای درک مفاهیم بسیار سنگین پیچیدگی الگوریتم‌ها بسیار ضروری است.


🔹 فهرست مطالب این نوشته

◻️ چرا محاسبه پیچیدگی الگوریتم‌ها اهمیت دارد؟

◻️ پیچیدگی بدترین حالت

◻️ مقایسه پیچیدگی نسبی الگوریتم‌ها در پایتون


🔸 چرا محاسبه پیچیدگی الگوریتم ها اهمیت دارد؟

«پیچیدگی محاسباتی» (Computational Complexity) موضوع بسیار قابل توجهی در حوزه علوم کامپیوتر به شمار می‌آید. دلیل این امر، پیچیدگی بیش از حد مبانی ریاضی آن است که سبب شده درک آن، حتی برای دانشمندان علم داده و کامپیوترِ آشنا و مسلط به مفاهیم ریاضی سخت باشد.

به بیان ساده، پیچیدگی الگوریتم ها در قالب مقدار زمان و فضای ذخیره‌سازی مورد نیاز الگوریتم برای حل یک نمونه از مسأله مورد نظر یا مجموعه‌ای از مسائل تعریف می‌شود.

شالوده پیچیدگی محاسباتی الگوریتم‌ها، مفاهیم ریاضی هستند؛ با این حال، پیامدهای مبحث محاسبه پیچیدگی الگوریتم‌ها برای حوزه علوم کامپیوتر بسیار حیاتی و البته کاربردی است. دسته‌ای از مسائل در حوزه علوم کامپیوتر وجود دارند که «غیر قابل مهار» (Intractable) هستند؛ حل کردن این دسته از مسائل، غیر ممکن نیست ولی الگوریتم کارآمد و بهینه‌ای برای حل آن‌ها ارائه نشده است.

به عبارت دیگر، حل کردن این دسته از مسائل با فناوری‌های عصر حاضر (و حتی فناوری‌هایی که در آینده نزدیک ارائه خواهند شد)، بسیار سخت و از لحاظ محاسباتی و صرف منابع ناکارآمد خواهد بود.


🔸 پیچیدگی بدترین حالت

یکی از محبوب‌ترین رویکردهای محاسبه پیچیدگی الگوریتم ها در علوم کامپیوتر و مبحث پیچیدگی محاسباتی، پیچیدگی «سناریوی بدترین حالت» (Worst-Case Scenario) است. بر خلاف طبیعت «بدبینانه» (Pessimism) این دیدگاه، فلسفه آن بسیار منطقی است؛ اندازه مسأله‌ای که مایل به حل آن هستیم، با گذر زمان افزایش پیدا می‌کند.

در غالب کاربردهای پردازش اطلاعات، حجم عظیمی از اطلاعات («پتابایت» (PetaByte) داده) مورد پردازش قرار می‌گیرد. بنابراین، اندازه داده‌هایی که قرار است برای حل مسأله مورد پردازش قرار بگیرد، یکی از فاکتورهای مهم در تعیین پیچیدگی الگوریتم‌ها است.

برای چنین کاری کافی است تا اندازه ورودی‌های مسأله را به عنوان یک «متغیر مستقل» (Independent Variable) و نرخ رشد اندازه ورودی‌ها را به عنوان یک «متغیر وابسته» (Dependent Variable) در نظر بگیرید؛ حالا عملکرد و پیچیدگی الگوریتم ها را وقتی که اندازه ورودی‌ها به سمت بی‌نهایت میل می‌کند اندازه بگیرید. به چنین تحلیلی، تحلیل big-Oh نیز گفته می‌شود.


🔸 مقایسه پیچیدگی نسبی الگوریتم‌ها در پایتون

یکی از موضوعاتی که باعث سردرگمی برنامه‌نویسان مبتدی و یا افراد تازه وارد به حوزه پیچیدگی محاسباتی می‌شود این واقعیت است که توابع «نمایی» (Exponential)، از لحاظ پیچیدگی محاسباتی بدتر از توابع «چند جمله‌ای» (Polynomial) هستند. چنین مسأله‌ای یکی از نمونه‌های بارز تعریف ریاضی و به کارگیری دیدگاه big-Oh محسوب می‌شود.


ادامه این مطلب رایگان را در مجله فرادرس در لینک زیر بخوانید.

🔗 مصورسازی پیچیدگی الگوریتم ها با پایتون — راهنمای کاربردی — کلیک کنید.


📌 کانال اختصاصی آموزش‌های رایگان مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی مهندسی کامپیوتر [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزشهای مهندسی و علوم کامپیوتر فرادرس


❇️ آشنایی با USB و هر آنچه باید در مورد این فناوری بدانید

در این مطلب، استاندارد USB که امروزه اغلب افراد از آن استفاده کرده‌اند، طور کامل مورد بررسی قرار گرفته است.


🔹 فهرست مطالب این نوشته

▫️تاریخچه یواس‌بی

▫️ مشخصات یواس‌بی

▫️ نرخ انتقال داده

▫️ کابل یواس‌بی


🔸 تاریخچه یواس‌بی

در ابتدا یواس‌بی به این منظور طراحی شد که بتوانیم بسیاری از لوازم جانبی را با استفاده از یک رابط استاندارد به رایانه متصل کنیم. همچنین یواس‌بی با ایجاد امکان «hot swapping» اجازه اتصال یا جدا کردن لوازم جانبی بدون نیاز به ری‌استارت کردن رایانه یا خاموش کردن هر دستگاه دیگر را فراهم کرده که باعث بهبود شیوه اتصال دستگاه‌های الکترونیکی به همدیگر شده است.

ویژگی‌های دیگری که یواس‌بی دارد این است که برق مورد نیاز وسایل کم‌مصرف را بدون نیاز به یک منبع تغذیه جداگانه تأمین می‌کند و همچنین امکان استفاده از بسیاری از لوازم الکترونیکی را بدون نیاز به نصب درایورهای خاص جداگانه برای هر دستگاه فراهم کرده است.


🔸 مشخصات یواس‌بی

مشخصات یواس‌بی (سرنام عبارت «Universal Serial Bus»)شامل لایه‌های مکانیکی، الکتریکی و پروتکل ویژه این رابط می‌شود. طراحی یواس‌بی به وسیله انجمن پیاده‌سازی یواس‌بی (USB-IF) استاندارد شده است. این انجمن هیئتی متشکل از شرکت‌های پیشرو در صنایع رایانه و الکترونیک است.


🔸نرخ انتقال داده

نرخ انتقال داده در یواس‌بی می‌تواند از ۱۰ کیلوبیت بر ثانیه تا ۴۰۰ مگابیت بر ثانیه در یکی از سه حالت سرعت تعریف شده است. در حالت سرعت پایین یعنی ۱۰ تا ۱۰۰ کیلوبیت بر ثانیه، دستگاه‌هایی مانند کیبورد و ماوس مورد استفاده قرار می‌گیرند. حالت سرعت کامل از سوی بسیاری از دستگاه‌ها استفاده می‌شود و امکان جابجایی داده با نرخ ۵۰۰ کیلوبیت تا ۱۰ مگابیت بر ثانیه را ایجاد می‌کند. در حالت سرعت بالا که در یواس‌بی نسل ۲ وجود دارد جابجایی داده‌ها با سرعتی تا ۴۸۰ مگابیت بر ثانیه و محدوده سرعت بین ۲۵ تا ۴۰۰ مگابیت بر ثانیه ممکن است.


🔸 کابل یواس‌بی

کابل یواس‌بی چهار کانکتور دارد که دو تا از آن‌ها برای توان و دو مورد نیز برای انتقال داده مورد استفاده قرار می‌گیرند. سیم‌های انتقال داده در اندازه 28 AWG (استاندارد کابل امریکا) و سیم‌های انتقال توان 20 تا 28 AWG هستند. سیم‌های انتقال توان جدا از هم هستند و سیم‌های انتقال داده به هم تابانده شده‌اند. کابل‌های طولانی‌تر از سیم‌های 20 AWG برای انتقال توان استفاده می‌کنند.


ادامه این مطلب رایگان را در مجله فرادرس در لینک زیر بخوانید.

🔗 آشنایی با USB و هر آنچه باید در مورد این فناوری بدانید — کلیک کنید.



📌
کانال اختصاصی آموزش‌های رایگان مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی مهندسی کامپیوتر [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزشهای مهندسی و علوم کامپیوتر فرادرس


❇️ پارتیشن‌بندی هارد دیسک چیست

هارددیسک‌ها، درایوهای یواس‌بی، کارت‌های SD و هر چیزی که حافظه‌ای برای ذخیره‌سازی دارد، باید پارتیشن‌بندی شوند. یک درایو پارتیشن‌بندی شده نمی‌تواند مورد استفاده قرار بگیرد و برای این که بتوان از چنین وسیله‌ای استفاده کرد باید دست‌کم یک پارتیشن داشته باشد. اما درایوها می‌توانند چندین پارتیشن نیز داشته باشند.


🔹 فهرست مطالب این نوشته

▫️ پارتیشن چیست؟

▫️ چرا می‌توان چند پارتیشن ساخت و چه موقع باید این کار را انجام داد

▫️ پارتیشن ابتدایی، بسط یافته و منطقی

▫️ چگونه پارتیشن‌بندی کنیم


🔸 پارتیشن چیست؟

درایوهای زیادی یک پارتیشن دارند که از قبل تنظیم شده است؛ اما همه ابزارهای ذخیره‌سازی وقتی هیچ پارتیشنی نداشته باشند به صورت یک فضای تخصیص نیافته آزاد هستند. برای راه‌اندازی عملی یک سیستم فایل و ذخیره هر نوع فایل درون یک درایو، باید آن را پارتیشن‌بندی کرد.


🔸 چرا می‌توان چند پارتیشن ساخت و چه موقع باید این کار را انجام داد

احتمالاً بر روی یک درایو یواس‌بی فلش نیازی به چند پارتیشن نخواهیم داشت و یک پارتیشن اجازه می‌دهد که حافظه فلش را به صورت یک جزء منفرد مورد استفاده قرار دهیم. هر پارتیشن می‌تواند از پارتیشن‌های دیگر جدا شود و حتی سیستم فایل متفاوتی داشته باشد.


🔸 پارتیشن ابتدایی، بسط یافته و منطقی

زمانی که قصد دارید یک درایو را پارتیشن‌بندی کنید باید از اصطلاحات پارتیشن ابتدایی (Primary)، بسط‌یافته (Extended) و منطقی (Logical) اطلاع داشته باشید. یک دیسک که جدول پارتیشن معمولی دارد، می‌تواند تنها 4 پارتیشن داشته باشد. پارتیشن‌های بسط‌یافته و منطقی روشی برای دور زدن این محدودیت هستند.


🔸 چگونه پارتیشن‌بندی کنیم

پارتیشن‌بندی با استفاده از ابزارهای گرافیکی در صورتی که از فرایند آن به خوبی اطلاع داشته باشید، کار نسبتاً ساده‌ای محسوب می‌شود. هنگام نصب یک سیستم‌عامل (چه ویندوز و چه لینوکس)، برنامه نصب سیستم‌عامل یک صفحه پارتیشن‌بندی ارائه می‌کند که در آن می‌توان پارتیشن‌های درایو را ایجاد، حذف، یا فرمت کرد و حتی تغییر اندازه داد. البته باید توجه داشته باشید که وقتی پارتیشنی فرمت شود همه داده‌هایی که روی آن قرار دارند، حذف می‌شوند.


ادامه این مطلب رایگان را در مجله فرادرس در لینک زیر بخوانید.

🔗 پارتیشن‌بندی هارد دیسک چیست — راهنمایی از صفر تا صد — کلیک کنید.


📌 کانال اختصاصی آموزش‌های رایگان مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی مهندسی کامپیوتر [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزشهای مهندسی و علوم کامپیوتر فرادرس


❇️ ترمینال لینوکس و آنچه برای شروع به کار با آن باید بدانید

این آموزش، از جمله آموزشهای ابتدایی به حساب می‌آید که به توضیح نحوه شروع کار با ابزار ترمینال – یا همان خط دستور – در لینوکس و اجرای فرامین توسط آن می‌پردازد. گفتنی است که اگر شما یک فرد مبتدی در زمینه‌ی کار با لینوکس محسوب می‌شوید، بهتر است شیوه‌ی استفاده از ترمینال را به خوبی فرا بگیرید، زیرا ابزار مذکور دراصل راهکار استاندارد جهت تعامل با سرورهای لینوکسی است؛ هر چند که کاربردهای مهم دیگری نیز برای آن وجود دارد.


🔹 فهرست مطالب این نوشته

▫️شبیه‌ساز ترمینال

▫️ اجرا کردن دستورات

▫️ «Shell»

▫️ Command Prompt


🔸 شبیه‌ساز ترمینال

«شبیه‌ساز ترمینال»‌ برنامه‌ای است که به شما اجازه می‌دهد از این ابزار در یک محیط گرافیکی استفاده کنید.


🔸«شِل» (Shell)

در یک سیستم تحت لینوکس، «شِل» (Shell) یک رابط خط فرمان محسوب می‌شود که به ترجمه‌ی دستورات کاربر و فایل‌های اسکریپت می‌پردازد و در اصل از این طریق به سیستم‌عامل سرور می‌گوید که بر اساس دستورات دریافتی چه کاری را باید انجام دهد. چندین نوع شل وجود دارد که به صورت گسترده از آنها استفاده می‌شود و از جمله‌ی شاخص‌ترین موارد، می‌توان به (Bourne shell (sh و یا (C shell (csh اشاره کرد.


🔸 « اعلان فرمان » ( Command Prompt)

معمولاً وقتی برای نخستین بار به سرور لاگین می‌کنید به شما از طریق «پیغام روز» – اصطلاحاً «MOTD» – خوش‌آمد گفته می‌شود. این پیغام اطلاعات گوناگونی مانند نسخه و توزیع لینوکسی که در حال اجرا روی سرور هستند را در خود جای داده است. بعد از پیغام روز، به «command prompt» یا «shell prompt» هدایت می‌شوید و می‌توانید در آنجا دستورات موردنظر خود را صادر و اجرایشان کنید.


🔸 اجرا کردن دستورات

می‌توانیم به دستوارت معینی نام یک فایل‌ اجرایی، مانند یک اسکریپت یا یک برنامه‌ی باینری را تخصیص دهیم و از این طریق نسبت به اجرا کردن آن اقدام کنیم. شایان ذکر است که تعداد زیادی از دستوارت استاندارد لینوکس و ابزارهای مرتبط به صورت پیش‌فرض توسط سیستم‌عامل نصب شده‌اند و به شما اجازه می‌دهند که به پیمایش در فایل سیستم پرداخته، پکیج‌های مختلف نرم‌افزاری را نصب کنید و یا در تنظیمات سیستم و همینطور اپلیکیشن‌ها تغییرات دلخواه را اعمال کنید.


ادامه این مطلب رایگان را در مجله فرادرس در لینک زیر بخوانید.

🔗 ترمینال لینوکس و آنچه برای شروع به کار با آن باید بدانید — کلیک کنید.



📌 کانال اختصاصی آموزش‌های رایگان مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی مهندسی کامپیوتر [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزشهای مهندسی و علوم کامپیوتر فرادرس


❇️ آشنایی با System32 و دلایل اهمیت آن برای ویندوز

در پاسخ به چیستی «System32»، باید گفت که پوشه‌ای مهم و ضروری در سیستم‌عامل ویندوز است که کتابخانه‌ها و فایل‌های اجرایی سیستم را دربر می‌گیرد.


🔹 فهرست مطالب این نوشته

▫️آشنایی با System32

▫️ حذف فایل‌های موجود در پوشه System32

▫️ پیامدهای حذف فایل‌های موجود در پوشه System32

▫️ مقایسه System32 با SysWOW64


🔸 آشنایی با System32

پس از «Windows 2000»، در تمام نسخه‌های ویندوز پوشه‌ای با نام System32 وجود دارد که در مسیر «C:\Windows» قرار گرفته است. فایل‌ها و پوشه‌های موجود در System32 برای عملکرد صحیح ویندوز ضروری هستند.


🔸 حذف فایل‌های موجود در پوشه System32

حذف کردن فایل‌های موجود در پوشه System32 کار راحتی نیست زیرا این پوشه، از طرف سیستم محافظت شده است. اگر بخواهید چنین کاری را انجام دهید، پیغامی مبنی بر عدم دسترسی شما به حذف این پوشه از طریق ویندوز به نمایش درمی‌آید. این مسئله مانع از حذف تصادفی آن توسط کاربران می‌شود.


🔸 پیامدهای حذف فایل‌های موجود در پوشه System32

اگر فایل‌های موجود در پوشه System32 را حذف کنید، کامپیوتر شما با به تدریج دچار مشکل خواهد شد. عملکردهایی نظیر اجرای برنامه‌ها، جستجو در منوی استارت و باز کردن ابزارهای ویندوز دیگر قابل دسترس نخواهند بود زیرا فایل‌های مربوط به آن‌ها حذف شده‌اند. در این شرایط معمولا با اخطار سیستمی «dll is missing» مواجه خواهید شد.


🔸 مقایسه System32 با SysWOW64

در ویندوزهای ۶۴ بیتی تعدادی فولدر کلیدی اضافی که در ویندوزهای ۳۲ بیتی وجود ندارند قابل رویت هستند. مثلاً در آنها برنامه‌های ۶۴ بیتی در درون فولدری با نام «Program Files» نصب می‌شوند و نرم‌افزارهای ۳۲ بیتی در فولدر دیگری با نام «(Program Files (X86» جای می‌گیرند؛ جالب است بدانید که فولدر دومی که از آن سخن گفتیم در ویندوزهای ۳۲ بیتی وجود ندارد.

همین قاعده در ویندوزهای ۶۴ بیتی، در رابطه با فولدر System 32 نیز صادق است؛ بنابراین، اگر سری به مسیر C:\Windows بزنید علاوه بر این فولدر، فولدر دیگری با نام SysWOW64 را مشاهده خواهید کرد. هر دوی این فولدرها، فایل‌های کلیدی ویندوز را در خود جای داده‌اند؛ با این تفاوت که یکی نسخه‌ی ۳۲ بیتی این فایل‌ها را در برگرفته و دیگری نسخه‌ی ۶۴ بیتی آنها را شامل شده است. برای این جدا‌سازی‌ها نیز یک دلیل بسیار ساده وجود دارد، آنهم اینکه برنامه‌های ۳۲ بیتی نمی‌توانند با DLLهای ۶۴ بیتی کار کنند و در صورت وقوع این مسئله با خطا مواجه خواهند شد.


ادامه این مطلب رایگان را در مجله فرادرس در لینک زیر بخوانید.

🔗 آشنایی با System32 و دلایل اهمیت آن برای ویندوز — کلیک کنید.



📌 کانال اختصاصی آموزش‌های رایگان مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی مهندسی کامپیوتر [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزشهای مهندسی و علوم کامپیوتر فرادرس