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

1-در این مطلب، متن اسلاید های اولیه دانلود فایل پاورپوینت سيستم عامل قرار داده شده است 2-به علت اینکه امکان درج تصاویر استفاده شده در پاورپوینت وجود ندارد،در صورتی که مایل به دریافت  تصاویری از ان قبل از خرید هستید، می توانید با پشتیبانی تماس حاصل فرمایید 3-پس از پرداخت هزینه ، حداکثر طی 4 ساعت پاورپوینت خرید شده ، به ادرس ایمیل شما ارسال خواهد شد 4-در صورت  مشاهده  بهم ریختگی احتمالی در متون زیر ،دلیل ان کپی کردن این مطالب از داخل اسلاید ها میباشد ودر فایل اصلی این پاورپوینت،به هیچ وجه بهم ریختگی وجود ندارد 5-در صورتی که اسلاید ها داری جدول و یا عکس باشند در متون زیر قرار نخواهند گرفت

— پاورپوینت شامل تصاویر میباشد —-

اسلاید ۱ :

ورودی و خروجی

سيستم عامل برای کنترل دستگاههای ورودی و خروجی (I/O)  ، دستوراتي به دستگاههای مي فرستد ، Interrupt   هايي را دريافت مي کند و به  Error  هايي که رخ مي دهد. ميپردازد.

 

                اصول سخت افزار I/O

                کلیات نرم افزار  I/O

                بن بستها Dead Locks

اسلاید ۲ :

در اين پنجره از ديدگاه برنامه نويس به سخت افزار I/O  نگاه مي کنيم .

  يعني :

واسط (Interface)  که در اختيار نرم افزار قرارداده مي شود. دستوراتي که سخت افزار قبول مي کند ، کارهايي را که انجام مي دهد ،  Error  هايي که

در اين بخش توجه ما بر اين خواهد بود که که دستگاههای ورودی / خروجي چگونه  Program  مي شوند .  (Programming I/O Devices)   

اسلاید ۳ :

دستگاههای بلوکي   Block Devices

دستگاهي است که اطلاعات را در بلوکهايي با سايز ثابت مي ريزد که هر بلوک آدرس خودش را دارد. سايزهای معمول برای بلوک از ۵۱۲ بايت تا ۳۲۷۶۸  Byte   يعني ۳۲k مي باشد.

خصوصيات اصلي يک  دستگاه بلوکي اين است که در اين دستگاه هر بلوک مجزا از بلوکهای ديگر قابل خواندن و نوشتن است . ديسکها  معمول ترین دستگاههای  بلوکي هستند.

يک دستگاه کاراکتری يک  Stream  (جويباری) از کاراکترها را مي پذیرد يا ارائه مي کند، بدون توجه به هر گونه ساختار بلوکي .  يک دستگاه کاراکتری قابل آدرس دهی نيست و عمل  Seek  را ندارد.

پرينترها ، واسط های شبکه (کارتهای شبکه) ،  Mouse ها و بيشتر دسنتگاههایی که ديسک مانند نيستند ، دستگاههای کاراکتری هستند.

البته هر دستگاه در اين طبقه بندی نمي گنجد مثلآ  Clock ( ساعت کامپيوتر) نه قابل آدرس دهي بلوکي است و نه  Stream  های کاراکتری مي گيرد يا توليد مي کند.  Clock  تنها کاری که مي کند ايجاد  Interrupt  يا سيگنال وقفه در بازه های زماني تعريف شده است .

اما اين تقسيم بندی دستگاههای ورودی / خروجی آنقدر کلي هست که بتوان از آن به عنوان پايه ای برای ايجاد  نرم افزار سيستم عامل مربوط به دستگاههای  I/O  به طور مستقل  از دستگاه  (Device Independent)

استفاده کرد.

اسلاید ۴ :

به عنوان مثال :

 سيستم فايل (File System) ، فقط به دستگاههای بلوکي انتزاعي مي پردازد و بخش وابسته به دستگاه   (Device Dependent) را به نرم افزار سطح پايينی به نام  Device Driver  واگذار مي کند .

 

يک دستگاه  I/O  بطور معمول از دو  قسمت تشکيل شده ، يکي جزء مکانيکي و يکي جزء الکترونيکي .

جزء الکترونيکي  Device Controller يا  Adaptor  ناميده ميشود.

جزء مکانيکي که خود دستگاه  (Device) است

برخي کنترلرها مي توانند دو، چهار يا حتي هشت  دستگاه عين هم را کنترل کنند. مثل کنترلر ديسکهای  SCSI (Small Computer System Interface)

اسلاید ۵ :

