در حال حاضر محصولی در سبد خرید شما وجود ندارد.

پنل کاربری

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

در حال حاضر محصولی در سبد خرید شما وجود ندارد.

کورس یادگیری کار با Interrupts and Bottom Halves in Linux Kernel

10,900 تومان
بیش از یک محصول به صورت دانلودی میخواهید؟ محصول را به سبد خرید اضافه کنید.
افزودن به سبد خرید
خرید دانلودی فوری

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

ویدئو معرفی این محصول

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

عنوان اصلی : Interrupts and Bottom Halves in Linux Kernel

سرفصل ها :


معرفی :
معرفی
استثناها
تله ها و گسل ها
نحوه عملکرد دیباگر
روش های تحریک
نقاب زدن
پین های قطع X86
کنترل کننده وقفه قابل برنامه ریزی
نقشه وقفه دستگاه
درخواست وقفه قابل برنامه ریزی
APIC
CPUID
چه اتفاقی می افتد زمانی که وقفه وجود دارد
چگونه سخت افزار کنترل کننده وقفه را پیدا می کند
مدیریت وقفه در هسته لینوکس:
مدیریت وقفه در هسته لینوکس
آمار وقفه در کرنل لینوکس
مانیتورینگ وقفه ها با استفاده از فرمان ساعت
PCI قطع می شود
درخواست کنترل کننده وقفه
درایور لینوکس برای وقفه صفحه کلید
درایور لینوکس که هر کاراکتر تایپ شده را ثبت می کند
درایور لینوکس برای وقفه اترنت
درایور لینوکس برای وقفه ماوس
درایور کی لاگر
افزودن پشتیبانی sysfs برای درایور کی لاگر
request_irq :
مقدار بازگشتی کنترل کننده های وقفه
پرچم های وقفه
درایور لینوکس که همه irq ها را ثبت می کند
سایر پرچم های وقفه
IRQF_NOBALANCING
SMP IRQ Affinity
چه اتفاقی می‌افتد وقتی NULL را به عنوان آخرین آرگومان در مورد irq مشترک پاس می‌کنیم
irq و شناسه دستگاه را در irq handler چاپ کنید
فعال و غیرفعال کردن وقفه ها:
فعال و غیرفعال کردن وقفه
چرا باید وقفه ها را غیرفعال کنیم؟
ماژول کرنل لینوکس به عنوان مثال غیرفعال کردن و فعال کردن وقفه در فرآیند فعلی
ذخیره حالت وقفه قبل از غیرفعال کردن وقفه ها
غیرفعال کردن یک خط وقفه خاص
disable_irq_nosync
وقتی دوبار disable_irq و یک بار enable_irq تماس می گیریم چه اتفاقی می افتد
وقتی خط وقفه مشترک را غیرفعال می کنیم چه اتفاقی می افتد
بررسی کنید که آیا وقفه های پردازنده محلی غیرفعال هستند یا خیر
متن قطع شود
ماکرو برای اینکه بفهمیم آیا در زمینه وقفه هستیم یا خیر
استفاده از in_interrupt برای تخصیص حافظه
اضافه کردن تاخیر در کنترل کننده وقفه
چاپ ردیابی تماس در کنترل کننده وقفه
آیا می توانیم از ماکرو فعلی در کنترل کننده وقفه استفاده کنیم؟
چه اتفاقی می‌افتد وقتی خواب را در کنترل کننده وقفه صدا می‌زنیم
IRQ رشته ای:
معرفی
نمونه ای از نیمه های بالا و پایین
IRQ های رشته ای
نمونه ای از IRQ های رشته ای
نمونه متن چاپ ماژول هسته در irq های رشته ای
IRQF_ONESHOT
چاپ ردیابی تماس در irq های رشته ای
چاپ PID و نام فرآیند در irq های رشته ای
آیا وقفه ها در irq های رشته ای فعال هستند؟
Softirqs:
معرفی
آمار softirqs
روش های Softirqs
یک softirq جدید ایجاد کنید
درایور هسته لینوکس مثالی از softirq
زمینه softirq handler را بیابید
بررسی کنید که آیا وقفه ها در softirq handler فعال یا غیرفعال هستند
مقدار جریان در softirq handler
ردیابی تماس را در softirq handler چاپ می کند
بررسی شناسه پردازنده در وقفه و کنترلر نرم افزار
اضافه کردن تاخیر در softirq handler
بررسی کنید که آیا softirq در زمینه سخت یا نرم irq در حال اجرا است
نکات مهم مربوط به softirq
ksoftirqd
نمونه ksoftirqd
نرم افزارهای معلق را پیدا کنید
زمانی که نرم افزارهای معلق اجرا می شوند
ماکرو برای تشخیص اینکه آیا در softirq در حال اجرا هستید یا خیر
غیرفعال کردن و فعال کردن softirqs
آیا وقتی با spinlock تماس می گیریم، وقفه ها فعال می شوند؟
قفل شدن بین زمینه کاربر و softirq
تکالیف:
معرفی
وضعیت و شمارش فیلد tasklet
Tasklet API
نمونه ای از استفاده از tasklet
برنامه ریزی وظایف
نمونه ای از زمان بندی مقداردهی اولیه استاتیک
نمونه‌ای از زمان‌بندی مقداردهی اولیه پویا
مراحل انجام شده توسط tasklet_schedule
مراحل انجام شده توسط tasklet softirq handlers
چگونه کرنل از اجرای یک tasklet روی چندین پردازنده جلوگیری می کند
آیا می توانم در Tasklet handler بخوابم؟
آیا وقفه ها در هنگام اجرای وظیفه فعال هستند؟
زمینه کنترل وظیفه را بیابید
چاپ PID و نام فرآیند در Tasklet handler
چاپ ردیابی تماس در کنترلر وظیفه
بررسی کنید که tasklet در زمینه سخت یا نرم irq در حال اجرا است
چاپ بیت ماسک softirqs معلق
وقتی دوبار tasklet_schedule را فراخوانی می کنیم چه اتفاقی می افتد
بررسی شناسه پردازنده در کنترلر وظیفه و کنترل کننده irq
Softirq در مقابل tasklet که اول اجرا می شود
فعال و غیرفعال کردن tasklets
tasklet_kill
tasklet_hi_schedule
غیرفعال کردن tasklet ها با استفاده از local_bh_disable
Tasklets در مقابل softirqs
صف های کاری:
معرفی
چگونه یک استخر کارگر هدف تعیین می شود
APIهای Workqueues
API برای کار در صف
API برای ایجاد صف کار
وقتی یک کار را دو بار در صف قرار می دهیم چه اتفاقی می افتد
مثال queue_work_on
برنامه ریزی کار
انتقال داده های خصوصی به عملکرد کار
چاپ PID و نام فرآیند در تابع کار
زمینه عملکرد کار را بیابید
آیا هنگام اجرای تابع کار، وقفه ها فعال می شوند؟
لغو کار
اضافه کردن تاخیر در عملکرد کار
برنامه ریزی دو مورد کاری
کار فلاشینگ
کار با تاخیر
نمونه کارهای تاخیری
فلاشینگ کار تاخیری
لغو کار با تاخیر
Softirqs vs Tasklets vs Workqueues
صف های کاری شخصی:
کارگر
API صف های کاری اختصاصی
پرچم های صف کار WQ_UNBOUND
صف کشیدن دو آیتم کاری در صف کاری با حداکثر پرچم فعال به 1
صف کشیدن دو آیتم کاری در صف کاری با حداکثر پرچم فعال به 2
پرچم های صف کار WQ_HIGHPRI
قرار دادن دو آیتم کاری در صف کار WQ_HIGHPRI
نمونه دو صف کار
مثالی از صف_تاخیر_کار
به_تاخیر_کار کردن
کارهای دوره ای را با استفاده از صف کار انجام دهید
پرچم WQ_SYSFS
cpumask
سایر پرچم های صف کار
فلاش صف کار
تعداد صف های کاری بی بند و بار را بیابید
alloc_ordered_queue
وقتی به queue_work زنگ می زنم چه اتفاقی می افتد
منابع:
دانلودها

نمایش سرفصل های انگلیسی

Interrupts and Bottom Halves in Linux Kernel