Ich suche nach einem Algorithmus, um das folgende Problem zu lösen, das ich (vorerst) den "Bad Apple" -Algorithmus nenne.
Das Problem
- Ich habe N Prozesse in M Sandboxen ausgeführt, wobei N >> M.
- Es ist unpraktisch, jedem Prozess einen eigenen Sandkasten zu geben.
- Mindestens einer dieser Prozesse verhält sich schlecht und bringt die gesamte Sandbox zum Erliegen, wodurch alle anderen Prozesse in derselben Sandbox beendet werden.
Wenn es sich um einen einzelnen Prozess mit schlechtem Verhalten handelte, konnte ich eine einfache Halbierung verwenden, um die Hälfte der Prozesse in einen Sandkasten und die Hälfte in einen anderen Sandkasten zu legen, bis ich den Schurken fand.
Die Frage
Wenn sich mehr als ein Prozess schlecht verhält - einschließlich der Möglichkeit, dass sie sich alle schlecht verhalten - "funktioniert" dieser naive Algorithmus? Funktioniert es garantiert innerhalb einiger vernünftiger Grenzen?
Vereinfachungen
Nehmen wir aus Gründen der Argumentation an, dass ein schlechter Prozess seine Sandbox sofort herunterfährt und ein guter Prozess niemals.