Ich sah einige SO Fragen kommen mit einer Schlussfolgerung: Jeder Prozess hat seinen eigenen Kernel-Stack. Aber wie wäre es mit diesem Code?Jeder Prozess hat seinen eigenen Kernel-Stack, oder?
main()
{
while(1)
;
}
Oder wie wäre es mit diesem?
main()
{
}
Ob dieses Programm auch einen entsprechenden Kernel-Stack hat?
Mehr: Für den ersten Code oben habe ich es wie folgt getestet. Drücken Sie Strg + C, um es zu stoppen, und sehen Sie, dass die Systemzeit weniger als 1ms beträgt (siehe unten).
Ich denke, was ich wissen möchte, ist, ob ein Ausführungsprogramm des Benutzer-Space-Programms Kernel-Space durchlaufen muss? Für meinen Beispielcode denke ich, dass der Prozess selbst beim Ausführen nicht den Kernel-Space durchläuft, ist das richtig?
$ time ./a.out
^C
real 0m24.953s
user 0m24.942s
sys 0m0.000s
Kernel erstellt Prozessobjekt, das ** Ausführungsumgebung ** für Benutzerbereich bereitstellt. – Tsyvarev
Ich kann dich nicht gut verstehen. Sie sagen: "Die Ausführung erfordert, dass das Prozessobjekt vollständig aufgebaut ist", also ist dies der Kernel? Selbst wenn dies bedeutet, dass ein entsprechender Kernel-Stack zugeordnet ist? –
Wirklich danke! Gute Antwort. –