تالار گفتمان مانشت

نسخه‌ی کامل: سوال پنجم از فصل اول
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
بنده یک برنامه ای دارم که در قسمتی از برنامه منتظر یک ورودی از کاربر میباشد مثلا منتظر است که شخص نام کاربری را وارد کند .
این وقفه‌ای که ایجاد میشود چه نوع وقفه‌ای است ؟ (تالیفی )
1. سیگنال
2.وقفه نرم افزاری
3. وقفه سخت افزاری
4. exception

________________________________________________________
بچه‌ها این فصل احتمالا تا یکی دو روز آینده ادامه داره اگه سوالی هست که فکر میکنید خوبه مطرح کنیم بگید تا مطرح کنیم . (با پیام خصوصی تماس بگیرید)
جواب: 2
گزینه 1 که نیست چون اصلا توی وقفه‌ها چیزی به نام سیگنال نداریم
گزینه 2 درسته-چون وقفه نرم افزاری یعنی اگر برنامه درخواستهایی داشتند و وقفه صادر میکند و نمونه اش هم همین صورت تست است
گزینه 3-وقفه سخت افزاری را فقط بخشهای سخت افزاری مثل لوازم i/o صادر میکنند
گزینه 4-exceptionهم اصلا ربطی به وقفه ندارد
(10 مرداد 1390 01:39 ق.ظ)fatima1537 نوشته شده توسط: [ -> ]جواب: ۲
گزینه ۱ که نیست چون اصلا توی وقفه‌ها چیزی به نام سیگنال نداریم
گزینه ۲ درسته-چون وقفه نرم افزاری یعنی اگر برنامه درخواستهایی داشتند و وقفه صادر میکند و نمونه اش هم همین صورت تست است
گزینه ۳-وقفه سخت افزاری را فقط بخشهای سخت افزاری مثل لوازم i/o صادر میکنند
گزینه ۴-exceptionهم اصلا ربطی به وقفه ندارد
در کتاب اقای حقیقت در دسته وقفه های نرم افزاری یک وقفه به نام وقفه سیگنال وجود داره با این توضیح:"سیگنال‌: یک وقفه نرم افزاری است که توسط یک فرایند یا سیستم عامل یا کاربر به یک یا چند فرایند ارسال میشود فرایندی که سیگنال را دریافت میکند میتواند از ان صرف نظر کند یا با اجرای یک تابع خاص به سیگنال پاسخ دهد"

من فکر میکنم گزینه 3 صحیح است
با توجه به اینکه وقثه های نرم افزاری همگام و وقفه های سخت افزاری ناهمگام هستند وهمینطور اینکه وقتی وقفه ای همگام باشد درهنگام وقوع وقفه پاسخ داده میشود ولی در این سوال وقفه مورد نظر همگام نیست و برای پاسخ انتظار وجود دارد این وقفه سخت افزاریست
در کل وقفه های نرم افزاری سه دسته هستند:
1- فراخوان سیستمی: وقثه هایی که وقتی رخ میدهند که برنامه سطح کاربر نیاز به استفاده از سرویس های سطح هسته سیستم عامل داشته باشد
2- خطای برنامه یا exception‌: این وقفه‌ها وقتی رخ میدهند که دستورالعمل جاری بخواهد عملی را انجام دهد که غیر مجاز است مانند تقسیم بر صفر
3 - سیگنال‌: بالا توضیحات کامل داده شد.
این وقفه هیچ کدام از این سه نوع وقفه نیست پس وقفه سخت افزاریست
اگه طبق دسته بندیها بخوای جواب بدی میشه گزینه 3 ... دلیلش هم اینه که صفحه کلید به پردازنده بعد از تکمیل درخواست یه وقفه میده
(وقفه سیگنال‌، همون ارتباط بین فرایندهاست که در فصل های بعدی مطرح میشه ....)
(وقفه exception‌: جزء خطاهای نرم افزاری محسوب میشه)
بچه‌ها یه جورایی همتون دارید اشتباه میگید به سوال دقت کنید narges دلیلت درسته ولی به کل انگار دلیلت را خودت نقض کردی
نرگس خانم شما گفتید سیگنال میتونه توسط کاربر به فرآیند ارسال بشه.این وقفه نمی تونه سیگنال باشه؟
(البته من سیستم عامل بلد نیستما همینجوری نظرم رو گفتم)
(10 مرداد 1390 03:18 ب.ظ)mystack نوشته شده توسط: [ -> ]اگه طبق دسته بندیها بخوای جواب بدی میشه گزینه ۳ ... دلیلش هم اینه که صفحه کلید به پردازنده بعد از تکمیل درخواست یه وقفه میده
(وقفه سیگنال‌، همون ارتباط بین فرایندهاست که در فصل های بعدی مطرح میشه ....)
(وقفه exception‌: جزء خطاهای نرم افزاری محسوب میشه)
ولی این سئوال داره میگه که درقسمتی از برنامه منتظر هستیم.یعنی یک وقفه صادر شده و برنامه را متوقف کرده و منتظر است.نه اینکه عملی که کاربر انجام میدهد چه جور وقفه ایست.

