Tag Archives: وقفه

جزوه سیستم عامل ( بخش سوم )

حافظه اصلی کامپیوتر 1-اولین بخش جدول بردار (Interrupt Vector) می باشد که محل روتین های سرویس دهنده وقفه را تعریف می کند.این جدول آدرس 0 تا 400 هگزا را اشغال می کند. 2- دومین فضا به عنوان محل کار روتین های ROM _BIOS استفاده می شود. از بین چیز های زیادی که در فضای داده ROM_BIOS ذخیره می شود. به یک BUFFER که ضر به های کلید را پیش از اینکه برنامه برای در یافت آنها حاضر باشد در خود نگه می دارد . 3- سومین بخش فضای پایین حافظه فضای کار کامپا یلر ها و سیستم عامل می باشد. 4- بخش اصلی فضای کاری حافظه قسمتی است که برنامه ها و داده های آنها استفاده می شود.   هر وسیله برنامه سرویس دهی خاص خود را دارد و از طریق یک دستوالعمل (JMP) ، آدرس بردار قرار دارد قابل دسترسی است. مثال: فرض کنید که صفحه کلید بیت وقفه را 1 کند. در پایان سیکل دستوالعمل ،کامپیوتر به سیکل وقفه میرود. ابتدا آدرس بازگشت برنامه در حال اجرا را در پشته ذخیره می کند و سپس CPU آدرس بردار 00000011(3) را از گذر گاه پذیرفته و آنرا به ثبات PC ( ثبات شمارنده ) انتقال میدهد. آنگاه دستوالعمل واقع در مکان 3 اجرا شده ، و در نتیجه کنترل به روال KBD (برنامه سرویس دهی به صفحه کلید ) منتقل می شود. آخرین دستور در هر برنامه ، دستوالعمل بازگشت از وقفه است. { معماری کامپیوتر – موریس مانو } در رابطه با هر کلاس از دستگاه های I/O در قسمت پایینی حافظه ناحیه ای به نام بردار وقفه ( Interrupt ) وجود دارد که شامل آدرس روتین سرویس وقفه ( Interrupt Service Procedure ) می باشد. فرض کنید فرآیند 3 در حال اجرا است که ناگهان یک وقفه در رابطه با دیسک اتفاق می افتد . این وقفه باعث می شود که PC (شمارنده برنامه )، PSW(کلمه وضعیت برنامه ) و چند رجیستر دیگر توسط وقفه سخت افزاری در پشته (جاری) ققرار گیرند. سپس کامپیوتر به آدرس مشخص شده در بردار وقفه ( Interrupt Verctor ) پرش میکند. تااین مرحله کاملاً توسط سخت افزار انجام می شود ولی از این مرحله به بعد به عهده نرم افزار است. روتین سرویس وقفه با ذخیره سازی کلیه رجیستر ها در درایه ای از جدول فرآیند که مر بوط به فرآیند جاری است آغاز می شود.اعمالی نظیر ذخیره سازی رجیستر ها و تغییر اشاره گر پشته (به راحتی) در زبان C انجام نمی شود. بنابراین این موارد توسط رویه کوچکی که به زبان اسمبلی نوشته شده است انجام می شود. .{ تننباوم 65 }   روشهای انتقال ورودی /خروجی { معماری کامپیوتر – موریس مانو }   تبادل داده با وسایل جانبی به سه طریق زیر امکان پذیر است.   -1ورودی خروجی برنامه نویسی شده -2ورودی /خروجی بطریقه وقفه -3دستیابی مستقیم به حافظه DMA (Direct Memory Access)   -1 ورودی /خروجی برنامه سازی شده   در این روش ،CPU در یک حلقه از برنامه باقی می ماند تا واحد I/O مشخص نماید که برای انتقال داده آماده است . این فرآیند موجب اتلاف قابل توجه وقت می شود. زیرا پردازنده زا بی آنکه لازم باشد مشغول نگه می دارد . برای جلوگیری از بهدر رفتن وقت پردازنده از امکانات وقفه (Interrupt ) استفاده کرد.در این روش انتقال داده بین CPU و دستگاه جانبی انجام می شود.. در این روش ، برنامه ای برای کامپیوتر نوشته شده است تا پرچم را در ثبات وضعیت وارسی نموده و تعیین کند که آیا وسیله I/O بایتی در ثبات قرارداده است یا خیر . این عمل با خواندن ثبت وضعیت و قراردادن آن در یک ثبات CPU و وارسی بیت پرچم صورت می گیرد. اگر پرچم برابر 1 باشد ، CPU داده را از ثبات داده می خواند . سپس بیت پرچم با 0 شدن به وسیله ،CPU ، پاک می شود. . بعد از صدور فرمان لازم برای اجرای ورودی / خروجی به مولفه مر بوطه ، عمل درخواست شده توسط مولفه ورودی / خروجی انجام میشود و بیتهای مناسب از ثبات وضعیت ورودی / خروجی مقدار گذاری میشود و هیچ اطلاعی به پردازنده داده نمی شود. این مسئولیت پردازنده است که وضعیت مولفه ورودی / خروجی را متنا وبا ٌ بررسی نماید تا اتمام آن عمل را دریابد .   2- ورودی / خروجی بطریقه وقفه بعد از صدور فرمان به مولفه ورودی / خروجی ، پردازنده به کار مفید دیگری میپردازد . بعد از تکمیل عمل ورودی / خروجی هنگامی که داده ها در بافر داده های آن مولفه قرار گرفت مولفه ورودی / خروجی از طریق یک خط کنترلی به پردازنده وقفه میدهد، سپس داده هایش توسط پردازنده ، درخواست شده و به حافظه منتقل می گردد. در این روش CPU مادامی که مشغول اجرای یک برنامه است پرچم را وارسی نمی کند. با این وجود ، هنگامیکه پرچم 1 شده باشد، یک وقفه CPU را لحظه ای از اجرای برنامه جاری متوقف ساخته و 1 شدن پرچم را به آن اطلاع می دهد. CPU از آنچه در حال انجام آن است منصرف شده و به انتقال ورودی یا خروجی می پردازد.پس از تکمیل شدن اتنتقال ، کامپیوتر به برنامه اصلی بر می گردد تا آنچه را که قبل از وقفه انجام می داد ادامه دهد.   3-ورودی / خروجی میتنی بر وقفه همراه با مولفه DMA   انتقال داده بین یک وسیله ذخیره سازی سریع مانند دیسک مغناطیسی و حافظه اغلب بوسیله سرعتCPU محدود می شود. حذف CPU از مسیر و ایجاد امکان کنترل مستقیم گذرگاه حافظه توسط وسیله جانبی سرعت انتقال را بهبود می بخشد. این تکنیک انتقال دستیابی مستقیم به حافظه (DMA) نام دارد در حین انتقال بروش DMA ، CPU بیکار است و کنترلی بر گذر گاه های حافظه ندارد . یک کنترل کننده به منظور اداره مستقیم امر انتقال بین حافظه و وسیله I/O ، کنترل گذرگاه را بدست می گیرد. در این روش که برای انتقا ل داد ه های حجیم کارآمد تر است ، پردازنده با ارسال اطلاعات شامل ، عمل ورودی / خروجی ، آدرس دستگاه ورودی /خروجی ، محل حافظه برای خواندن یا نو شتن و تعداد کلماتی که باید خوانده ویا نوشته شود ، مولفه DMA را فعال میسازد . سپس پردازنده به کار دیگری می پردازد ، ، زمانی که انتقال ورودی / خروجی به اتمام رسید مولفه DMA علامت وقفه را صادر می نماید . بنابراین بدون دخالت پردازنده داده ها مستقیماً به حافظه منتقل می شود. پس نتیجه می گیریم که برای انتقال ورودی / خروجی های چند کلمه ای DMA بسیار کارآمد تر از روش های ورودی / خروجی برنامه سازی شده یا مبتنی بر وقفه است. توجه نمائید که مولفه DMA به منظور انتقال اطلا عات به حافظه یا بالعکس می بایست از گذرگاه استفاده نماید. بنابراین مولفه DMA باید زمانی از گذرگاه استفاده نماید که پردازنده به آن نیازی ندارد و یا باید پردازنده را وادار کند که موقتا ً عملیاتش را با تاخیر اندازد . روش اخیر را سرقت سیکل Cycle Stealing ) (می گویند زیرا مولفه DMA در اصل یک چرخه گذرگاه را می رباید . مولفه DMA هر بار که گذرگاه را در اختیار می گیرد (زمان واکشی دستور و یا واکشی عملوند ) یک کلمه را منتقل می کند و کنترل را به پردازنده باز می گرداند توجه نماید که این وقفه نیست ، بلکه به اندازه یک چرخه گذرگاه منتظره می ماند.CPU صرفاً عملکرد خود را به اندازه یک سیکل حافظه به تاخیر می اندازد تا عمل انتقال حافظه I/O به طور مستقیم صورت گرفته و یک سیکل حافظه را برباید. » لطفا جهت طرح سوالات خود، فقط به انجمن سايت مراجعه نمایید. «

Read More »

جزوه سیستم عامل( بخش دوم )

تفاوت سیستم عامل با ROM_BIOSچیست؟ سیستم عامل بطور مستقیم کاربر را سرویس دهی میکند در صورتیکه ROM_BIOS چنین کاری را انجام نمی دهد. تفاوت دیگر در این است که ROM_BIOS سرویس های خود را در سطحی پایین تر برای برنامه ها عر ضه می نماید. در صورتیکه بیشتر سرویس هی سیستم عامل سرویس های پیچیده ایی است و در سطحی بالا عر ضه می گردد. کنترل کننده دیسک دستوالعمل را از BIOS یا درایور ها به سیگنال الکتریکی ترجمه می کند که باعث حرکت هد خواندن / نوشتن روی مکان دیسک می شود. این عمل باعث ایجاد سیگنالهای مغناطیسی شده و بدین تر تیب داده ها ی یک سند روی سطح دیسک ثبت و ضبط می شود. BIOS را میتوان یک نرم افزار خاص برای برقراری ارتباط میان سیستم عامل و اجزای سخت افزاری نامید که معمولا بر روی یک حافظه از نوع Flash بر روی مادر بورد ذخیره میشود ولی گاهی اوقات از نوع ROM نیز ساخته میشود که تفاوت این دو با هم در این است که BIOS از نوع ROM قابلیت تغییر یافتن را ندارد ولی نوع Flash را میتوان به روز رسانی کرد .   به طور کلی برای BIOS می توان چهار وظیفه مهم را بر شمرد :   1. می توان گفت مهمترین وظیفه BIOS بارگذاری سیستم عامل است . همانطور که می دانید سیستم عامل بر روی هارد دیسک ذخیره شده است و هنگامی که کامپیوتر را روشن میکنیم و ریز پردازنده تلاش میکند تا اولین دستور را اجرا کند باید این دستورات را از جایی بخواند و اجرا نماید و مسلما از سیستم عامل نمی تواند این کار را انجام دهد،BIOS این دستورات را فراهم میکند . 2. تست خودکار تمام اجزای سخت افزاری سیستم جهت اطمینان از صحت کارکرد انها . 3. فعال کردن سایر BIOS های موجود در کارت های مختلفی که برروی سیستم نصب است. 4. BIOS علاوه بر کارهای فوق یکسری زیر برنامه ها ی سطح پایینی را هم در اختیار قرار می دهد که سیستم عامل برای بر قراری ارتباط با برخی سخت افزار ها نیاز دارد مثلا صفحه کلید ، صفحه نمایش ، پورت های سریال و موازی ر اکنترل میکند،مخصوصا هنگام بوت شدن سیستم !! (همین زیر برنامه ها نام BIOS -Basic Input/Output System- را به آن داده اند )   هنگامی که سیستم روشن می شود BIOS اعمال مختلفی را انجام می دهد که ما در اینجا یک روال معمول را به شما گوشزد میکنیم : 1. بررسی تنظیمات دستی CMOS (Complementary Metal-Oxide Semiconductor): اولین کاری که BIOS انجام می دهد بررسی اطلاعات ذخیره شده بر روی یکRAM 64 بایتی به نام CMOS می باشد که جزئیات سیستم را تامین میکند و میتواند با توجه به مشخصات سیستم تغییر یابد ،BIOS به این اطلاعات بری اجرای صحیح دستورات خود نیاز دارد . 2. بار گذاری کنترل کننده های وقفه و راه اندازی سخت افزاری:کنترل کننده وقفه قطعه نرم افزاری کوچکی است که به عنوان مترجم میان سخت افزار و سیستم عامل عمل میکند به عنوان مثال هنگامی که یک کلید بر روی صفحه کلید فشرده میشود یک سیگنال به کنترل کننده وقفه فرستاده شده که به CPU می گوید که چه کلیده فشرده شده و آنرا به سیستم عامل ارسال میکند . راه انداز های سخت افزار ، قطعات نرم افزاری هستند که اجزای سخت افزاری پایه از جمله صفحه کلید و ماوس و هارد و فلاپی و را تعریف می کند که برای افزایش سرعت بر روی RAM بارگذاری می شوند .بد از بار گذاری کنترل کننده وقفه نوبت به کارت گرافیک می رسد، در این هنگام بررسی می شود که آیا کات گرافیک فعال است یا خیر ؛ در صورت فعال بودن BIOS کارت گرافیک ، مادربرداین BIOS را بارگذاری میکند . 3. مقدار دهی اولیه ثبات ها و مدیریت جریانهای الکتریکی داخل سیستم 4. انجام تست خود کار هنگام روشن شدن(POST ) سپس BIOS چک میکند که که آیا بوت شدن ،یک بوت شدن سرد است (Cold Boot) یا بوت مجدد (ReBoot) .اگر از نوع دوم باشد بایوس اعمال مربوط به POST را دیگر انجام نمی دهد زیرا قبلا یک بار انجام گرفته اند . اما اگر بوت سرد باشد BIOS حافظه RAM را با انجام تست خواندن / نوشتن بر روی هر آدرس حافظه بررسی میکند . سپس BIOS پورت های PS/2 و USB را برای صفحه کلید و ماوس چک میکند و در صورت وجود گذرگاه PCI ( Prepheral Component Interconnect ) همه کارت های PCI را بررسی میکند اگر بایوس هنگام POST به مشکل بر بخورد این خطا با بوق یا متن به کاربر اطلاع داده میشود .   5. نمایش تنظیمات دستی :بعد از مراحل فوق BIOS برخی جزئیات سیستم را نمایش میدهد ازجمله : · پردازنده · فلاپی درایو و هارد درایو · حافظه · نسخه و تاریخ ساخت BIOS · نوع سخت افزار نمایشی 6. تعیین اینکه کدام دستگاهها قابل بوت شدن هستند 7. شروع کردن روال نوار بوت : بعد از نمایش جزئیات ، BIOS راه انداز قطعاتی مانند SCLS ( Small Computer System interface ) را که همراه خود قطعه است را بارگذاری میکند .پس از طی این مراحل ،برای اجرای سیستم عامل BIOS ترتیب قطعاتی را که به عنوان قطعات بوت کننده در CMOSانتخاب شده اند را بررسی میکند و سعی میکند تا روال بوت شدن را از اولین قطعات پیدا کند و اگر هیچ قطعه ای را پیدا نکند روند بوت قفل میشود . این آخرین فعالیت BIOS در هنگام بوت شدن می باشد پس از آن در صورت یافتن سیستم عامل ، مدیریت سیستم به دست سیستم عامل سپرده میشود .   :ROM_BIOS مجموعه ای از برنامه های تعبیه شده در کامپیوتر می باشد که اصلی ترین و سطح پایین ترین عملیات کنترل و نظارت را برای کامپیوتر انجام می دهند. ROM_BIOS در پایین ترین لایه قرار دارد لایه ای که در زیر تمام نرم افزار ها و عملیات در جدار کردن سایر برنامه ها از جزئیات نحوه کار سخت افزار می باشد. ROM_BIOS بطور اساسی یک رابط ، متصل کننده ، و مترجم بین سخت افزار کامپیوتر و برنامه های نرم افزار ی می باشد. نرم افزار هایی اینچنین چون بطور ثابت در تراشه های سخت افزاری ROM ذخیره می شوند FIREWARE گفته می شوند آنچه را که . ROM_BIOS باید انجام دهد کنترل مستقیم سخت افزار و پاسخ به هر تقاضایی از سوی سخت افزار است .نحوه انجام اینکار به مقدار زیاد ی توسط در گاهها انجام می گیرد.   مجموعه از برنامه های مهم و اصلی پشتیبان کلی عملیات کامپیوتر در ROM_BIOS نگهداری می گردند. این برنامه ها از دوبخش اصلی تقسیم می شوند   1- بخش اول فقط در هنگام روشن شدن کامپیوتر استفاده می شوند : این گروه برنامه های تست و مقدار دهی اولیه هستند که مطمئن می شوند کامپیوتر در وضعیت کاری خوبی قرار دارد. تاخیری که بین زمان روشن کردن کامپیوتر تا شروع کار آن وجود دارد توسط عملیات این برنامه های تست و مقدار دهی یا ( Power On Self Test ) POST بوجود می آید.   2- بخش دوم گروهی از روتینها به نام سرویس های اصلی ورودی / خروجی یا BIOS ( Basic Input /Output Service ) می باشد. این برنامه ها کنترل درونی و مفصلی را بر روی بخشهای مختلف کامپیوتر ، مخصوصاً وسایل ورودی / خروجی ، مانند دیسک گردانها فراهم می کنند. گرداننده ها() احتیاج به نظارت دقیقی (شامل نظارت جامع برای خطا ها ) دارند. ROM-BIOS برای کمک به کل عملیات کامپیوتر سرویس های متعدد و مفیدی را ارائه می کند که قابل دسترس برای استفاده توسط سیستم عامل ( Dos,windows) و برنامه های کاربردی می باشند.آخرین بخش روتین های را ه اندازی در ROM_BIOS روتین بوت می باشد که سعی میکند سیستم عامل را در کامپیوتر بوت کند. عمل بوت تلاش ROM_BIOS برای خواندن رکورد بوت کننده از آغاز دیسک را در بر دارد. دو بخش دیگر ROM_BIOS بخش اصلی عملیات اجرایی کامپیوتر را شکل می دهد. این دو بخش سرویس دهنده وقفه سخت افزار (hardware -interrupt handler ) و دستگذاری سرویس (service – handling ) می باشد. آنها به عنوان دو نوع روتین مجزا اما همکار عمل می کنند. 3-بخش سوم ROM-BIOS که فقط برای اعضا خانواده PC ساخت IBM به کار می رود.

Read More »