نمایش نتایج 1 تا 4 از 4

نام تاپیک: The Timer Interrupt Handler

  1. #1
    کاربر دائمی آواتار hojjatcroos
    تاریخ عضویت
    آبان 1387
    محل زندگی
    ایران
    پست
    286

    The Timer Interrupt Handler

    سلام دوستان يك سوال داشتم.
    توي كتاب linux kernel development گفته ما دو نوع Interrupt Handler داريم.يكي وابسته به معماري هست و ديگري خير مي خواستم دليل اين دو دستگي رو بدونم.
    سوالي ديگه اين هست كه آيا همه ي پردازشگرها يا يك تايمر Interrupt مي شوند(در چند پردازنده اي)
    اگه اين طور هست چرا لينوكس به ازاي هر تيك يكي به مقدار متغيير jiffies اضافه ميكنه آيا اين باعث خطا در محاسبه زمان نميشه چون در يك لحظه به ازاي 4 پردازشگر 4 تيك به jiffies اضافه مي شود.
    (اگر براي دوستان زحمتي نيست مي خواستم لينك زير رو بخونيد تا متوجه منظور بشيد در حد 20-30 خط اولش رو)
    لينك
    ممنون

  2. #2
    کاربر دائمی آواتار hojjatcroos
    تاریخ عضویت
    آبان 1387
    محل زندگی
    ایران
    پست
    286

    نقل قول: The Timer Interrupt Handler

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

  3. #3

    نقل قول: The Timer Interrupt Handler

    ما می دونیم بر خلاف تایمرهای محلی pit ها تمامی پردازشگرها را وقفه می دهند حال سوال این است که اگر همه این پردازشگرها زمان را افزایش می دهند یک خطا رخ داده است یا نه ؟ممنون
    هر پردازشگر pit خودش رو داره. نه اينكه يه pit همه رو وقفه بده.

    لينوكس يك سيستم عامل چند پردازنده اي هست كه براي سيستم هاي توزيع شده طراحي شده. چنين سيستم عاملهاي به شكلهاي مختلف تدابير خودشون رو براي كنترل پردازنده هاي مختلف دارن. مثلا داخل يه سيستم عامل لينوكس ميتونه تنها pit يك پردازنده رو مقدار دهي و فعال كنه و بيخيال بقيه بشه. يا فقط يك كنترلر براي كنرل تايمر وجود داشته باشه و يا حتي چندين كنترلر براي پردازندهاي مختلف اگر داخل لينوكس يه ps -ef بگيري با برخي از فرايندها مثل :

    [softirqd/0]

    برخورد مي كني كه اون صفر نشون دهنده شماره پردازنده صفر هست. حالا اگر يه پردازنده مثل corei7 داشته باشي. چهار تا از اين فرايندها رو مي توني ببيني.

  4. #4
    کاربر دائمی آواتار aakh1361
    تاریخ عضویت
    آبان 1383
    محل زندگی
    تهران - سه راه افسریه - شهرک کاروان
    پست
    380

    نقل قول: The Timer Interrupt Handler

    با سلام
    در مورد سوال اولتون چون سیستم عامل لینوکس روی سخت افزارهای متفاوت و معماری های مختلف اجرا میشه
    میشه به دو نوع Interrupt Handler تقسیم کرد
    1- روتین های که نیاز به باز نویسی روی معماری متفاوتی دارن
    2 - روتین های که نیاز به باز نویسی روی معماری متفاوتی ندارند

    وقتی که روتین یا هندلر برای یک وقفه نوشته میشه معمولا نه همیشه ! به زبان سی یا یک زبان سطح بالا نوشته میشه و میشه همون روتین رو روی یک معماری دیگه بدون هیچ تغییر کامپایل کرد و درست کار میکنه
    ولی بعضی روتین های که برای بعضی وقفه ها نوشته میشن نیاز دارند برای اینکه روی معماری دیگه ای اجرا بشن کمی کدشان تغییر کنه یا نیاز به باز نویسی دارند مثلا تمام روتین های که کاملا به زبان سطح پایین نوشته میشن باید برای اینکه روی معماری دیگه کار کنه دوباره بر طبق معماری مقصد باز نویسی بشند
    بعضی روتین ها رو میشه کاملا به زبان سطح بالا نوشت و نیاز به هیچ کد سطح پایینی براشون نیست و فقط با یک کامپایل بدون مشکل کار میکنند ولی بعضی دیگه نیاز دارند حتما به زبان سطح پایین نوشته بشوند پس باید برای یک معماری دیگه باز نویسی بشن

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •