Jak Linux radzi sobie z wątkami i harmonogramem procesów

Próbuję zrozumieć, jak Linux radzi sobie z harmonogramowaniem procesów i harmonogramowaniem wątków. Czytałem, że Linux może planować zarówno procesy, jak i wątki.

Czy Linux ma scheduler wątków i Scheduler procesów? Jeśli tak, to w jaki sposób współpracują?

Author: codeforester, 2011-12-11

3 answers

Harmonogram jądra Linuksa jest w rzeczywistości zadaniem planowania, a są to albo wątki, albo (jednowątkowe) procesy.

Tak więc zadanie (A task_struct wewnątrz jądra), w kontekście schedulera, jest rzeczą zaplanowaną i może być jakimś wątkiem jądra Jak kworker lub kswapd, jakimś wątkiem użytkownika wielowątkowego procesu (jak firefox) lub pojedynczym wątkiem jednowątkowym procesem (Jak bash), utożsamiany z tym proces jednowątkowy.

A proces jest niepustym skończonym zbiorem (czasami singletonem) wątków dzielących tę samą wirtualną przestrzeń adresową (i inne rzeczy, takie jak deskryptory plików, working directory , etc itd...). Zobacz też (7), możliwości (7) itd....

Wątki w Linuksie to wątki jądra (w sensie zarządzania przez jądro, które również tworzy własne wątki), stworzony przez specyficzny dla Linuksa klon syscall (który może być również używany do tworzenia procesów w Linuksie). Funkcja pthread_create jest prawdopodobnie zbudowana (na Linuksie) powyżej clonewewnątrz Nptli Gnu Libc (który zintegrował Nptl na Linuksie) i musl-libc.

 34
Author: Basile Starynkevitch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-11 10:15:28

Wątki jądra pod Linuksem są implementowane jako procesy współdzielące zasoby. Scheduler nie rozróżnia wątku od procesu

Zobacz tutaj, aby uzyskać więcej informacji: http://www.linuxquestions.org/linux/articles/Technical/Linux_Kernel_Thread

 22
Author: nurio,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-11 12:05:02

Pod Linuksem nie ma pojęcia o wątkach,aby linuksowy wątek reklamacyjny POSIX był niczym innym jak innym procesem.gdy próbujesz uzyskać identyfikator procesu, wyświetla on identyfikator procesu lidera pod dowolnym wątkiem. Po więcej szczegółów spróbuj odnieść się do tej książki "Understanding LINUX kernel".Nadzieja

 -3
Author: kiran,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-04 14:00:43