Autor Thema: dynamisch allokierbarer Speicher  (Gelesen 16364 mal)

kleiner

  • Beiträge: 131
    • Profil anzeigen
Gespeichert
« 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?

neq

  • Beiträge: 44
    • Profil anzeigen
Gespeichert
« Antwort #1 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.

neq

  • Beiträge: 44
    • Profil anzeigen
Gespeichert
« Antwort #2 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

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #3 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.
----------------------
Redakteur bei LowLevel

kleiner

  • Beiträge: 131
    • Profil anzeigen
Gespeichert
« Antwort #4 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.

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #5 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.
----------------------
Redakteur bei LowLevel

 

Einloggen