Beiträge anzeigen

Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.


Themen - DDR-RAM

Seiten: [1]
1
Offtopic / bitte löschen
« am: 08. January 2006, 02:53 »
sry, für den Thread,
bitte löschen
2
tyndur / Microkernel oder Monolithischer Kernel
« am: 26. September 2005, 18:23 »
Hi,

ich wollte eigentlich ein Konzept für LOST schreiben, allerdings müsste ich dazu wissen, welcher der beiden Kerneltypen bevorzugt wird.
Also ich hab mir bis jetzt ziehmlich viele Gedanken zu einem modularisierten monolithischen Kernel gemacht und wäre deshalb dafür.

Wenn ich ne umfrage machen könnte, würde ich eine machen.
Wie steht ihr dazu oder ist es euch eigentlich egal und ich soll mal machen?

MfG
DDR-RAM


[/html]
3
OS-Design / Prozessverwaltung
« am: 19. September 2005, 16:22 »
Hi,

ich hab ja schon vor ca. 3 Monaten an der Prozessverwaltung für LOST gearbeitet gehabt und plante ein Verwaltung auf Basis von sich dynamisch verändernden Prioritäten.
Das daraus nichts geworden ist, ist ne andere Sache, ich hab mir jetzt nochmal Gedanken gemacht und habe einige Fragen.

Ich umreiße ersteinmal, was ich mir im Konkreten gedacht habe:

Es gibt Prozesse und Threads.
Jeder Prozess besitzt mindestens einen Thread.
Der Prozess ist die Umgebung, also der virtuelle Adressraum, bei einem Prozesswechsel muss also das Register CR3 verändert werden.
Jeder Prozess "hat" ein Objekt, das diesen repräsentiert. Mit diesem Objekt wird ein Prozess verwaltet, es beinhaltet Angabe über die Prozess ID, die Basispriorität des Prozesses, sowie die zum Prozess gehörigen Threads.
Ein Thread ist ein Faden im Prozess, der zu dessen Ausführung beiträgt.
Jeder Thread benötigt seinen eigenen Stack und seinen eigenen CPU-Status.
Auch jeder Thread "hat" ein Objekt, das diesen repräsentiert und durch den er verwaltet wird.
Dieses beinhaltet Angaben, über die Thread ID, den CPU-Status, den Zustand des Threads (aktiv/blockiert/wartend/etc.), seine Normalpriorität und seine aktuelle Priorität.
Was hat es nun mit den Prioritäten auf sich und wie wird was verwaltet?

Also, durch Normalpriorität und Basispriorität wird durch Addition dem Thread eine Maximalpriorität zugeordnet.
Bei der Verwaltung geht es um die Zuteilung der CPU-Zeit (Systeme mit mehrern Prozessoren, werden fürs erste außen vor gelassen). Die Verwaltung der CPU-Zeit erfolgt auf Thread-Basis, da sie es sind, die CPU-Zeit beanspruchen.
Alle aktiven Threads werden in einer Priority Queue (priorisierte Warteschlange) verwaltet.
Die Priorität, nach der das entschieden wird, ist die aktuelle Priorität, die sich im Laufe verändert und bei Erzeugung des Threads auf die Maximalpriorität gesetzt wird.
Die CPU-Zeit erhält immer der Thread, der in der Warteschlange ganz vorne steht.
Dieser wird der Warteschlange entnommen (und irgendwo zwischengespeichert).
Die CPU-Zeit wird zerteilt, das heißt z.b. jede 1/512 Sekunde kommt der Scheduler zum Einsatz.
Hierbei, wird die aktuelle Priorität des laufenden Threads dekrementiert (um 1 erniedrigt).
Desweiteren wird überprüft, ob nun ein anderer Thread vorne steht oder der aktuelle Thread blockiert ist.
Der Thread wird in die Liste eingefügt (oder nicht, falls blockiert).
Der neue Thread wird aus der Warteschlange genommen und falls nötig ein CR3-switch durchgeführt und der neue CPU-Status geladen.
Wenn ein Thread Priorität von 0 erreicht, wird zu den aktuellen Prioritäten der aktiven Threads die Maximalpriorität addiert, dies hat Leider einen Zeitaufwand von n * log n, da die Queue neu geformt werden muss, gibt es verbesserungsvorschläge?


So, mal bitte Verbesserungsvorschläge:
1.) Also ich würde es noch so machen, das bei aktivierung eines THread, die Quadratwurzel seiner Maximalpriorität zu seiner aktuellen priorität addiert wird.
2.) Das Zurücksetzen der Prioritäten ist sehr unschön, gibs da was besseres?

Eigentlich ist das ganze eher ne Gedankenspiel, funktioniert glaube ich irgendwie nicht ganz, entspricht auch nicht so ganz dem Sinn.

Also wenn ich dynamische Prioritäten habe, dann sollten für mich folgende Bedingungen erfüllt sein.

1) Wenn ich zwei arbeitende Threads mit der gleichen priorität habe, sollten sich diese beide ständig (das heißt immer wenn der Scheduler aktiv wird) abwechseln.
2) Wenn ich zwei arbeitende Thread habe, sollten die Zuteilungen proportional zur Priorität sein.
3) Es soll so oft wie möglich gewechselt werden (Spezialfall davon ist 1)
4) Es sollen Threads des Prozesses des aktiven Threads bevorzugt werden.

Also wenn jemand was hat, was für mich interessant sein könnte, immer her damit.

MfG
DDR-RAM

