Skip to main content.

Navigation:

3. theoretisches Aufgabenblatt

  1. Gegeben sei ein Auszug aus einem Assemblerquelltext, in dem eine Funktion aufgerufen wird. Beschreibe, wie viele Parameter/lokale Variablen die Funktion hat und was während des Funktionsaufrufs passiert. Skizziere abschließend den Stackaufbau beim Erreichen der Labels L1 und L2. (4 Pkt.)
              ...
              push ebx
              push dword 1312h
              push eax
              push ecx
              call func
              add  esp, 12
        L2:
              ...
        func:
              push ebp
              move bp, esp
              sub  esp, 12h
        L1:
              ...
              leave
              ret
              ...
    
  2. Was versteht man unter dem flüchtigem bzw. dem nicht-flüchtigem Registersatz einer CPU? (2 Pkt.)
  3. Worin besteht der Zusammenhang zwischen Prozessen und Threads und woher kommt der Begriff leichtgewichtiger Prozess für Threads? (2 Pkt.)
  4. Erkläre Aufgaben und Struktur eines Threadkontrollblocks ( TCB). Welche weiteren Informationen sind für einen Prozesskontrollblock (PCB) erforderlich? (3 Pkt.)
  5. Worin besteht der Unterschied zwischen Routinen und Coroutinen und was muss bei einem Coroutinenwechsel geschehen? (3 Pkt.)
  6. Was ist Preemtion, wofür wird sie verwendet und was kann durch Preemtion erreicht werden? Gibt es Alternativen zur Preemtion? (3 Pkt.)
  7. Welche Zustände kann ein Prozess annehmen? Welche Zustandswechsel können auftreten und welche Kriterien müssen für die einzelnen Zustandswechsel erfüllt sein? (2 Pkt.)
  8. Nach welchen Kriterien kann ein Prozess zugeteilt werden? Gibt es Kriterien, die bevorzugt werden sollten (wenn ja, warum)? (3 Pkt.)
  9. Was müsste ein Scheduler tun, damit Prozesse von Professoren schneller laufen, als die der Studenten? Beschreibe mögliche Ansätze. (4 Pkt.)
  10. Nenne mindestens drei Schedulingstrategien und beschreibe eine davon genauer. (4 Pkt.)