Hallo,
mal wieder das übliche thema, aber ganz klar is mir das ganze aus den anderen threads nicht geworden...
ich habe paging implementiert. nun soll jeder task sein eigenes PD bekommen. soweit ist mir noch alles klar nur sehe ich ein problem bei der dynamischen speicherverwaltung:
ich möchte, dass ein task (ring3) malloc() aufrufen kann, um speicher bereit gestellt zu bekommen. angenommen im PD des tasks ist im mom nur eine einzige page present (für den code), dann muss ja malloc() feststellen, dass es keinen heap hat und muss vom betriebssystem eine page anfordern... da liegt das problem. wie funktioniert das?
welchen teil des kernels ruft malloc() auf? und was macht der kernel dann genau? er muss ja irgendwo festlegen, dass eine bestimmte page von einem task genutzt wird. außerdem muss er im PD des tasks die page present setzen und dann noch die pageframeaddress anpassen... nach welchen kriterien wird geschieht das?
habe ich das klar genug formuliert? *verwirrt_bin*
Cheebi
mal wieder das übliche thema, aber ganz klar is mir das ganze aus den anderen threads nicht geworden...
ich habe paging implementiert. nun soll jeder task sein eigenes PD bekommen. soweit ist mir noch alles klar nur sehe ich ein problem bei der dynamischen speicherverwaltung:
ich möchte, dass ein task (ring3) malloc() aufrufen kann, um speicher bereit gestellt zu bekommen. angenommen im PD des tasks ist im mom nur eine einzige page present (für den code), dann muss ja malloc() feststellen, dass es keinen heap hat und muss vom betriebssystem eine page anfordern... da liegt das problem. wie funktioniert das?
welchen teil des kernels ruft malloc() auf? und was macht der kernel dann genau? er muss ja irgendwo festlegen, dass eine bestimmte page von einem task genutzt wird. außerdem muss er im PD des tasks die page present setzen und dann noch die pageframeaddress anpassen... nach welchen kriterien wird geschieht das?
habe ich das klar genug formuliert? *verwirrt_bin*
Cheebi

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken


Gespeichert