من هنوز روی جواب خودم پافشاری میکنمSmile
(11 مرداد 1390 01:03 ق.ظ)afagh1389 نوشته شده توسط: [ -> ]نرگس خانم شما گفتید سیگنال میتونه توسط کاربر به فرآیند ارسال بشه.این وقفه نمی تونه سیگنال باشه؟
(البته من سیستم عامل بلد نیستما همینجوری نظرم رو گفتم)

افاق خانوم من هم سیستم عاملل بلد نیستم و درواقع در این درس خیلی ضعیف هستم این مطالب از کتاب اقای حقیقت خوندم(فصل اول صفحه 8)


به نظر میاد در اینجا وقفه همگام هست و یک وقفه نرم افزاری باشه
فکر میکنم همگام هست چون تا نام کاربری وارد نشود از ادامه برنامه عاجز هستیم
البته سیگنال و exception هر دو از دسته وقفه های نرم افزاری هستند یعنی درواقع اگر گزینه دوم انتخاب شود شامل گزینه های یک و چهار هم میشود ولی از انجا که وقفه های نرم افزاری شامل سه گروه هستند و مطابق توضیحاتی که بالا دادم این وقفه هیچکدام از وقفه های exception و فراخوان سیستمی نیست و همینطورر اینکه با تعریف سیگنال که میگوید ارسال وقفه از طرف کاربر به فرایند است همخوانی دارد پس فکر میکنم میتوان گزینه سیگنال را به عنوان پاسخ صحیح انتخاب کرد
(12 مرداد 1390 02:27 ق.ظ)narges_r نوشته شده توسط: [ -> ]فکر میکنم همگام هست چون تا نام کاربری وارد نشود از ادامه برنامه عاجز هستیم
ولی این سئوال درباره اتفاقات بعد از ورود نام کاربری بحث نمیکند ،درمورد وقفه ای که باعث متوقف شدن برنامه شده و باعث شده که حالا برنامه بایستد و منتظر باشد بحث میکند
البته نمیگم که جوابتون اشتباهه
(12 مرداد 1390 02:44 ق.ظ)fatima1537 نوشته شده توسط: [ -> ]
(12 مرداد 1390 02:27 ق.ظ)narges_r نوشته شده توسط: [ -> ]فکر میکنم همگام هست چون تا نام کاربری وارد نشود از ادامه برنامه عاجز هستیم
ولی این سئوال درباره اتفاقات بعد از ورود نام کاربری بحث نمیکند ،درمورد وقفه ای که باعث متوقف شدن برنامه شده و باعث شده که حالا برنامه بایستد و منتظر باشد بحث میکند
البته نمیگم که جوابتون اشتباهه
خب یک برنامه در حال اجراست به جایی میرسه که باید یک ارسال از طرف کاربر وجود داشته باشه و تا ارسال انجام نشه برنامه ادامه پیدا نمیکنه خب این معنی همگام بودن میده یعنی تا قبل از ورود نام کاربری برنامه متوقف شده تا نام کاربری وارد نشه برنامه ادامه پیدا نمیکنه و کاری به بعد از ورود نام کاربری نداریم
فرق وفقه همگام و ناهمگام در اینه که ناهمگام بدون توجه به وضعیت برنامه رخ میده اما همگام با توجه به شرایط برنامه رخ میده در اینجا هم با توجه به شرایط فعلی برنامه رخ داده که معنی همگام بودن اون هست
در واقع ما منتظر یک ورودی / خروجی یا همون I/O خودمون هستیم و این هم یک وفقه‌ی سخت افزاریه پس به نظر من گزینه 3 صحیحه
ببینید تمام درخواستهای I/O بلا استثنا متعلق به دسته وقفه های سخت افزاریه (نقل از کتاب دکتر حقیقت)

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

