Autor Thema: Softwaretasking <> TSS  (Gelesen 9605 mal)

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« am: 06. March 2005, 13:10 »
hallo,

ich wollte wissen, ob Softwaretasking komplett ohne TSS auskommt, oder nicht. ich hab gehört, man bräuchte trotzdem noch ein TSS für den kernel bei systemcalls... was is daran, stimmt das, was muss ich sonst noch so beachten, und hat hier jemand (außer Roshl) das implementiert und kann noch genaueres sagen?

danke,

J!N
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #1 am: 06. March 2005, 20:20 »
Also wenn ich mich recht erinnere, dann brauchst du ein TSS, weil dort der ESP der Stacks für den switch in den Ring 0 gespeichert ist, denn der Task benötigt wenn er Kernel-Ints aufruft.
----------------------
Redakteur bei LowLevel

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #2 am: 06. March 2005, 20:36 »
schlecht... aber wird da nicht auch das andere überschrieben? und warum brauch ich den esp, ich kann ihn doch einfach laden, wenn ich in der API bin...
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #3 am: 06. March 2005, 22:20 »
Ne ne.
Sobald du einen Int aufrufst der in den Ring 0 springt, benutzt der Prozessor automatisch das TSS um daraus ESP für Ring 0 zu laden.
----------------------
Redakteur bei LowLevel

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #4 am: 07. March 2005, 13:42 »
ah, aber die anderen register ändert er nicht? also muss ich nur ein TSS-Segment einrichten, in dem die werte auf 0 stehen und dann bei den ints den selektor dazu als segment angeben? ach je... und wie is das dann bei einem sprung von ring 0 zu ring 3? brauch ich das da dann auch? und vorallem wie soll ich die werte sichern, die dem alten ding gehören?
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

 

Einloggen