2013-07-17 21 views
6

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?

+0

To nie jest praca domowa, prawda? –

+0

@MarcusJohansson Brak pracy domowej pytanie – user567879

+0

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. –

Odpowiedz

9

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).

+0

'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

+2

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. –

+0

@ user567879 Czy odpowiedziałem na twoje pytanie? –

Powiązane problemy