| 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. |
| | 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. 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. |
| 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. |
| | 16 | Problema: cosi' facendo l'uso diretto comprenderebbe anche la parte di uso indiretto relativo all'interrupt handling. |
| | 17 | |
| | 18 | Chi 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 | }}} |