In einem Betriebssystem werden Threads in der Regel im Benutzermodus oder im Kernelmodus behandelt. Was sind die Vor- und Nachteile von jedem?Was sind die Vor- und Nachteile von Benutzermodus und Kernelmodus?
Antwort
Benutzermodus-Threads werden im Benutzermodus von etwas im Prozess geplant, und der Prozess selbst ist die einzige Sache, die vom Kernel-Scheduler gehandhabt wird.
Das bedeutet, dass Ihr Prozess eine bestimmte Menge an Grunzen von der CPU bekommt und Sie diese unter all Ihren Benutzermodus-Threads teilen müssen.
Einfacher Fall, Sie haben zwei Prozesse, einen mit einem einzelnen Thread und einen mit hundert Threads.
Mit einer vereinfachten Kernel-Scheduling-Richtlinie erhält der Thread im Single-Thread-Prozess 50% der CPU und jeder Thread im Hundert-Thread-Prozess jeweils 0,5%.
Mit Kernelmodus-Threads verwaltet der Kernel selbst Ihre Threads und plant sie unabhängig voneinander. Mit dem gleichen vereinfachten Scheduler würde jeder Thread nur eine Berührung unter 1% des CPU-Grunts bekommen (101 Threads, um die 100% der CPU zu teilen).
Ein Problem mit Thread auf Benutzerebene ist: wenn ein Thread blockiert, blockiert der gesamte Prozess. Auch wenn die anderen Threads laufen könnten und nicht verwandt sind mit dem blockierten. Für das Betriebssystem ist das Threading nicht bekannt, sodass der gesamte Prozess blockiert wird.
- 1. Was sind die Vor- und Nachteile von Bunyan und Winston?
- 2. Was sind die Vor- und Nachteile von asset_packager und Jammit?
- 3. Rückruffunktion im Benutzermodus und im Kernelmodus
- 4. Was sind die Vor-/Nachteile von py2exe
- 5. Was sind die Vor- und Nachteile der Verwendung von Global.asax?
- 6. Was sind die Vor- und Nachteile der Verwendung von SQLDataReader?
- 7. Was sind die Vor- und Nachteile der Verwendung von OpenID?
- 8. Was sind die Vor- und Nachteile der Verwendung von Parameter
- 9. Was sind die Vor- und Nachteile von Sass-Lint
- 10. Was sind die Vor- und Nachteile von Perl für OOP?
- 11. Was sind die Vor- und Nachteile von Seam over Spring?
- 12. Was sind die Vor- und Nachteile von Design/Code-Reviews?
- 13. Was sind die Vor- und Nachteile dieser Ansätze?
- 14. Was sind die Vor- und Nachteile des Eigenschaftsmusters?
- 15. Wechsel vom Benutzermodus zum Kernelmodus
- 16. Zweifache Interaktion zwischen der Benutzermodus-App und dem Kernelmodus-Treiber?
- 17. Was sind die Vor- und Nachteile einer 100% HTTPS-Site?
- 18. newid() vs newsequentialid() Was sind die Unterschiede/Vor- und Nachteile?
- 19. Was sind die Vor- und Nachteile der Intensivstation?
- 20. Was sind die Vor- und Nachteile dieser verschiedenen Funktionsdefinitionen?
- 21. Was sind die Vor- und Nachteile der Mehrfachvererbung?
- 22. Was sind Vor- und Nachteile der Verwendung von Proxy-Server?
- 23. Was sind Vor- und Nachteile der Verwendung von Git-Svn?
- 24. Wie wechselt der Linux-Kernel zwischen Benutzermodus und Kernelmodus-Stack?
- 25. Was ist WCF (und Vor- und Nachteile)?
- 26. OcMock vs OcMockito - Was sind Vor- und Nachteile
- 27. Was sind die Vor-/Nachteile von 64-Bit-.NET?
- 28. Was sind die Vor- und Nachteile der JavaScript-Bibliotheken von JQuery und Glow?
- 29. Was sind die Vor- und Nachteile von Web Services und RMI in einer reinen Java-Umgebung?
- 30. Was sind die Vor- und Nachteile von Cocoa-Frameworks, Bibliotheken und Bundles?
Können Sie mir einige Beispiele geben, wenn ein Thread blockiert? –
@ You'reawesome, Thread Warten auf I/O ist ein Beispiel. Thread, der auf die Freigabe eines Semaphors wartet, ist ein anderer. –