Frage zu Prozessen
-
Blue-Tiger schrieb:
I[...]Und ja, man koennte sagen dass die REgister Teil der ALU sind.[...]
Sagen kann man das schon, nur dann sagt man etwas, das i.d.R. falsch ist.
-
Wie entsteht ein Zombie Prozess.
Er ist noch in der Prozesstabelle obwohl er gar nicht mehr aktiv ist.
So lautet doch die Definition.
-
blurry333 schrieb:
Wie entsteht ein Zombie Prozess.
Er ist noch in der Prozesstabelle obwohl er gar nicht mehr aktiv ist.
So lautet doch die Definition.http://www.google.de/search?source=ig&hl=de&rlz=&=&q=zombie+process&aq=f&aqi=&aql=&oq=&gs_rfai=
Erster Treffer, die ersten beiden Sätze.
-
Hmmm.... der Geruch von Hausaufgaben liegt in der Luft....
-
blurry333: Nur aus Interesse: Was machst du im Moment, dass du so viele Fragen hast? Privates Interesse? Ausbildung?
-
Michael E. schrieb:
blurry333: Nur aus Interesse: Was machst du im Moment, dass du so viele Fragen hast? Privates Interesse? Ausbildung?
Ich bete dass es nur Trollerei ist...
-
Shade Of Mine schrieb:
Michael E. schrieb:
blurry333: Nur aus Interesse: Was machst du im Moment, dass du so viele Fragen hast? Privates Interesse? Ausbildung?
Ich bete dass es nur Trollerei ist...
Eher ein verzweifelter Student der Informatik.
-
Zeus schrieb:
Shade Of Mine schrieb:
Michael E. schrieb:
blurry333: Nur aus Interesse: Was machst du im Moment, dass du so viele Fragen hast? Privates Interesse? Ausbildung?
Ich bete dass es nur Trollerei ist...
Eher ein verzweifelter Student der Informatik.
Wenn blurry333 ein Student ist, dann habe ich 5 Professorentitel. Ich hoffe doch mal eher ein junger Schüler mit Interesse aber schlechtem Google-Fu. Oder eben ein Troll, dies halte ich noch am wahrscheinlichsten.
-
SeppJ schrieb:
Zeus schrieb:
Shade Of Mine schrieb:
Michael E. schrieb:
blurry333: Nur aus Interesse: Was machst du im Moment, dass du so viele Fragen hast? Privates Interesse? Ausbildung?
Ich bete dass es nur Trollerei ist...
Eher ein verzweifelter Student der Informatik.
Wenn blurry333 ein Student ist, dann habe ich 5 Professorentitel. Ich hoffe doch mal eher ein junger Schüler mit Interesse aber schlechtem Google-Fu. Oder eben ein Troll, dies halte ich noch am wahrscheinlichsten.
repräsentierst du bei euch den durchschnitt?
-
Ich bin halt ein trainierender sagen wirs mal so
Eine Frage hab ich noch zur virtuellen Speicherverwaltung.
wo sich die reale Adresse einer virtuellen ADresse befindet wissen wir schon.
Sie wird in einer Seitentabelle gespeichert.Dort gibt es auch Statusinformationen. Das erste STatusbit gibt an ob
sich die seite im ARbeitsspeicher befindet.Wo wird gespeichert welche virtuelle Adresse zu welcher Adresse auf der FEstplatte gehört ? Schließlich ist der virtuelle Speicher mehr als doppelt
so groß wie der Arbeitsspeicher.
-
blurry333 schrieb:
Wo wird gespeichert welche virtuelle Adresse zu welcher Adresse auf der FEstplatte gehört ? Schließlich ist der virtuelle Speicher mehr als doppelt
so groß wie der Arbeitsspeicher.Da dies vom Betriebssystem verwaltet wird, gibt kann man das nicht so allgemein beantworten. Es macht aber sicherlich Sinn auf dem Medium, auf dem die ausgelagerten Daten liegen, ebenfalls die Information zu speichern wozu diese gehören.
-
wo liegt grade mein Denkfehler.
Man spart sich die SEitentabelle , indem man jede Seite in den entsprechenden
Seitenrahmen also mit der gleichen Nummer stellt.
-
Entschuldige blurry333,
aber du erinnerst mich irgentwie stark an meine Nachhilfe-Schülerin. :p Die Musterklausuren die ich mit ihr durchgegangen war, waren genauso thematisch sortiert wie deine Fragen.Wenn ich tippen dürfte: Du stehst kurz vor eine MC-Prüfung, welche alle Themen ein wenig ankratzt aber nie wirklich in die Tiefe geht.
-
ich steh vor einer Prüfung. Aber die ebengestellte Frage ist eine
reine Verständnisfrage und steht nirgends.
-
Zombie-Prozesse entstehen, wenn normale, lebende Prozesse von einem Zombie gebissen werden - ist doch klaro!
Mal im Ernst: Dein geistiges Modell des Pagings und der MMU scheint wirklich sehr blurry zu sein.
Der Prozessor arbeitet (bzw. dessen MMU, bei >=i386 im "protected mode") im User Mode mit virtuellen Addressen. Diese werden beim Speicherzugriff über eine Paging-Tabelle aufgelöst. Es gibt bei den Intels z.B. ein Register mit Pointer auf die LDT (local descriptor table). Diese ist normalerweise pro Prozess und wird bei Prozesswechsel vom Scheduler des OS gesetzt.
Lassen wird mal weg, dass es praktisch eine hierarchiche Tabelle ist, und machen ein vereinfachtes Beispiel:
Page Size 1MB
virtueller Adressraum 10 MB, davon sei mal 0-5 im RAM und 6-9 ausgelagert.Es erfolgt ein Speicherzugriff auf Byte 2222222, also in Page 2.
Die MMU erkennt das: 22222222 > 2MB (2097152).
Sie schaut in der LDT, wo diese Page physikalisch im RAM liegt.
Sei diese Basisadresse z.B. bei 100MB (104857600).Das Offset ist 2222222-2097152=125070.
Also liegt das Byte physisch bei 104857600 + 125070 = 104982670.----------------
Wenn auf eine ausgelagerte Seite zugegriffen werden soll, gibt es eine Interrupt/Exception von der MMU, weil die Seite nicht im RAM ist. Eine entsprechende OS-Interruptfunktion muss nun initiieren, dass diese Seite
von der Auslagerungsdatei oder Swap-Partition/Platte gelesen wird. Das wird
eine Weile dauern, der Prozess wird also schlafen gelegt, und andere Prozesse laufen.Wenn irgendwann die Seite im Speicher ist (evtl. wurden erst andere Seiten dafür ausgelagert, um Platz zu schaffen), ist der Prozess wieder laufbereit und kommt in die Ready-Warteschlange des Schedulers. Wenn er dran kommt, läuft er genau bei der fehlgeschlagenen LdSt-Op weiter. Diesmal ist die Seite im RAM.
TLBs (translation lookaside buffers): da es extrem lahm währe, wenn die MMU bei jedem Speicherzugriff die LDT im RAM abklappern müsste (RAM ist laaaaaahhhhhhhm), werden die wichtigsten Deskriptoren gecacht. Dieser kleine Spezial-Cache nennt man TLB. Er muss sehr schnell sein, räumlich sehr nah an der MMU liegen und dürfte wohl immer nur einige Einträge haben (aber voll-assoziativ).
Eine wichtige Frage ist auch, ob die L1/L2 Caches mit virtuellen oder physischen Adressen arbeiten. Virtuell ist beim Lesezugriff evtl. schneller, aber macht bei SMP die Cache-Kohärenz schwieriger (Adressbus-Snooping etc.).
Außerdem muss man virtuelle Caches natürlich flushen, wenn die LDT beim Prozesswechsel geändert wird (TLBs sowieso).
Neben den LDTs (pro Prozess) gibt es auch noch die global descriptor table GDT für das System (Kernel/Treiber...).
Das war wie gesagt noch etwas vereinfacht, weil die LDTs bei kleinen Pages (4KB war mal üblich) und viel RAM eh viel zu groß werden würden, wenn sie linear wären. Darum ist das ganz in der Praxis mehrstufig/hierarchisch.
Und dass es wegen der unsäglicen MMU des Intel 80286 auch noch segment-basierten virtuellen Speicher oberhalb dem Paging gibt, wollen wir mal lieber ignorieren. Hat AFAIR nie jemand verwendet (höchstens die erste Version von OS/2).
-
Hallo,
ich muss unbedingt wissen ob man mit dem Bankier algorithmus oder
ähnlichen Deadlock vermeidenden Algorithmen zu 100% Ausschließen
kann dass es keinen Deadlock gibt ?
-
blurry333 schrieb:
Hallo,
ich muss unbedingt wissen ob man mit dem Bankier algorithmus oder
ähnlichen Deadlock vermeidenden Algorithmen zu 100% Ausschließen
kann dass es keinen Deadlock gibt ?Wikipedia sagt:
Kommt der Bankieralgorithmus zu einem erfolgreichen Ende, kann unter Umständen durch unbedachte Ausführungsreihenfolge der Prozesse trotzdem eine Verklemmung (Deadlock) entstehen.
Ich würde dir empfehlen ein Buch zu kaufen, was dir den Umgang mit einer Suchmaschine näher bringt. Dann klappts vielleicht auch mit der Prüfung.
In dem Tempo wird das nämlich langfristig nichts. Du musst schon selber (damit bist du gemeint!) aktiv werden.
-
jo danke
Ich glaub der BAnkier ist der beste Algorithmus. Es dürfte folglich auch
keinen anderen geben der den deadlock 100% verhindert.
-
Am Rückgabewert von fork() kann man erkennen in welchem Prozess man sich befindet.
Aber!!
Sollte man nicht vorher schon wissen ob man den vater oder den Kindprozess geklont hat ?
int pid=fork();
pid==0 Kindprozess
pid >0 Vaterprozess
pid <0 Fehler