Sie haben Recht, die Aussage, dass Unix für Echtzeitanwendungen ungeeignet ist, da ein Prozess, der im Kernel-Modus ausführt . Lassen Sie uns zusammenbrechen, warum:
das Problem verstehen
* Echtzeitanwendungen: Echtzeitsysteme erfordern strenge Timing-Garantien. Eine Aufgabe muss innerhalb einer bestimmten Frist abgeschlossen werden, unabhängig von anderen auf dem System ausgeführten Prozessen.
* Kernel -Modus: Wenn ein Prozess im Kernel -Modus ausgeführt wird, hat er direkten Zugriff auf die Hardware und Ressourcen des Systems. Dies ist für Aufgaben wie Umgang mit Interrupts oder Verwaltung von E/A -Geräten erforderlich.
* Vorstellung: Die Präsentation ist die Fähigkeit des Betriebssystems, einen Laufprozess zu unterbrechen und zu einem anderen zu wechseln. In einem Echtzeit-System ist die Präsentation von entscheidender Bedeutung, um sicherzustellen, dass Aufgaben mit hoher Priorität nicht durch Aufgaben mit niedrigerer Priorität verzögert werden.
Warum die Aussage teilweise wahr ist
Die Erklärung konzentriert sich auf ein kritisches Problem in herkömmlichen Unix-ähnlichen Systemen. Der Kernel ist zwar für die Planung verantwortlich, ist aber selbst nicht immer eine Prävention. Das bedeutet, dass:
1. Kernelcode Verzögerungen: Wenn eine Kernelfunktion, selbst eine niedrige Priorität, zu lange dauert, kann sie andere Aufgaben blockieren, einschließlich Echtzeitaufgaben mit hoher Priorität.
2. Fristen verpasst: Wenn eine Echtzeitaufgabe ausgeführt werden muss, aber eine Kernelfunktion sie blockiert, könnte die Frist für diese Aufgabe übersehen werden.
Warum es zu vereinfacht ist
* Nicht alle Unix -Systeme sind gleich: Es gibt Variationen darin, wie unterschiedliche Unix-ähnliche Systeme mit der Kernel-Präsentation umgehen. Einige neuere Kerne wie Linux haben Techniken eingeführt, um die Präparate zu verbessern, wodurch sie für Echtzeit-Szenarien besser geeignet sind.
* Echtzeitverlängerungen: Viele Unix-ähnliche Systeme haben Echtzeitverlängerungen (wie POSIX-Echtzeit), die sich mit dieser Einschränkung befassen. Diese Erweiterungen liefern:
* Prioritätsbasierte Zeitplanung: Echtzeitaufgaben können höhere Prioritäten als normale Prozesse zugewiesen werden.
* Timer und Fristen: Echtzeitaufgaben können mit Fristen und Timern in Verbindung gebracht werden, sodass das System Zeitbeschränkungen durchsetzen kann.
* präventive Kerne: Einige Echtzeit-Erweiterungen umfassen präventive Kernel, um sicherzustellen, dass Aufgaben mit hoher Priorität nicht verzögert werden.
Schlussfolgerung
Es ist zwar wahr, dass der Mangel an präventivem Kernelcode in einigen traditionellen UNIX-Implementierungen ein bedeutendes Hindernis für Echtzeitanwendungen war, aber es handelt sich nicht um eine vollständige Aussage der Situation. Moderne Unix-ähnliche Systeme, insbesondere bei Echtzeitverlängerungen, haben sich bei der Behandlung dieses Problems erheblich verbessert. Für Anwendungen mit strengen Echtzeitanforderungen ist die Auswahl eines Systems mit einem präventiven Kernel und Echtzeitverlängerungen jedoch von entscheidender Bedeutung.