Saturday, June 25, 2011

SW: Planovanie vlakien

Planovanie mozme rozdelit na
- dlhodobe - urcuje, ktore programy budu zpracovane systemom
- strednodobe -
- kratkodobe - pri preruseni od casovaca, I/O zariadenia, systemove volania, signaly (medzi pamatou a CPU)
                     - kriteria su z uzivatelskeho hladiska: doba zpracovania, doba odozvy, dosiahnutie medze, predvidatelnost
                     - z hladiska OS su kriteria priepustnost, vyuzitie procesoru, spravodlivost, presadenie prorit, vyvazenie I/O
- I/O planovanie - urcuje, ktory I/O poziadavok bude obsluzeny volnym zariadenim

- procesy a vlakna mozme rozdelit na orientovane na CPU a orientovane na I/O. Doba vyuzitia CPU je kritickym faktorom.

strategie planovania
- planovanie s predbiehanim

  • proces je zablokovany automaticky po uplynuti nejakeho casoveho kvanta 
  • je to jedina mozna strategia v real-time a viacuzivatelskych systemoch

- planovanie bez predbiehania

  • proces bezi, az kym o nejaku sluzbu nepoziada jadro, alebo kym neskonci 
  • pouzivalo sa v davkovych systemoch, v real-time systemoch by hrozilo blokovanie jadra 
  • pouziva sa v niektorych procesoch pre specialne triedy procesov a vlakien 
- planovanie v davkovych systemoch 
  • First Come First Served - FIFO fronta 
    • bez predbiehania 
    • ked je beziaci proces zablokovany, tak dalsi z fronty ma volno 
    • ked je bloknuty proces opat ready, tak sa vlozi do fronty 
    • jednoduche, ale moze zpomalovat procesy orientovane na I/O 
  • Shortest Job First 
    • bez predbiehania, ale predpoklada, ze doba vypoctu bude znama vopred 
    • planovac teda spusti najskor procesy s najmensou dobou vypoctu 
    • planovac sa snazi minimalizovat priemernu dobu vypoctu 
  • Shortest Remaining Time Next 
    • je to vlastne Shortest Job First, ale s predbiehanim 
    • na radu sa dostane proces, ktory by mal najrychlejsie skoncit - ked pride poziadavok, tak sa porovna, ze kto bude rychlejsi - aktualny proces vs novy proces? a ten rychlejsi ide 
    • starvation risk
- planovanie v interaktivnych systemoch 
  • Round Robin 
    • planovanie s predbiehanim 
    • ready procesy cakaju vo FIFO fronte 
    • kazdy proces ma casove kvantum, po uplynuti ktoreho, sa zaradi na koniec fronty 
    • dlzka casoveho kvanta je dolezita v tomto pripade - dlha == dlha doba odozvy, kratka == neefektivne pre CPU, 20 - 50ms je kompromis 
  • Priority Scheduling 
    • procesy maju pridelenu prioritu 
    • procesy su zoradene v triedach podla priority 
    • CPU je priradzovane procesom s najvyssou prioritou - v ramci triedy sa procesy striedaju s pouzitim round robin
    • bez predbiehania - problem hladovenia 
    • s predbiehanim 
      • staticka/dynamicka priorita 
      • ak staticka, tak nadalej moze dochadzat k starvation 
      • ak dynamicka, tak proces, ktory caka dlho, moze dostat zvysenu prioritu
      • casove kvanta mozu byt fixne/variabilne - v zavislosti na danej triede 
Windows - Priority Scheduling s predbiehanim