Lowlevel

Lowlevel => OS-Design => Thema gestartet von: kleiner am 06. March 2004, 11:08

Titel: dynamisch allokierbarer Speicher
Beitrag von: kleiner am 06. March 2004, 11:08
Wie sieht das eigentlich aus?
Wenn ich ein Single-Tasking System hab. Dann gibt es zwei Sachen die Speicher beanspruchen: Der Kernel und das Programm.
Wieviel Speicher geb ich denen jeweils und lohnt sich dann eigentlich dynamisch allokierbarer Speicher noch, weil der ja auch irgendwie nen Overhead hat?
Titel: dynamisch allokierbarer Speicher
Beitrag von: neq am 06. March 2004, 13:37
Also wie viel Speicher du denen gibst, hängt ja wohl davon ab wie viel sie brauchen...

dynamisch alokierbar is doch, das der speicher irgentwo im speicher sehen kann ne ?

also wenn dass das is, dann würde ich das für sinnlos halten, weil man das nur bei systemen mit multitasking benutzen sollte (meiner meinung nach). Kommt aber auch auf das Programm an:Wenn das die ganze zeit irgentwelche bilder oder so in den Speicher lädt und wieder weg lädt dann wäre die dynamische methode natürlich sehr wichtig.
Titel: dynamisch allokierbarer Speicher
Beitrag von: neq am 06. March 2004, 13:38
Wie dumm!! wieso kann ich nich meine alte post editieren ? Kann man das vielleicht ändern ?

hab mich verschrieben .. nicht sehen sondern stehen
Titel: dynamisch allokierbarer Speicher
Beitrag von: TeeJay am 06. March 2004, 13:44
Beim Singletask hast du es recht reinfach. Du hast ja eine bestimmte Menge an Speicher.
Und diesen musst du erstmal als Frei markieren. Mal abgesehen von dem Speicher den dein Kernelcode benötigt.
Und wenn du nun speicher anforderst, dann muss dir eine Methode raussuchen wo im Ram noch freier speicher ist und diesen dann als belegt markieren.

Auch bei einem SingelTask OS machst es Sinn, weil dann das ganze Speicherzeugs überschaubarer wird.
Titel: dynamisch allokierbarer Speicher
Beitrag von: kleiner am 07. March 2004, 13:10
Ja, aber wie wird festgelegt, wieviel Speicher ich dem Programm von Anfang an gebe? Ist das nur der Speicher, den die im COde stehenden Variablen brauchen oder wie sieht das aus?
Ohne dynamisches Allokieren wären ja auch keine Listen und Bäume möglich.
Titel: dynamisch allokierbarer Speicher
Beitrag von: TeeJay am 07. March 2004, 14:31
Wenn du kein Paging benutzt dann ist das alles sehr kompliziert. Das bedeutet nämlich, das du deinen Speicher aufteilen musst. In Kernelspeicher und in Anwendungsspeicher. Und für beide Speicher brauchst du dann eine extra Liste die dir die freien und genutzten Speicherblöcke verwaltet.

Ich zu meinem Teil hab mein kleines OS noch so gehalten das es darin nur eine Task gibt die im Kernelmodus läuft.
Das sollte auch erstmal reichen, da ich das eh nur dazu benutze um neuen Code für die Tutorials zu testen.