پاسخ تمرین شماره 1

حل تمرین شماره 1 به نام خدا
عملکرد دارد. حالت کرنل و حالت کاربر. برای تشخیص اینکه سیستم در کدام حالت قرار (mode) 1. سیستم دو حالت

استفاده میشود، به این صورت که هرگاه بیت حالت صفر باشد سیستم در حالت (mode bit) دارد از یک بیت حالت
mode ) کرنل و هر گاه یک باشد در حالت کاربر است. وقتی کد کاربر اجرا می شود سیستم در حالت کاربر قرار دارد
.(mode bit = و وقتی کد سیستم عامل اجرا میشود سیستم در حالت کرنل قرار دارد ( 1 (bit = 1
هدف از این عملکرد دو حالته اطمینان از صحت عملکرد سیستم عامل است. در حقیقت با این کار می توان تشخیص داد
که در پردازنده کد سیستم عامل اجرا می شود یا کد برنامهی کاربر. در صورتی که برنامهی کاربر در حال اجرا بود اجازهی
برخی عملیات (مثل تنظیم تایمر، دسترسی مستقیم به سختافزار) را ندارد.
-------------------------------------------------------------------------------------------
2. دستورالعملهایی هستند که فقط در حالت کرنل میتوانند اجرا شوند.
• غیرفعال کردن وقفه: ممتاز است. چون اگر برنامهی کاربر قادر به غیر فعال کردن وقفهها باشد، میتواند با انجام
این کار پردازنده را به مدت نامحدود در اختیار بگیرد.
• استفاده از فراخوانهای سیستمی: ممتاز نیست. برنامهی کاربر برای اینکه از سیستم عامل درخواست سرویس
کند از فراخوانهای سیستمی استفاده میکند. با فراخوانی فراخوانهای سیستمی سیستم به حالت کرنل رفته
و درخواست کاربر اجرا میگردد.
• تغییر مقدار تایمر: ممتاز است. با توجه به این نکته که پایان سهم زمانی یک برنامه با وقفه ی تایمر مشخص
میشود اگر برنامه ی کاربر اجازهی تغییر مقدار تایمر را داشته باشد، میتواند مقدار تایمر را بینهایت بگذارد و
تا زمان نامحدود در پردازنده اجرا شود.
-------------------------------------------------------------------------------------------
یا تله، وقفهی از سمت نرمافزار است. trap - .3
- میتواند به علت وقوع خطا در برنامه (مثل خطای تقسیم بر صفر) اتفاق بیفتد. همچنین ممکن است به علت درخواست
برنامهی کاربر از سیستمعامل (فراخوان سیستم) اتفاق بیفتد.
وقفهی ) trap ( - بله برنامهنویس میتواند هرگاه نیاز به سرویس از سیستمعامل داشت (مثل انجام عمل ورودی خروجی
نرمافزاری) تولید کند.
---------------------------------------------------------------------------------------------
استفاده نشده است، اطلاعات ابتدا بین دستگاه ورودی/خروجی و بافر کنترل- DMA مبتنی بر وقفه که از I/o 4. در روش
ردو بدل میگردد. سپس با یک وقفه از دستگاه کنترلگر به پردازنده اطلاع داده می (Device controller) گر دستگاه
شود. در این هنگام پردازنده اطلاعات را وارد ثباتهای خود کرده و از آنجا به حافظه انتقال میدهد. چون در این روش به
که از دستگاه خوانده (یا نوشته) میشود، به پردازنده وقفه میدهد که اطلاعات (word ازای هر واحد اطلاعات (بایت یا
را به حافظه منتقل کند، وقت پردازنده خیلی صرف عملیات ورودی/خروجی میشود. برای بهبود این مشکل از روش
به پردازنده اطلاع داده نمیشود، بلکه خود (word دیگر به ازای خواندن هر بایت (یا DMA استفاده میشود. در DMA
کنترلگر دستگاه مستقیما دادهها را در حافظه مینویسد و فقط در انتهای عمل ورودی خروجی (بعد از خواندن یک بلوک
داده) به پردازنده وقفه داده میشود.
- از آنجایی که مکان نوشتن اطلاعات در حافظه را باید سیستم عامل تعیین کند (یعنی برنامه ی سیستم عامل باید در
DMA پردازنده اجرا شود و تعیین کند که عمل ورودی خروجی در کدام قسمت حافظه انجام شود)، قبل از شروع عمل
ابتدا اطلاعاتی درون ثباتهای دستگاه کنترلگر مینویسد و از این طریق به آن میفهماند که در کدام قسمت از حافظه
اطلاعات وارد شده از دستگاه را ذخیره کند.
- پس از اینکه عملیات ورودی خروجی به پایان رسید، کنترلگر دستگاه یک وقفه به پردازنده ارسال میکند.
مشترک استفاده میکنند و در واقع پردازنده گاهی باید Bus - بله ممکن است تداخل ایجاد شود. چون هر دو از یک
منتظر یک سیکل باس باشد.
--------------------------------------------------------------------------------------------
5. - ارسال پارامتر از طریق ثباتها
- نوشتن در بلوکی از حافظه و نوشتن آدرس آن بلوک در ثبات
- قرار دادن پارامترها در پشتهی سیستمعامل
توضیح در کتاب.

/ 0 نظر / 21 بازدید