Changes between Version 5 and Version 6 of AppuntiPhase2


Ignore:
Timestamp:
May 31, 2006, 2:44:58 PM (18 years ago)
Author:
soujak
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AppuntiPhase2

    v5 v6  
    1212L'uso della CPU e' da distinguersi in due tipi: uso diretto e indiretto. Ci si riferisce al primo nel caso il processo stia utilizzando effettivamente il processore con il suo codice, mentre si parla di uso indiretto quando il codice e' in realta' esterno al processo stesso [syscall e interrupts handling (e anche lo stesso tempo richiesto allo scheduling ?)].
    1313
    14 Chi si preoccupa di tenere traccia dell'uso diretto e' lo stesso dispatcher, che fara' un timestamp prima del caricamento del pcb, e, una volta reinvocato per la successiva ri-schedulazione, calcolera' la differenza.
     14Chi si preoccupa di tenere traccia dell'uso diretto e' lo stesso dispatcher, che fara' un timestamp prima del caricamento del pcb, e, una volta reinvocato per la successiva ri-schedulazione, calcolera' la differenza. Nel caso di uso indiretto, il compito e' ripartito fra i gestori delle eccezioni: essi addebiteranno il proprio tempo di esecuzione al processo chiamante (procCurr) nel caso di syscall, trap  e breakpoint, oppure al processo realmente interessato nel caso di interrupt; in questo ultimo scenario l'identificazione dell'interessato avviene al momento di verhogen-are un semaforo.
    1515
    16 Nel caso di uso indiretto, il compito e' ripartito fra i gestori delle eccezioni: essi addebiteranno il proprio tempo di esecuzione al processo chiamante (procCurr) nel caso di syscall, trap  e breakpoint, oppure al processo realmente interessato nel caso di interrupt; in questo ultimo scenario l'identificazione dell'interessato avviene al momento di verhogen-are un semaforo.
     16Problema: cosi' facendo l'uso diretto comprenderebbe anche la parte di uso indiretto relativo all'interrupt handling.
     17
     18Chi si fa carico del calcolo di accounting e' il dispatcher,
     19
     20
     21{{{
     22             Dispatcher     Process1   Proces2   Syscall        Interrupt
     23                ___
     24 |> 1            |. . . . . . .
     25                              |
     26                              |
     27                              |
     28                              |. . . . . . . . . . .
     29                                                    |
     30                                                    |
     31                                                    |
     32 || 1                                            wait I/O
     33
     34                 |. . . . . . . . . . . . .
     35 |> 2                                     |
     36                                          |
     37                                          |
     38 || 2                                     |. . . . . . . . . . . end I/O
     39 |> 1                                                               |
     40                                                                    |
     41                                                                    |
     42 || 1                                                            wait CPU
     43
     44
     45
     46
     47 ||  CPUTIME += TOD - lastTOD
     48
     49 |>  lastTOD = TOD
     50
     51
     52}}}
    1753
    1854=== Varie ed eventuali ===