Forwarded from OS Internals (Abolfazl Kazemi)
مروری بر پروسههای کرنلی لینوکس
در لینوکس برخی از پروسهها بخش user space نداشته و کامل در دل کرنل اجرا میشوند. این پروسهها در اجرای کارهای مختلف به سیستمعامل کمک کرده و به صورت background کارهایی که نیاز است انجام شوند که لینوکس بتواند سرویسدهی موارد مختلف را انجام دهد مدیریت میکنند. در این پست و ویدئو برخی از این پروسهها معرفی شده و کاربردهای مختلف آنها شرح داده میشود.
اولین پروسه (نخ) کرنلی لینوکس kthreadd است که وظیفهی ایجاد یک interface برای ایجاد و مدیریت پروسههای کرنلی در لینوکس را داشته و همیشه با PID برابر ۲ اجرا میشود. در کد این نخ یک حلقهی بینهایت وجود دارد که از لیستی به اسم kthread_create_list اطلاعات پروسهی کرنلی که قرار است ایجاد شود را برداشته و آنرا ایجاد میکند. تمامی پروسههای کرنلی لینوکس از اینجا به بعد فرزندان kthreadd خواهند بود.
پروسهی بعدی که معرفی میکنیم migration است. از پروسهی کرنلی migration به تعداد coreهای cpu خواهیم داشت و وظیفهی آن مدیریت پروسههایی است که بر روی یک core اجرا میشوند و در صورت زیاد بودن بار بر روی یک core یک پروسه را از روی run_queue یک core بر داشته و بر روی run_queue یک core دیگر قرار میدهد.
پروسهی دیگری که در ویدئو در مورد آن صحبت شده است kcompactd است که وظیفهی آن جلوگیری از ایجاد fragmentation در حافظه و کمک به کنارهم قرار گرفتن pageهای مرتبط در حافظه است.
یک پروسهی جالب دیگر oom_reaper است که در صورتیکه سیستمعامل با کمبود حافظه مواجه شود دست به کار شده و با kill کردن یک پروسه فضای لازم را برای کار مابقی پروسهها فراهم میکند.
در ویدئو در مورد پروسههای بیشتری صحبت شده است که میتوانید با مشاهدهی آن از این پروسهها اطلاع پیدا کنید.
لینک ویدئو در یوتیوب:
https://youtu.be/PsZ5GZhzvqE
لینک ویدئو در آپارات:
https://aparat.com/v/obt29c7
پ.ن ۱: برای اطلاع از جزئیات پروسههای ابتدایی لینوکس پست زیر را مشاهده کنید:
https://t.me/OxAA55/133
پ.ن ۲: برای اطلاع از جزئیات پروسه و نخ در لینوکس پست زیر را مشاهده کنید:
https://t.me/OxAA55/124
#ShortLinuxInternals #linux #internals #programming #kernel #memory #threads #processes #kernel_threads
در لینوکس برخی از پروسهها بخش user space نداشته و کامل در دل کرنل اجرا میشوند. این پروسهها در اجرای کارهای مختلف به سیستمعامل کمک کرده و به صورت background کارهایی که نیاز است انجام شوند که لینوکس بتواند سرویسدهی موارد مختلف را انجام دهد مدیریت میکنند. در این پست و ویدئو برخی از این پروسهها معرفی شده و کاربردهای مختلف آنها شرح داده میشود.
اولین پروسه (نخ) کرنلی لینوکس kthreadd است که وظیفهی ایجاد یک interface برای ایجاد و مدیریت پروسههای کرنلی در لینوکس را داشته و همیشه با PID برابر ۲ اجرا میشود. در کد این نخ یک حلقهی بینهایت وجود دارد که از لیستی به اسم kthread_create_list اطلاعات پروسهی کرنلی که قرار است ایجاد شود را برداشته و آنرا ایجاد میکند. تمامی پروسههای کرنلی لینوکس از اینجا به بعد فرزندان kthreadd خواهند بود.
پروسهی بعدی که معرفی میکنیم migration است. از پروسهی کرنلی migration به تعداد coreهای cpu خواهیم داشت و وظیفهی آن مدیریت پروسههایی است که بر روی یک core اجرا میشوند و در صورت زیاد بودن بار بر روی یک core یک پروسه را از روی run_queue یک core بر داشته و بر روی run_queue یک core دیگر قرار میدهد.
پروسهی دیگری که در ویدئو در مورد آن صحبت شده است kcompactd است که وظیفهی آن جلوگیری از ایجاد fragmentation در حافظه و کمک به کنارهم قرار گرفتن pageهای مرتبط در حافظه است.
یک پروسهی جالب دیگر oom_reaper است که در صورتیکه سیستمعامل با کمبود حافظه مواجه شود دست به کار شده و با kill کردن یک پروسه فضای لازم را برای کار مابقی پروسهها فراهم میکند.
در ویدئو در مورد پروسههای بیشتری صحبت شده است که میتوانید با مشاهدهی آن از این پروسهها اطلاع پیدا کنید.
لینک ویدئو در یوتیوب:
https://youtu.be/PsZ5GZhzvqE
لینک ویدئو در آپارات:
https://aparat.com/v/obt29c7
پ.ن ۱: برای اطلاع از جزئیات پروسههای ابتدایی لینوکس پست زیر را مشاهده کنید:
https://t.me/OxAA55/133
پ.ن ۲: برای اطلاع از جزئیات پروسه و نخ در لینوکس پست زیر را مشاهده کنید:
https://t.me/OxAA55/124
#ShortLinuxInternals #linux #internals #programming #kernel #memory #threads #processes #kernel_threads
آپارات - سرویس اشتراک ویدیو
Going over Linux Kernel Threads
در لینوکس برخی از پروسهها بخش user space نداشته و کامل در دل کرنل اجرا میشوند. این پروسهها در اجرای کارهای مختلف به سیستمعامل کمک کرده و به صورت background کارهایی که نیاز است انجام شوند که لینوکس بتواند سرویسدهی موارد مختلف را انجام دهد مدیریت میکنند.…
🔥16❤2