حالا اینجا یک جایی از برنامه درخواست I/O شده‌: خوب دوبار به پردازنده وقفه داده میشه
یکی هنگام درخواست ورودی و دیگری هنگام تکمیل I/O حالا کدومش مد نظره ؟؟؟
حتی درخواست ورودی هم جزو وقفه های سخت افزاری به حساب میاد.
(12 مرداد 1390 01:28 ب.ظ)roya نوشته شده توسط: [ -> ]حتی درخواست ورودی هم جزو وقفه های سخت افزاری به حساب میاد.
=============
خوب دیگه خلاص !!! .....
(12 مرداد 1390 12:25 ب.ظ)mystack نوشته شده توسط: [ -> ]ببینید تمام درخواستهای I/O بلا استثنا متعلق به دسته وقفه های سخت افزاریه (نقل از کتاب دکتر حقیقت)

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

حالا اینجا یک جایی از برنامه درخواست I/O شده‌: خوب دوبار به پردازنده وقفه داده میشه
یکی هنگام درخواست ورودی و دیگری هنگام تکمیل I/O حالا کدومش مد نظره ؟؟؟

آفرین دو نوع وقفه اینجا مطرح است ولی من منظورم را رسوندم و سوال واضحه
دوباره سوال را چک کنید .

(12 مرداد 1390 03:03 ق.ظ)narges_r نوشته شده توسط: [ -> ]
(12 مرداد 1390 02:44 ق.ظ)fatima1537 نوشته شده توسط: [ -> ]
(12 مرداد 1390 02:27 ق.ظ)narges_r نوشته شده توسط: [ -> ]فکر میکنم همگام هست چون تا نام کاربری وارد نشود از ادامه برنامه عاجز هستیم
ولی این سئوال درباره اتفاقات بعد از ورود نام کاربری بحث نمیکند ،درمورد وقفه ای که باعث متوقف شدن برنامه شده و باعث شده که حالا برنامه بایستد و منتظر باشد بحث میکند
البته نمیگم که جوابتون اشتباهه
خب یک برنامه در حال اجراست به جایی میرسه که باید یک ارسال از طرف کاربر وجود داشته باشه و تا ارسال انجام نشه برنامه ادامه پیدا نمیکنه خب این معنی همگام بودن میده یعنی تا قبل از ورود نام کاربری برنامه متوقف شده تا نام کاربری وارد نشه برنامه ادامه پیدا نمیکنه و کاری به بعد از ورود نام کاربری نداریم
فرق وفقه همگام و ناهمگام در اینه که ناهمگام بدون توجه به وضعیت برنامه رخ میده اما همگام با توجه به شرایط برنامه رخ میده در اینجا هم با توجه به شرایط فعلی برنامه رخ داده که معنی همگام بودن اون هست
نکته اصلی را فهمیدید ولی هنوز جوابتون اشتباهه
صفحه‌ها: 1 2
لینک مرجع