Lowlevel

Lowlevel => Lowlevel-Coding => Thema gestartet von: CuePlay am 29. December 2011, 01:04

Titel: Frage zum Scheduling
Beitrag von: CuePlay am 29. December 2011, 01:04
Hallo zusammen,

besuche eine Vorlesung zu Betriebssystemen und Stelle mir da eine Frage zum Scheduling.
Wir unterscheiden dort zwischen high, medium und low level scheduling. Außerdem zwischen preemtive und non-preemtive.

Bei den non-preemtive Verfahren listen wir zum Beispiel FCFS. Dabei handelt es sich ja um einen low level scheduler. Meine Frage: Macht ein high level scheduler in dem Fall überhaupt Sinn?

Grüße
Titel: Re: Frage zum Scheduling
Beitrag von: kevin am 29. December 2011, 19:12
Ich weiß nicht wie es anderen geht, aber mir sagt Low/Medium/High Level Scheduling nichts. Wenn du erklärst, was du damit meinst, kann man vielleicht besser antworten. ;)
Titel: Re: Frage zum Scheduling
Beitrag von: CuePlay am 29. December 2011, 20:07
Hi,

Low level scheduling bezeichnet das Aufnehmen anstehender Prozesse in den READY state. Hier werden die Prozesse angelegt.
Medium level scheduling bezeichnet das Ein/Auslagern von Prozessen aus READY oder BLOCKED in den Hintergrund.
High level scheduling bezeichnet die eigentliche Zuweisung der CPU an einen Prozess der im READY state ist.

Gruß
Titel: Re: Frage zum Scheduling
Beitrag von: rizor am 29. December 2011, 21:26
Hi,

natuerlich macht das Sinn.
Wenn der Prozess auftaucht, wird er als Ready markiert (low-level).
Wenn du nicht nur die READY-/BLOCKED-States hast, sondern z.B. noch TERMINATED, hast du bei FCFS auch noch (medium-level).
Aber an high-level kommst du nicht vorbei, da die Prozesse trotzdem noch von READY nach RUNNING gelagert werden muessen.

Gruss,
rizor
Titel: Re: Frage zum Scheduling
Beitrag von: CuePlay am 29. December 2011, 22:36
Hey danke,

hatte bei meiner Erklärung Low und High level vertauscht.

Das heißt Strategien wie FCFS, RR oder andere bedienen sich alle aus den Prozessen die in READY sind? Und für das Übernehmen in den READY state ist ein anderer Scheduler verantwortlich?

Gruß
Titel: Re: Frage zum Scheduling
Beitrag von: Relbmessa am 29. December 2011, 23:14
Hallo,
ich dachte immer es heißt - Scheduler -

 Gruß
Relbmessa
Titel: Re: Frage zum Scheduling
Beitrag von: CuePlay am 29. December 2011, 23:22
Hallo,

ja stimmt, ist korrigiert.
Titel: Re: Frage zum Scheduling
Beitrag von: kevin am 29. December 2011, 23:52
Strategien bedienen sich überhaupt nicht, sondern Strategien werden vom Scheduler benutzt, um seine Aufgaben zu erfüllen. ;)

Aber ja, diese Strategien beschreiben alle, was ich tun soll, wenn ich x Prozesse habe, die laufen wollen (d.h. READY sind), und ich muss einen davon als den nächsten auswählen. Ich würde eigentlich sogar sagen, dass man unabhängige Sachen vermischt, wenn man präemptiv/kooperativ auf dieser Ebene betrachtet, denn das sagt eigentlich nicht aus wie ich den nächsten Prozess auswähle, sondern nur wann ich es tue.

Was genau meinst du beim "medium-level scheduler" mit dem Hintergrund, in den ein-/ausgelagert wird?
Titel: Re: Frage zum Scheduling
Beitrag von: CuePlay am 30. December 2011, 01:02
Ich würde eigentlich sogar sagen, dass man unabhängige Sachen vermischt, wenn man präemptiv/kooperativ auf dieser Ebene betrachtet, denn das sagt eigentlich nicht aus wie ich den nächsten Prozess auswähle, sondern nur wann ich es tue.

Ja genau.
Präemptiv -> Unterbrechbar -> Laufender Prozess wird unterbrochen wenn Zeitscheibe abgelaufen ist/Prozess mit höherer Priorität ansteht/etc.
Nicht-Präemptiv/kooperativ -> Es wird gewartet bis Prozess zu Ende gelaufen ist (oder bei kooperativ: gibt der Prozessor eventuell freiwillig den Prozessor ab)

Was genau meinst du beim "medium-level scheduler" mit dem Hintergrund, in den ein-/ausgelagert wird?

Damit meine ich, dass der Scheduler Prozesse aus der READY oder BLOCKED Schlange eventuell aus dem Hauptspeicher irgendwohin anders auslagert/suspendiert. http://www-sr.informatik.uni-tuebingen.de/fileadmin/lehre/vorlesungen/BS/folien/BS_I.2.3_Scheduling_WS10.pdf (http://www-sr.informatik.uni-tuebingen.de/fileadmin/lehre/vorlesungen/BS/folien/BS_I.2.3_Scheduling_WS10.pdf)
Titel: Re: Frage zum Scheduling
Beitrag von: kevin am 30. December 2011, 01:27
Nicht-Präemptiv/kooperativ -> Es wird gewartet bis Prozess zu Ende gelaufen ist (oder bei kooperativ: gibt der Prozessor eventuell freiwillig den Prozessor ab)
Prozess zu Ende ist ein Spezialfall von freiwilligem Abgeben, das brauchst du also nicht unbedingt zu unterscheiden.

Zitat
http://www-sr.informatik.uni-tuebingen.de/fileadmin/lehre/vorlesungen/BS/folien/BS_I.2.3_Scheduling_WS10.pdf (http://www-sr.informatik.uni-tuebingen.de/fileadmin/lehre/vorlesungen/BS/folien/BS_I.2.3_Scheduling_WS10.pdf)
Okay, ich hab mir das jetzt mal angeschaut, vor allem Folie 6 scheint das zu beschreiben, was du meinst. Ich würde da eigentlich nur den kurzfristigen Scheduler wirklich als Scheduler im engeren Sinn ansehen, wie ich ihn in einem OS-Kernel habe. Das Swapping wäre für mich Teil der Speicherverwaltung, und der langfristige Scheduler vermutlich ein Userspace-Programm, das die Jobs zur richtigen Zeit startet.
Titel: Re: Frage zum Scheduling
Beitrag von: CuePlay am 30. December 2011, 01:52
Ok, super. Danke für die Antworten.