اگر استانداردهایی برای   Interface  ميان  Controller و Device  وجود داشته باشد .کمپانیها مي توانند    Controller  ها و  Device هايي توليد کنند که آن استاندارد را رعایت نماید.

بطور مثال :

      استانداردهای IDE    (Integrated Device Electronics)

   استاندارد های SCSI (Small Computer System Interface)  

اسلاید ۶ :

هر کنترلر  چند تا (تعدادکمی )  Register دارد که برای تبادل اطلاعات با  CPU  بکار می رود که به آنها در برخی کامپیوتر ها I/O Ports  گویند ، این  Register  ها بخشی از فضای آدرس حافظه اصلی کامپیوتر هستند که به این scheme  ،    Memory mapped I/O       می گویند .

مثلا :  Motorola  ۶۸۰X0   از این روش استفاده می کنند .

برخی کامپیوترها  از یک فضای آدرس دهی مخصوص برای  I/O  استفاده می کنند که در آن به هر   Controller  بخش بخصوصی از آن فضا تخصیص داده مي شود. که به این     scheme    ،

Isolated I/O      می گویند .

منطق تبدیل کد میان  Bus  و  Controller  تخصیص آدرسهای  I/O  به دستگاه  را مشخص می کند .

 بیشتر کنترلرها از اینتراپتها Interrupt ها استفاده می کنند تا به  CPU  بگویند کی آماده اند تا  CPU   ، رجیسترهایشان را بخواند یا در آنها بنویسد.

اسلاید ۷ :

خط درخواست وقفه (Interrupt Request Line) ( IRQ ) سخت افزاری ، یک ورودی فیریکی به Interrupt Controller Chip   می باشد. تعداد این  IRQ  ها محدود است . در مورد Pentium  ،  این تعداد ۱۵ تا است .

کنترلرهای (Plug‘n Play) PNP، کنترلرهایی هستند که روی  Slot  های  Mainboard سوار می شوند .

برخی دیگر از کنترلرهایی که روی  Slot  سوارمیشوند ،  IRQ  شان توسط  Switch ها یا       Jumper  ها تعیین می شود  تا از  Conflict  (تداخل) ها اجتناب  شود.

وظیفه بردار وقفه (interrupt Vector) تعیین محل نرم افزار خدمت رسانی به  interrupt  است. (Interrupt Service Software)

اسلاید ۸ :

CPU دستور را به کنترلر می دهد و بقیه کار را به کنترلر می سپرد و خودش پی کارهای دیگرش می رود وقتی دستور کامل اجرا شد ، کنترلر یک اینتراپتی را ایجاد می کند ، تا اینکه باعث شود سیستم عامل کنترل CPU را بدست گیرد و نتایج عمل را چک کند . CPU نتایج و وضعیت دستگاه (device status) را توسط خواندن مقادیر Register های کنترلر بدست می آورد .

اسلاید ۹ :

بیشتر کنترلرها ، مخصوصا آنها که مربوط به دستگاههای بلاکی هستند ، DMA را پشتیبانی می کنند .

اگر از DMA استفاده نشود کنترلر Block را بیت به بیت بطور سریال از Drive می خواند تا اینکه کل Block در Buffer قرار گیرد . سپس کنترلر یک Interrupt تولید می کند . وقتی که سیستم عامل CPU می گیرد ، Block داده را از Buffer کنترلر میخواند )یک Byte یا یک Word در هر لحظه (با اجرای یک حلقه هربار یک Byte یا یک Word از Device Controller Register می خواند و در حافظه ذخیره می نماید .

این وقت CPU را تلف می کند . DMA برای این اختراع شد که CPU را از این کار سطح پایین آزاد کند وقتی DMA استفاده شود .

CPU به کنترلر علاوه بر آدرس بلاک دیسک دو قلم اطلاعاتی می دهد .

اسلاید ۱۰ :

وقتی که کنترلر ، کل بلاک را از Device به یک Buffer خواند اولین  Byte یا Word را به آدرسی که Memory Address DMA نشان می دهد می ریزد ، سپس Memory Address DMA را Increment می کند و DMA Count را Decrement می کند (به تعداد بایتهای منتقل شده) این کار تکرار می شود تا آنجا که DMA Count صفر شود که در آن لحظه Controller یک Interrupt تولید می کند . وقتی OS ،  CPU بگیرد ، لازم نیست چیزی را کپی کند ، بلکه داده در آنجا آماده است .

چرا کنترلر هر Byte را که از Drive می گیرد مستقیما در حافظه نمی ریزد ؟ چرا از Buffer استفاده می کند ؟

وقتی Buffer استفاده شود تا زمانی که DMA شروع می شود به BUS نیاز نیست .