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 »