-
Ist das nicht Aufgabe des Betriebssystems?
Autor: NMN 27.05.21 - 18:03
Wenn das Register im Usermode (oder wie auch immer das bei ARM heißt) nutzbar ist, hat doch das OS beim context switch die Daten des Registers, auch wenn es "unbekannt" ist, zu speichern und zurück zu setzen.
Für was genau braucht es da ein Redesign der Hardware? -
Re: Ist das nicht Aufgabe des Betriebssystems?
Autor: /mecki78 27.05.21 - 18:40
NMN schrieb:
--------------------------------------------------------------------------------
> Wenn das Register im Usermode (oder wie auch immer das bei ARM heißt)
> nutzbar ist, hat doch das OS beim context switch die Daten des Registers,
> auch wenn es "unbekannt" ist, zu speichern und zurück zu setzen.
Nicht zwangsweise. Seit dem 386er können x86 CPUs das auch in Hardware. Wird aber bei x86 nicht genutzt, weil zum einen werden nicht alle Register in Hardware gesichert (nur die general purpose register (GPR) der CPU, aber z.B. nicht die FPU Register) und zum anderen werden immer alle GPRs gesichert, was aber in manchen Situationen aber gar nicht nötig ist, wo man nur bestimmte Register sicheren muss. Es werden also manchmal auf der eine Seit zu viel und zeitgleich auf der anderen zu wenige gesichert und wenn man hier per Software nachregulieren muss, dann ist es schneller das gleich ganz in Software zu machen.
Aber wenn ich das richtig verstanden habe, ist das ein Shared Register. D.h. hier sehen nicht unterschiedlich Prozesse unterschiedliche Inhalte, sondern wenn zwei Prozesse zeitgleich laufen und einer da was rein schreibt, dann sieht der andere sofort den neuen Inhalt. Ein Context Switch hat hier aber gar nicht stattgefunden, denn die beiden Prozesse laufen auf unterschiedlichen Kernen und somit wirklich parallel. Das Register beim Context Switch zu löschen würde also eine Kommunikation nicht verhindern, sondern nur immer mal wieder zeitweise unterbrechen.
/Mecki