edit:
ich hab da noch ne Gute Idee gerade unter der Dusche empfangen, ich werde sie morgen posten ;-)
4
Offtopic / einige Fragen (linux)
« am: 24. August 2005, 21:53 »
hi,
eigentlich nicht mein Stil, aber ich habe noch kein Linux und soll für den
 Informatikunterricht (12.Klasse^^) ein paar sachen herausfinden.

1. Was macht der Befehl?
grep -c /bin/bash /etc/passwd
2. Macht grep eine Volltextsuche?
3. Gibt -c die Anzahl der Funde aus?
4. Was hat es mit den Beiden Verzeichnissen aufsich
5. passwd = passwortdatei mit Zusatzinfos?
6. Was macht der Befehl?
grep -l 'DEFINITION MODULE' /programme/*
7. Was macht der schalter -l (könnte auch nen I sein, bin mir nicht ganz sicher, glaube aber -l)
8. Löscht der nachfolgende Befehl ein Verzeichnis ohne Rückfragen?
rm -Rf <Verzeichnisname>

Habe versucht, möglichst ja/nein Fragen zu formulieren, bzw. zu zeigen das ich schon ein bisschen Ahnung habe.
Über genaue Antworten, wie auch nur Bestätigungen würde ich mich natürlich sehr freuen.
Hier sind ja eigentlich doch ein paar Linuxer und ich werde auch bald einer sein (jedenfalls mindestens nen halber ;) )
Wenn ich Zeit hätte, würde ich _schnell_ Linux installieren, aber brauch ich bis Freitag (vormittag ^^)

Also, danke im Vorraus!

MfG
DDR-RAM
5
Offtopic / 2. OS-Coder treffen
« am: 03. June 2005, 19:40 »
nachdem das 1. OS-Coder treffen gescheitert ist, schlage ich ein zweites vor
 :lol:  :lol:  :lol:

 (ok ich wollte auch mal witzig sein ;-) )
6
Offtopic / Vergleich von OpenGL und DirectX
« am: 31. May 2005, 17:59 »
Gibs irgendwo ne Seite, wo die beiden verglichen werden?
Also Vor-/Nachteile, technische Details usw, möglichst umfangreich (weil im groben, weiß ich es selber ;-) )

MfG
DDR-RAM
7
tyndur / [KERNEL] Aufgaben/Verteilung
« am: 17. May 2005, 22:28 »
Hallo,

ich liste mal die zu verteilenden Aufgaben auf und was dazu gehört und wer sich wofür angemeldet hat:
  • Verwaltung von IDT, aufsetzen einer IDT, Interrupts und IRQ andordern/freigeben - hannibal
  • Verwaltung von GDT, aufsetzen einer GDT, Deskriptoren anfordern/freigeben - urx_
  • Die physische Speicherverwaltung, Anforderung und Freigabe von physischen Speicherseiten - n3Ro
  • Die virtuelle Speicherverwaltung, spielt in die Prozessverwaltung mit rein, reservierung und Freigabe von Speicherbereichen im virtuellen Adressraum eines Prozesses, ändern von Flags
  • Der Heap, brauch ich nit erklären da bereits erledigt - DDR-RAM
  • Pager, einklinken in Interrupt 14, bereitstellen von zuvor reserviertem Speicher, Access Violation/Segmention Fault auslösen
  • Die Prozessverwaltung, Prozesse, Threads, Scheduling, einklinken in IRQ 0, Dispatching - DDR-RAM
  • Überprüfen der CPU-Features, Verfügbarkeit von PSE,RDTSC etc. - Roshl
    [/list:u]Zusatz:
    T0ast3r arbeitet nen Vorschlag für die Api aus.

    Diese Liste basiert auf dem Dokument "Kerneldesign Milestone 1" und dem SDK von mastermesh.
    So, wer Intresse daran hat an irgenwelchen Bereichen mitzuwirken, der sollte sich in diesem Thread dafür melden.
    Auch Implementationsvorschläge können in diesem Thread diskutiert werden.

    MfG
    DDR-RAM
8
Offtopic / Sinnlos
« am: 17. May 2005, 01:44 »
Hi

Roshl hat zwar den Thread mit den kleinen Programmierspäßen zugemacht, aber ich bin noch auf folgenden Spaß gestoßen :)


void main() {
UINT* pData = new UINT[384 * 1024 * 1024];
for (;;)
for (int i = 0; i < 384 * 1024 * 1024; i += 1024)
pData[i] = 0;
}


Was habt ihr für ne CPU-Auslastung durch das prog?
Bei mir macht des so 0 bis 1%. ;)

MfG
DDR-RAM
9
tyndur / C vs. C++ bzw. wo ist was sinnvoll?
« am: 08. May 2005, 13:09 »
Hi,

damit ihr gleich meine Meinung kennt, ich wäre dafür alles in C++ zu machen. Es gibt nur sehr wenige Funktionen, die C kann, aber C++ nicht.
C++ verfügt aber über Sprachmittel, die C nicht kennt, wichtigste ist wohl Klassen und das diese Funktionen usw. haben, na ihr kannt das ja ;)

MfG
DDR-RAM
10
Lowlevel-Coding / Nach dem Seitenfehler
« am: 18. April 2005, 18:53 »
Hallo,

Wie kriege ich die Adresse heraus, die den Seitenfehler ausgelöst hat?
Also nicht der Befehl, der ihn ausgelöst hat, sondern die Adresse in diesem Befehl, z.B. [eax], fs:[0], [edi+ecx*4+8], gibt ja sehr viele verschiedene Möglichkeiten. Legt die CPU diese logische Adresse irgendwo ab? (also Fehlercode isses nicht)
Oder muss ich den Befehl disassembeln und dann ne komplizierte Auswertung vornehmen?

MfG
DDR-RAM
Seiten: [1]

Einloggen