وقفه
گاهی رویدادی در خارج یا درون پردازنده رخ می دهد که لازم است پردازنده روند عادی اجرای دستورالعمل های برنامه جاری را موقتا قطع کرده و به رویداد اتفاق افتاده پاسخ دهد.
پس از پاسخ به رویداد به اجرای برنامه قطع شده برگشته و به ادامه روند آن می پردازد.
به این رویداد وقفه گفته می شود.
پاسخ به وقفه به معنی اجرای رویه اداره کننده وقفه (interrupt handler) یا روال سرویس وقفه ISR می باشد.هر وقفه یک isr مخصوص در سیستم عامل دارد.
گاهی رویدادی در خارج یا درون پردازنده رخ می دهد که لازم است پردازنده روند عادی اجرای دستورالعمل های برنامه جاری را موقتا قطع کرده و به رویداد اتفاق افتاده پاسخ دهد.
پس از پاسخ به رویداد به اجرای برنامه قطع شده برگشته و به ادامه روند آن می پردازد.
به این رویداد وقفه گفته می شود.
پاسخ به وقفه به معنی اجرای رویه اداره کننده وقفه (interrupt handler) یا روال سرویس وقفه ISR می باشد.هر وقفه یک isr مخصوص در سیستم عامل دارد.
به طور کلی وقفه ها دو نوع هستند:
وقفه های سخت ازاری (یا خارجی) که از سوی یک سخت افزار خارجی ازCPU به صورت یک سیگنال ناهمگام (آسنکرون: در یک لحظه تصادفی که از قبل مشخص نیست در کجای برنامه جاری به وقوع می پیوندد) به پردازنده ارسال می شود. این وقفه ها به چند دسته تقسیم می شود:
1. وقفه های I/O
2. خطای ماشین (machin chek) یا نقص سخت افزار(hardware fault )
3. وقفه ساعت (clock) زمان سنج(timer)
4. وقفه restat
5. سایر وقفه های خارجی(external )
وقفه های نرم افزاری(یا داخلی) که به صورت همگام (سنکرون) در اثر اجرای دستورالعمل خاصی از برنامه جاری، خواسته یا ناخواسته،به وقوع می پیوندد. این وقفه ها به چند دسته تقسیم می شوند:
وقفه های سخت ازاری (یا خارجی) که از سوی یک سخت افزار خارجی ازCPU به صورت یک سیگنال ناهمگام (آسنکرون: در یک لحظه تصادفی که از قبل مشخص نیست در کجای برنامه جاری به وقوع می پیوندد) به پردازنده ارسال می شود. این وقفه ها به چند دسته تقسیم می شود:
1. وقفه های I/O
2. خطای ماشین (machin chek) یا نقص سخت افزار(hardware fault )
3. وقفه ساعت (clock) زمان سنج(timer)
4. وقفه restat
5. سایر وقفه های خارجی(external )
وقفه های نرم افزاری(یا داخلی) که به صورت همگام (سنکرون) در اثر اجرای دستورالعمل خاصی از برنامه جاری، خواسته یا ناخواسته،به وقوع می پیوندد. این وقفه ها به چند دسته تقسیم می شوند:
1. فراخوانی های سیستمی(system call): این وقفه ها که فراخوان راهبردی یا سرپرستی ، فراخوان ناظر یا فراخوان هسته نیز نامیده می شود عموما وقتی رخ می دهد که برنامه سطح کاربر نیاز به استفاده از سرویس های سطح هسته سیستم عامل داشته باشد.
2. خطای برنامه (program check) یا استثا (exeption): این وقفه وقتی رخ می دهد که دستورالعمل جاری برنامه بخواهد عملی را انجام دهد که اصولا غیر مجاز است مانند خطای سرریز یا تقسیم بر صفر، یا اینکه دستورالعمل جاری برنامه سطح کاربر بخواهد عمدا یا سهوا عملی انجام دهد که در مد کاربر غیر مجاز است مانند نقص حفاظتی از قبیل مراجعه به یک آدرس نادرست یا غیر مجاز.
3. سیگنال (signal): یک وقفه نرم افزاری است که توسط یک فرآیند یا سیستم عامل یا کاربر به یک یا چند فرآیند ارسال می شود.
2. خطای برنامه (program check) یا استثا (exeption): این وقفه وقتی رخ می دهد که دستورالعمل جاری برنامه بخواهد عملی را انجام دهد که اصولا غیر مجاز است مانند خطای سرریز یا تقسیم بر صفر، یا اینکه دستورالعمل جاری برنامه سطح کاربر بخواهد عمدا یا سهوا عملی انجام دهد که در مد کاربر غیر مجاز است مانند نقص حفاظتی از قبیل مراجعه به یک آدرس نادرست یا غیر مجاز.
3. سیگنال (signal): یک وقفه نرم افزاری است که توسط یک فرآیند یا سیستم عامل یا کاربر به یک یا چند فرآیند ارسال می شود.
نکته: سیستم عامل های مدرن، مبتنی بروقفه( interrupt driven) هستند. یعنی از راه اندازی کامپیوتر توسط سیستم عامل وسپردن CPU به برنامه کاربر، سیستم عامل بارها به علت وقوع وقفه ها ی گوناگون سخت افزاری یا نرم افزاری در لابه لای اجرای فرایندهای سطح کاربر ظاهر می شود وبه وظایف خویش می پردازد.
نکته: حتی اگر کاری برای اجرا وجود نداشته باشد پردازنده یک برنامه ساده حاوی یک حلقه انتظار مشغول را اجرا خواهد کرد.
نکته: پردازنده های امروزی امکانات خاصی را در اختیار طراحان سیستم عامل می گذارد تا برای حفاظت از سیستم عامل و نیز حفاظت برنامه ها در برابر یکدیگر مورد استفاده قرار دهند.
نکته: حتی اگر کاری برای اجرا وجود نداشته باشد پردازنده یک برنامه ساده حاوی یک حلقه انتظار مشغول را اجرا خواهد کرد.
نکته: پردازنده های امروزی امکانات خاصی را در اختیار طراحان سیستم عامل می گذارد تا برای حفاظت از سیستم عامل و نیز حفاظت برنامه ها در برابر یکدیگر مورد استفاده قرار دهند.
مختصری در مورد تاریخچه سیستم عامل:
1)در نسل اول کامپیوترها (1945-1955) که از لامپ خلا برای ساخت آن ها استفاده می شد ، زبان های برنامه نویسی ابداع نشده بودند و سیستم عامل نیز اصلا وجود نداشت و برنامه نویسان تنها در یک فاصله زمانی مشخص حق استفاده از کامپیوترهای بزرگ و گران قیمت را داشتند.
2)نسل دوم سیستم عامل از ترانزیستور ساخته شدند. نحوه کار به این صورت است که کاربر برنامه را نوشته تحویل کامپیوتر میدهد کامپیوتر اجرا کرده و نتیجه را به کاربر تحویل میدهد، از این گروه می توان سیستم های offline spooling و online spooling, سیستم های دسته ای چند برنامگی، سیستم های اشتراک زمانی... نام برد.
1)در نسل اول کامپیوترها (1945-1955) که از لامپ خلا برای ساخت آن ها استفاده می شد ، زبان های برنامه نویسی ابداع نشده بودند و سیستم عامل نیز اصلا وجود نداشت و برنامه نویسان تنها در یک فاصله زمانی مشخص حق استفاده از کامپیوترهای بزرگ و گران قیمت را داشتند.
2)نسل دوم سیستم عامل از ترانزیستور ساخته شدند. نحوه کار به این صورت است که کاربر برنامه را نوشته تحویل کامپیوتر میدهد کامپیوتر اجرا کرده و نتیجه را به کاربر تحویل میدهد، از این گروه می توان سیستم های offline spooling و online spooling, سیستم های دسته ای چند برنامگی، سیستم های اشتراک زمانی... نام برد.
آموزش این هفته به پایان رسد در جلسه بعدی وارد مفاهیم اصلی سیستم عامل شده و نکات مهم و اصلی سیستم عامل را بیان میکنیم.
با تشکر از توجه شما.
با تشکر از توجه شما.
سلام خدمت دوستان عزیزم.
خوب هستید؟ سلامتید؟ ایام به کامتونه؟ اگه بله که خدا رو شکر.
درخشانی بوده و با قسمت سوم از سری آموزشهای کیوت در خدمتتون هستم!! لازم بذکر است که این قسمت از آموزش شامل فایل ویدئویی نیز میباشد که به زودی در سایت ilikephp.ir قرار خواهد گرفت.
لذا هرجا با عبارت Next-Next روبرو شدید بدانید و آگاه باشید که به تفصیل در فیلم آموزشی به آن خواهیم پرداخت.
اگر یادتان باشد(که فکر نکنم باشه) جلسه اول به طرح سوال و معرفی کیوت و جلسه دوم به تشریح کالبد و دل و رودهی فریمورک کیوت پرداختیم!
قرار بود از این جلسه عملیتر کار کنیم و یه سمپل عملی رو بدیم به کیوت و ببنیم وقتی میخوایم یه برنامهرو بالا بیاریم توی کیوت چه اتفاقی میافته. در این جلسه به قسمت اول این مهم می پردازیم و در جلسه آینده بخش دوم را ارائه خواهم داد.
آمادهاید؟!
خوب هستید؟ سلامتید؟ ایام به کامتونه؟ اگه بله که خدا رو شکر.
درخشانی بوده و با قسمت سوم از سری آموزشهای کیوت در خدمتتون هستم!! لازم بذکر است که این قسمت از آموزش شامل فایل ویدئویی نیز میباشد که به زودی در سایت ilikephp.ir قرار خواهد گرفت.
لذا هرجا با عبارت Next-Next روبرو شدید بدانید و آگاه باشید که به تفصیل در فیلم آموزشی به آن خواهیم پرداخت.
اگر یادتان باشد(که فکر نکنم باشه) جلسه اول به طرح سوال و معرفی کیوت و جلسه دوم به تشریح کالبد و دل و رودهی فریمورک کیوت پرداختیم!
قرار بود از این جلسه عملیتر کار کنیم و یه سمپل عملی رو بدیم به کیوت و ببنیم وقتی میخوایم یه برنامهرو بالا بیاریم توی کیوت چه اتفاقی میافته. در این جلسه به قسمت اول این مهم می پردازیم و در جلسه آینده بخش دوم را ارائه خواهم داد.
آمادهاید؟!
فصل سوم: ساختار IDE کیوت یا QtCreator
دانلود و نصب:
بعد از دانلود کیوت از سایت qt.io یا از آدرس:
https://download.qt.io/archive/qt/
آخرین نسخه یعنی 5.5 و سپس نسخهی 5.5.1 را انتخاب کنید. سپس مطابق تصویر۱ نسخهی مورد نظرتان را انتخاب و دانلود کنید.(پیشنهاد ما: نسخهی ویندوز –> برای برنامهنویسی اندروید)
فایل نصب را نصب کنید! این کار 10 مرحله بوده و بسیار راحت است.
تنها نکتهای که در هنگام نصب باید در نظر داشته باشید این است که در دومین مرحله از نصب(تصویر ۲) باید در کیوت ثبت نام کنید. اگر قبلا در سایت qt.io حساب کاربری ندارید، در همان پنجرهی نصب در قسمت SignUp ثبت نام کنید. بقیهی مراحل هم که Next – Next است.
بعد از نصب کیوت در منوی استارت روی آیکون Qt Creator(Community) کلیک کنید تا باز شود. تصویر ۳ معرفی محیط Qt Creator را انجام داده است. واو! چقدر ساده! بله همانطور که میبینید این محیط در نهایت سادگی است و توسعهدهندگان این IDE کلی عمر و فسفر مصرف کردن تا پیچیدگی را به حداقل برسانند و این خدمت بسیار بزرگی به سادگی کار و تمرکز روی اهداف اصلی پروژه میکند. دقت کنید که پروژههایی مثل Wireshark و MagiX از دل همین سادگی بیرون آمدهاند!
نکته۱: Qt Creator صرفا یک IDE است که کار تولید برنامهها با فریمورک کیوت را راحتتر میکند. میتوان از فریمورک کیوت در محیط های غیر از Qt Creator هم استفاده کرد. مثل Visual Studio و CodeBlocks و ...
نکته۲: خود محیط Qt Creator با این همه عظمتش(که در آینده میبینیم) توسط فریمورک Qt نوشته شده!
دانلود و نصب:
بعد از دانلود کیوت از سایت qt.io یا از آدرس:
https://download.qt.io/archive/qt/
آخرین نسخه یعنی 5.5 و سپس نسخهی 5.5.1 را انتخاب کنید. سپس مطابق تصویر۱ نسخهی مورد نظرتان را انتخاب و دانلود کنید.(پیشنهاد ما: نسخهی ویندوز –> برای برنامهنویسی اندروید)
فایل نصب را نصب کنید! این کار 10 مرحله بوده و بسیار راحت است.
تنها نکتهای که در هنگام نصب باید در نظر داشته باشید این است که در دومین مرحله از نصب(تصویر ۲) باید در کیوت ثبت نام کنید. اگر قبلا در سایت qt.io حساب کاربری ندارید، در همان پنجرهی نصب در قسمت SignUp ثبت نام کنید. بقیهی مراحل هم که Next – Next است.
بعد از نصب کیوت در منوی استارت روی آیکون Qt Creator(Community) کلیک کنید تا باز شود. تصویر ۳ معرفی محیط Qt Creator را انجام داده است. واو! چقدر ساده! بله همانطور که میبینید این محیط در نهایت سادگی است و توسعهدهندگان این IDE کلی عمر و فسفر مصرف کردن تا پیچیدگی را به حداقل برسانند و این خدمت بسیار بزرگی به سادگی کار و تمرکز روی اهداف اصلی پروژه میکند. دقت کنید که پروژههایی مثل Wireshark و MagiX از دل همین سادگی بیرون آمدهاند!
نکته۱: Qt Creator صرفا یک IDE است که کار تولید برنامهها با فریمورک کیوت را راحتتر میکند. میتوان از فریمورک کیوت در محیط های غیر از Qt Creator هم استفاده کرد. مثل Visual Studio و CodeBlocks و ...
نکته۲: خود محیط Qt Creator با این همه عظمتش(که در آینده میبینیم) توسط فریمورک Qt نوشته شده!
ایجاد پروژهی جدید:
خب حالا که مختصرا با محیط QtCreator آشنا شدید وقتش است که با کلیک بر روی دکمهی New Project پروژهی جدیدی را استارت بزنیم؛ اولین پروژهی کیوتمان! تصویر ۴ پنجرهی New Project را معرفی میکند.
از پنجرهی ظاهر شده فعلا در قسمتApplication گزینه ی Qt Widgets Application رو کلیک کنید.
در پنجره جدید در کادر Name نام پروژهی خود را وارد کنید(من MyFirstTestProjectInQt را نوشتهام) و سپس Next-Next را طبق معمول بزنید و در نهایت Finish .
میبینید که در پنل سمت چپ نام پروژهی شما با چندین پوشه و فایل درون خودش ساخته شده. تصویر ۵ ساختار پروژههای کیوت رو معرفی میکنه.
فعلا کاری نکنید: تنها و تنها در قسمت سمت چپ پایین QtCreator دکمهی سبز رنگ Run رو بزنید.
پنجرهای باز می شود. تبرییییییییییییک!! شما با موفقیت اولین برنامهی کیوت خود را اجرا کردید! ذوق نکردید؟ خوبه بدونید برنامه نویسا در سالهای 70-80 برای نمایش همین صفحهی سفیدی که میبینید هزاران خط کد باید مینوشتیم!
خب حالا که مختصرا با محیط QtCreator آشنا شدید وقتش است که با کلیک بر روی دکمهی New Project پروژهی جدیدی را استارت بزنیم؛ اولین پروژهی کیوتمان! تصویر ۴ پنجرهی New Project را معرفی میکند.
از پنجرهی ظاهر شده فعلا در قسمتApplication گزینه ی Qt Widgets Application رو کلیک کنید.
در پنجره جدید در کادر Name نام پروژهی خود را وارد کنید(من MyFirstTestProjectInQt را نوشتهام) و سپس Next-Next را طبق معمول بزنید و در نهایت Finish .
میبینید که در پنل سمت چپ نام پروژهی شما با چندین پوشه و فایل درون خودش ساخته شده. تصویر ۵ ساختار پروژههای کیوت رو معرفی میکنه.
فعلا کاری نکنید: تنها و تنها در قسمت سمت چپ پایین QtCreator دکمهی سبز رنگ Run رو بزنید.
پنجرهای باز می شود. تبرییییییییییییک!! شما با موفقیت اولین برنامهی کیوت خود را اجرا کردید! ذوق نکردید؟ خوبه بدونید برنامه نویسا در سالهای 70-80 برای نمایش همین صفحهی سفیدی که میبینید هزاران خط کد باید مینوشتیم!
خب دیگه بسه. برید استراحت کنید. تا جلسه آینده تعارف نکنید خودتون یه کم با این جناب کیوت ور برید و باهاش بازی کنید. راستی حتما حتما و حتما تصاویری که برایتان فرستادم مطالعه کنید. در راحتی کارکردنتان با کیوت تاثیر بسزایی خواهد داشت.
خدانگهدار!😊🌺🌺
خدانگهدار!😊🌺🌺
با سلام خدمت همه ي كاربران.خاطره پروانيان هستم با اموزش سومين جلسه ي فتوشاپ.جلسه ي قبل اشنا شديم با درست كردن يك فايل جديد و يا فايلهايي كه از قبل اماده كرده بوديم.امشب قصد دارم ابزارهاي انتخاب و تنظيمات رنگ رو براتون توضيح بدم .
یکی از قسمت های خیلی مهم کار کردن با رنگ هاست. در حقیقت شما ۲ تا جعبه رنگ در پایین مي بينيد
(شکل ٩)که اصطلاحا به جعبه رنگ میگن color picker که رنگ رویی foreground و رنگ زیری رنگ background نامیده می شود.
یکی از قسمت های خیلی مهم کار کردن با رنگ هاست. در حقیقت شما ۲ تا جعبه رنگ در پایین مي بينيد
(شکل ٩)که اصطلاحا به جعبه رنگ میگن color picker که رنگ رویی foreground و رنگ زیری رنگ background نامیده می شود.