حافظه اصلی و رجیسترهای پردازنده تنها حافظه هایی هستند که مستقیما توسط برنامه نویسان و کامپایلرها اداره می شوند و دستورالعمل های درون برنامه ها ، آدرس حافظه و رجیسترها را به عنوان آرگومان می پذیرند.
حافظه نهان همان گونه که از نامش پیداست از دید برنامه نویسان پنهان بوده مستقیما توسط پردازنده و کنترل کننده حافظه نهان مورد استفاده قرار می گیرد.
حافظه نهان همان گونه که از نامش پیداست از دید برنامه نویسان پنهان بوده مستقیما توسط پردازنده و کنترل کننده حافظه نهان مورد استفاده قرار می گیرد.
ورودی خروجی:
به طور کلی دستگاه های ورودی خروجی به دو دسته دستگاه های بلوکی و دستگاه های کاراکتری تقسیم می شوند. دستگها بلوکی وسیله ای است که اطلاعات را در بلوک هایی با اندازه معین خیره می کند که هرکدام با آدرس خودشان مشخص می شوند. ویژگی اساسی دستگاه های بلوکی این است که خواندن و نوشتن هر بلوک به صورت مجا انجام می شود اصلی ترین دستگاه های بلوکی دیسک ها هستند. دستگاه های کاراکتری یک جریان از کاراکترها را بدون توجه به هیچ ساختاری دریافت یا تحویل می دهند بنابراین قابلیت جستجو و آدرس دهی در آنها وجود ندارد مانند چاپگرها ماوس ها و ...
البته بعضی از دستگاه ها در این دو دسته قرار نمی گیرند مانند ساعت سیستم که نه شامل بلوک آدرس دهی است نه جریان کاراکتری بلکه در بازه های زمانی از پیش تعیین شده سبب ایجاد وقفه می شود.
به طور کلی دستگاه های ورودی خروجی به دو دسته دستگاه های بلوکی و دستگاه های کاراکتری تقسیم می شوند. دستگها بلوکی وسیله ای است که اطلاعات را در بلوک هایی با اندازه معین خیره می کند که هرکدام با آدرس خودشان مشخص می شوند. ویژگی اساسی دستگاه های بلوکی این است که خواندن و نوشتن هر بلوک به صورت مجا انجام می شود اصلی ترین دستگاه های بلوکی دیسک ها هستند. دستگاه های کاراکتری یک جریان از کاراکترها را بدون توجه به هیچ ساختاری دریافت یا تحویل می دهند بنابراین قابلیت جستجو و آدرس دهی در آنها وجود ندارد مانند چاپگرها ماوس ها و ...
البته بعضی از دستگاه ها در این دو دسته قرار نمی گیرند مانند ساعت سیستم که نه شامل بلوک آدرس دهی است نه جریان کاراکتری بلکه در بازه های زمانی از پیش تعیین شده سبب ایجاد وقفه می شود.
انتقال اطلاعات بین سیستم و دستگاه های ورودی خروجی به دو صورت همگام (سنکرون) و غیر همگام( آسنکرون) انجام می گیرد
همگام: در این روش هنگامی که برنامه کاربر درخواست انقال اطلاعات دارد فرآیند کاربر بلوک شده و انتقال صورت می گیرد پس از تکمیل انتقال اطلاعات، کنترل به برنامه کاربر برمیگردد برنامه کاربر فعال شده و به پردازش ادامه می دهد.
غیر همگام: در این حالت سیستم عامل بعد از دریافت درخواست انتقال اطلاعات و صدور فرمان منتظر انجام درخواست نمی شود و به انجام مابقی دستورات رسیدگی می کند. در این حالت پردازنده برای مدیریت ورودی خروجی سه راه پیش رو دارد :
برنامه سازی شده : در این حالت پردازنده در یک حلقه انتظار می چرخد و در بازه های زمانی تعیین شده ورودی خروجی را چک می کند تا زمانی که ورودی خروجی مورد نظر رخ دهد.
مبتنی بر وقفه : پردازنده به انجام پردازش های دیگر مشغول می شود و در صورت اتمام فرآیند ورودی خروجی وقفه ای به سیستم عامل فرستاده می شود که سیستم عامل به ادامه پردازش فرآیند منتظر می پردازد
(دسترسی مستقیم به حافظه) : در این حالت پردازنده ورود و خروج اطلاعات را ب کنترل کننده DMA واگذار می کند و خود به انجام سایر پردازش ها مشغول میشود.
برنامه سازی شده : در این حالت پردازنده در یک حلقه انتظار می چرخد و در بازه های زمانی تعیین شده ورودی خروجی را چک می کند تا زمانی که ورودی خروجی مورد نظر رخ دهد.
مبتنی بر وقفه : پردازنده به انجام پردازش های دیگر مشغول می شود و در صورت اتمام فرآیند ورودی خروجی وقفه ای به سیستم عامل فرستاده می شود که سیستم عامل به ادامه پردازش فرآیند منتظر می پردازد
(دسترسی مستقیم به حافظه) : در این حالت پردازنده ورود و خروج اطلاعات را ب کنترل کننده DMA واگذار می کند و خود به انجام سایر پردازش ها مشغول میشود.
در این سه روش I/O برنامه سازی شده کل زمان پردازنده را به خود اختصاص می دهد. در I/O مبتنی بر وقفه پردازنده بخد از انجام هر دستورالعمل بیت وقفه را چک می کند و در حالت DMA پردازنده فقط یک بار در ابتدا و یک بار در انتها درگیر عملیات ورودی خروجی میشود
در اینجا مفاهیم پایه معماری کامپیوتر که برای جلسات آینده مورد نیاز بود تشریح شد، در جلسه آینده به معرفی سیستم عامل ، تاریخچه سیستم عامل، معرفی مفاهیم اساسی سیستم عامل می پردازیم. با تشکر از توجه شما.
@AMCSUI
با نامِ خـــ♡ـــداےِ مهربان و لطیف
مےچینم هفت سینِ امسال را ؛
❤️✨ 1- سایہ پدر و مادر برسرتاڹ
❤️✨ 2- سلامتے در جسم وجانتان
❤️✨ 3- سرسبزے در خانہهایتان
❤️✨ 4- سخاوت در دلهایتان
❤️✨ 5-سرنوشتِ زیبا در تقدیرتان
❤️✨ 6- سبدِ سنبل در نگاهتان
❤️✨ 7-سیبِ لبخند بر لبهایتان
💝 پیشاپیش سالِ نو مبارڪ 💝
🌹✨ با بهتریڹ آرزوها ✨🌹
@AMCSUI
با نامِ خـــ♡ـــداےِ مهربان و لطیف
مےچینم هفت سینِ امسال را ؛
❤️✨ 1- سایہ پدر و مادر برسرتاڹ
❤️✨ 2- سلامتے در جسم وجانتان
❤️✨ 3- سرسبزے در خانہهایتان
❤️✨ 4- سخاوت در دلهایتان
❤️✨ 5-سرنوشتِ زیبا در تقدیرتان
❤️✨ 6- سبدِ سنبل در نگاهتان
❤️✨ 7-سیبِ لبخند بر لبهایتان
💝 پیشاپیش سالِ نو مبارڪ 💝
🌹✨ با بهتریڹ آرزوها ✨🌹
@AMCSUI
سلام دوستان
درخشانی هستم با جلسه دوم از آموزش کیوت(کیوتی).
قبل از شروع جا داره از طرف اسب جناب کیوت از همه دوستانی که به ایشان ابراز محبت فرمودند تشکر کنم!
اگه یادتون باشه جلسه قبل مقدماتی رو از چیستی کیوت گفتیم. اینکه Qt چیست و به چه دردی میخوره. همچنین سرفصلهای دورهمون رو تعیین کردیم.
امروز فصل 1 رو با هم استارت میزنیم. موافقید؟ آمادهاید؟
پس...
فصل اول: «مقدمات لازم برای فهم کیوت»
کیوت از همان ابتدای بوجود آمدنش قصدش این بود که کار برنامهنویسها و توسعه دهندهها رو در سه حوزهی زیر تسهیل کنه و علاوه بر اون قدرت مانور خیره کنندهای هم به اونها بده؛
ا) ظاهر گرافیکی عالی و خیره کننده (QtQuick) و نیز کارهای گرافیکی آسانتر(OpenGL و ...)
ب) بالابردن بازدهی و توان مانور توسعهدهنده(ترکیب JS + QML + CSS + HTML + XML + CPP)؛ بدین شیوه که شما به راحتی میتوانید مثل برنامههای تحت وب، برنامههاتون رو به دو بخش تقسیم کنید. یک بخش ظاهری یا UI که با QML و JavaScript طراحی میشه و یک بخش پشتی یا Backend که بخش پردازشی اصلی برنامه تون هست و با CPP پیاده سازی میشه. این بدین معنیه که تیم طراحی به راحتی روی زیبایی برنامه متمرکز میشن و تیم Backend روی پایداری و امنیت و قدرت برنامه.
ج) قابلیت چندسکویی؛ تقریبا امروز شما میتوانید برای هر پلتفرم و سیستم عاملی برنامه ی کیوتیتون رو پورت کنید و براش خروجی بگیرید. سیستم عاملهایی چون:
Linux
Windows
MacOSx
Android
iOS
و...
جالبیش هم اینجاست که اولا: برنامهتون روی همهی سیستمعامل ها به یک صورت کار میکنه و ثانیا: ظاهرا برنامهتون روی هر پلتفرمی خودش رو بصورت Native درمیاره. یعنی مثلا روی اندروید ظاهر برنامه تون شبیه برنامههای اندرویدیه و روی لینوکس شبیه برنامههای لینوکسی و روی ویندوز شبیه برنامههای ویندوزی و ...!!
یک کد واحد، n تا خروجی حسابی!
د) اپن سورس بودن؛ و شما تمام(قسمت اعظم) اینها رو میتونید بصورت رایگان و سورسباز داشته باشید. حتی میتونید کیوت خاص خودتون رو داشته باشید!
درخشانی هستم با جلسه دوم از آموزش کیوت(کیوتی).
قبل از شروع جا داره از طرف اسب جناب کیوت از همه دوستانی که به ایشان ابراز محبت فرمودند تشکر کنم!
اگه یادتون باشه جلسه قبل مقدماتی رو از چیستی کیوت گفتیم. اینکه Qt چیست و به چه دردی میخوره. همچنین سرفصلهای دورهمون رو تعیین کردیم.
امروز فصل 1 رو با هم استارت میزنیم. موافقید؟ آمادهاید؟
پس...
فصل اول: «مقدمات لازم برای فهم کیوت»
کیوت از همان ابتدای بوجود آمدنش قصدش این بود که کار برنامهنویسها و توسعه دهندهها رو در سه حوزهی زیر تسهیل کنه و علاوه بر اون قدرت مانور خیره کنندهای هم به اونها بده؛
ا) ظاهر گرافیکی عالی و خیره کننده (QtQuick) و نیز کارهای گرافیکی آسانتر(OpenGL و ...)
ب) بالابردن بازدهی و توان مانور توسعهدهنده(ترکیب JS + QML + CSS + HTML + XML + CPP)؛ بدین شیوه که شما به راحتی میتوانید مثل برنامههای تحت وب، برنامههاتون رو به دو بخش تقسیم کنید. یک بخش ظاهری یا UI که با QML و JavaScript طراحی میشه و یک بخش پشتی یا Backend که بخش پردازشی اصلی برنامه تون هست و با CPP پیاده سازی میشه. این بدین معنیه که تیم طراحی به راحتی روی زیبایی برنامه متمرکز میشن و تیم Backend روی پایداری و امنیت و قدرت برنامه.
ج) قابلیت چندسکویی؛ تقریبا امروز شما میتوانید برای هر پلتفرم و سیستم عاملی برنامه ی کیوتیتون رو پورت کنید و براش خروجی بگیرید. سیستم عاملهایی چون:
Linux
Windows
MacOSx
Android
iOS
و...
جالبیش هم اینجاست که اولا: برنامهتون روی همهی سیستمعامل ها به یک صورت کار میکنه و ثانیا: ظاهرا برنامهتون روی هر پلتفرمی خودش رو بصورت Native درمیاره. یعنی مثلا روی اندروید ظاهر برنامه تون شبیه برنامههای اندرویدیه و روی لینوکس شبیه برنامههای لینوکسی و روی ویندوز شبیه برنامههای ویندوزی و ...!!
یک کد واحد، n تا خروجی حسابی!
د) اپن سورس بودن؛ و شما تمام(قسمت اعظم) اینها رو میتونید بصورت رایگان و سورسباز داشته باشید. حتی میتونید کیوت خاص خودتون رو داشته باشید!
ه) قابلیت ساخت برنامههای چند زبانه: یعنی شما بتونید برنامههای بسازید که با کمترین تغییری توی کدهاتون هر وقت لازم بود بتونید زبانهای دیگری رو نیز بهش اضافه کنید.
دل و رودهی کیوت:
خب وقتشه که یه نگاه دقیقتر و عمقیتر به این موجود شیرین بیندازیم!
کیوت هم مثل اکثر فریمورکها از دو بخش اصلی تشکیل شده:
یک) بخش پایه – یا اصطلاحا Essentials
دو) بخش ماژولّها و افرودنیها(یه چیزی مثل فلفل و زردچوبه!) – یا Add-on modules
بخش پایه شامل قابلیتّهای اصلیای هست که کیوتی ارائه میده.
مثل چی؟ مثل قابلیتهای:
-هسته: شامل کار با Threading و Container ها و سیستم رویدادها و سیستم فایل و ...
-کار با کنسول
-کنترلّهای GUI
-QtQuick
-کار با شبکه
-کار با SQL
-Unit Test
-کار با WebKit
-و...
(تصویر ۱ لیست کامل تری از اجزای بخش Essential را نمایش میدهد. هر چند تعداد واقعی این پایهها بیشتر از اینهاست . منبع: ویکیپدیا)
بخش افزودنیّها شامل کلاسهایی است که قدرت هسته و پایهی کیوتی رو توسعه میدهند. کلاسّهایی مثل:
-کار با بلوتوث
-کار با NFC
-کار با OpenGL
-کار با ActiveX
-کار با سنسورها
-کار با پورتّهای سریال
-کار با سوکتهای وب
-کار با XML
-و...
(تصویر ۲ لیست کاملتری رو از افزودنیّهای کیوت ارائه میده. هر چند تعداد واقعی این افزودنیها بیشتر از اینهاست. منبع: ویکیپدیا)
خب وقتشه که یه نگاه دقیقتر و عمقیتر به این موجود شیرین بیندازیم!
کیوت هم مثل اکثر فریمورکها از دو بخش اصلی تشکیل شده:
یک) بخش پایه – یا اصطلاحا Essentials
دو) بخش ماژولّها و افرودنیها(یه چیزی مثل فلفل و زردچوبه!) – یا Add-on modules
بخش پایه شامل قابلیتّهای اصلیای هست که کیوتی ارائه میده.
مثل چی؟ مثل قابلیتهای:
-هسته: شامل کار با Threading و Container ها و سیستم رویدادها و سیستم فایل و ...
-کار با کنسول
-کنترلّهای GUI
-QtQuick
-کار با شبکه
-کار با SQL
-Unit Test
-کار با WebKit
-و...
(تصویر ۱ لیست کامل تری از اجزای بخش Essential را نمایش میدهد. هر چند تعداد واقعی این پایهها بیشتر از اینهاست . منبع: ویکیپدیا)
بخش افزودنیّها شامل کلاسهایی است که قدرت هسته و پایهی کیوتی رو توسعه میدهند. کلاسّهایی مثل:
-کار با بلوتوث
-کار با NFC
-کار با OpenGL
-کار با ActiveX
-کار با سنسورها
-کار با پورتّهای سریال
-کار با سوکتهای وب
-کار با XML
-و...
(تصویر ۲ لیست کاملتری رو از افزودنیّهای کیوت ارائه میده. هر چند تعداد واقعی این افزودنیها بیشتر از اینهاست. منبع: ویکیپدیا)
خب...فکر میکنم برای این جلسه کافی باشه!
دوستان عزیزم خسته نباشید. ممنون از اینکه با کانال ما همراه هستید. از جلسه آینده انشاءالله کم کم از نزدیک خدمت کیوت میرسیم و با هم یه برنامهی ساده رو میدیم که کیوت بخوره بعد با هم دوباره به دل و رودهش نگاه میکنیم ببینیم چه اتفاقاتی اون تو میافته!
خدا نگهدار.😊🌺✋🏻
دوستان عزیزم خسته نباشید. ممنون از اینکه با کانال ما همراه هستید. از جلسه آینده انشاءالله کم کم از نزدیک خدمت کیوت میرسیم و با هم یه برنامهی ساده رو میدیم که کیوت بخوره بعد با هم دوباره به دل و رودهش نگاه میکنیم ببینیم چه اتفاقاتی اون تو میافته!
خدا نگهدار.😊🌺✋🏻
با عرض سلام خدمت همه ي دوستان. در خدمت شما هستم با جلسه ي دوم فتوشاپ.در قسمت قبل يك سري از مقدمه ها و واژه هايي كه مطالب اوليه ي فتوشاپ بودن رو براتون توضيح دادم.يه مقدار كلماتش جديد به نظرتون اومد و اينو ميدونم.اما درواقع اينا يك سري اصول اوليه بود كه متاسفانه خيلي از ما قبل از اينكه با اونها اشنا بشيم يه دفعه ميريم سر خود نرم افزار.اما درواقع اونها رو بايد بلد باشيد.
خوب تصويري براتون اماده كردم كه مطالب جلسه ي قبل رو بهتون نشون ميده(تصوير اول)قسمت هاي ١،٢،٣،٤،٥ كه جلسه ي اول براتون توضيحش دادم.در سمت چپ tool box (تصوير دوم)و در سمت راست هم پالتهارو داريم كه بهشون پنل هم گفته ميشه.اين پالتها رو ميتونيد از منوي Window باز كنيد توي صفحه ي فتوشاپ.و بعد هر كدوم رو نخواستيد ببنديد .(تصوير سوم)
خوب تصويري براتون اماده كردم كه مطالب جلسه ي قبل رو بهتون نشون ميده(تصوير اول)قسمت هاي ١،٢،٣،٤،٥ كه جلسه ي اول براتون توضيحش دادم.در سمت چپ tool box (تصوير دوم)و در سمت راست هم پالتهارو داريم كه بهشون پنل هم گفته ميشه.اين پالتها رو ميتونيد از منوي Window باز كنيد توي صفحه ي فتوشاپ.و بعد هر كدوم رو نخواستيد ببنديد .(تصوير سوم)