Czy jądro Linuxa może być traktowane jako pojedynczy proces z wieloma wątkami? Również to, co definiuje przełączanie między modułami zarządzania pamięcią, programem planującym, systemem plików itp. W jądrze.Czy jądro Linuksa może być traktowane jako pojedynczy proces?
Odpowiedz
Jądro Linuxa nie może być traktowane jako proces, ponieważ jest to jedna z jego obowiązków związanych z zarządzaniem procesami.
Możesz uznać jądro za duży przerywacz. Po tym, jak jądro przyzna procesorowi wątek, jedynym sposobem na odzyskanie kontroli są przerwania (lub wywołania systemowe, które również są przerwaniami). Gdy wystąpi przerwanie, jądro natychmiast przejmuje kontrolę i odpowiednio obsługuje przerwanie. W tym momencie można było wywołać różne części jądra.
Kernel jest wielowątkowy, ponieważ może obsługiwać różne przerwań na różnych procesorach jednocześnie. Z drugiej strony istnieją wątki jądra, które są zarządzane w taki sam sposób, jak wątki użytkownika (nie ma różnicy pomiędzy wątkami jądra i użytkownika dla programu planującego).
'Nie ma różnicy między wątkami jądra i użytkownika dla harmonogramu". W jaki sposób zaplanowane są te wątki jądra? – user567879
Te wątki jądra zaplanowane w taki sam sposób, jak wątki użytkownika, w tej samej kolejce, zgodnie z tymi samymi regułami. Scheduler nawet nie wie, czy wątek jest wątkiem użytkownika, czy jądrem. –
@ user567879 Czy odpowiedziałem na twoje pytanie? –
- 1. Dlaczego jądro Linuksa # definiuje symbol jako taki?
- 2. Czy jądro/sched.c/context_switch() może być wywoływane za każdym razem, gdy proces jest włączony?
- 3. Jądro Linuksa Czas odbioru UDP
- 4. Czy tablice powinny być traktowane jako struktury poziome lub pionowe?
- 5. Czy jEdit może być używany jako IDE?
- 6. Czy wydajność syslog może być poprawiona?
- 7. PostgreSQL JDBC Null String traktowane jako bytea
- 8. PAE w procesorach x86-64 bit - jądro Linuksa
- 9. Jak wyczyścić pamięci podręczne używane przez jądro Linuksa
- 10. Czy i +++ j jest zawsze traktowane jako i ++ + j?
- 11. Czy klasa abstrakcyjna może być używana jako typ odniesienia?
- 12. Czy CRC32 może być używany jako funkcja skrótu?
- 13. Czy BigQuery może być używany jako podstawowy silnik zapytań?
- 14. Czy XMPP może być używany jako długie oczekiwanie Cometa?
- 15. Czy niestandardowy widok może być używany jako element TabItem?
- 16. Czy Dart może być używany jako język ogólnego przeznaczenia?
- 17. typu nie może być stosowany jako indeksu
- 18. Czy JavaScript może być bootowany?
- 19. Czy ktoś może krótko wyjaśnić Pojedynczy znak? Chcę używać openid jako SSO
- 20. Czy $ _SERVER ['SERVER_NAME'] może być podrobiony/sfałszowany?
- 21. Czy metoda w klasie może być generatorem?
- 22. Czy sqlite może być również bazą danych?
- 23. Czy tablica może być za duża?
- 24. Czy wektor :: shrink_to_fit może być ponownie przydzielony?
- 25. Czy EntryElement może być wieloliniowy w MonoTouch.Dialog?
- 26. Czy to może być rekurencyjne w Prologu?
- 27. Czy ładowanie eksportowanych symboli może być opóźnione?
- 28. Jak sprawdzić, czy jądro jest poprawnym jądrem?
- 29. Czy elementy w JList mogą być sformatowane jako HTML
- 30. Czy ikona Google +1 może być dostosowywana?
To nie jest praca domowa, prawda? –
@MarcusJohansson Brak pracy domowej pytanie – user567879
Jądro z definicji nie jest procesem (ponieważ działa na gołym metalu). Procesy wymagają zarządzania jądrem! Goły sprzęt nie zna procesów. –