Wir verwenden die Kernel-Version 2.4-20 und wir müssen die Anzahl der aktiven Benutzer im Kernel-Modus zählen. Ziel ist es, den Scheduler zu ändern, also befinden wir uns in sched.c und modifizieren die schedule () -Funktion.
Wir zählen die Benutzer in list_for_each-Makros.
%Vor%Das fügt im Prinzip eindeutige Benutzer zu einer Liste hinzu. Wir erhalten jedoch zufällige Ergebnisse. Gibt es einen konkreten Weg, um dieses Problem zu lösen?
Danke.
Sie können versuchen, die Benutzer im for_each_task-Makro zu zählen. Dies führt dazu, dass die Benutzer gezählt werden, die eine Aufgabe haben, die aufgrund von E / A oder aus einem anderen Grund blockiert ist. Dies sollte bessere Ergebnisse liefern, da Sie nicht garantieren können, dass Sie die Benutzer zählen können, die interaktive Prozesse ausführen, wenn Sie die Ausführungswarteschlange verwenden.