È risaputo che le operazioni del disco sono lente e conosciamo i motivi per cui sono lenti. Quindi la domanda qui è perché dobbiamo aspettare I / O o perché esiste una cosa come IOWait, ecc.?
Voglio dire che ho notato che quando esegui alcune attività di I / O in background, il tuo computer diventa molto più lento, ho notato soprattutto che quando usi Linux, se lo stai facendo più a lungo / O, il sistema operativo diventa quasi inutilizzabile fino al completamento.
In effetti, ho trovato questo argomento anche in un articolo, c'è uno snippet:
I/O wait is 12.1%. This server has 8 cores (via cat /proc/cpuinfo). This is very close to (1/8 cores = 0.125)
Quindi in pratica significa che sta rallentando il computer molto, perché è così? Voglio dire OK, ora il computer normale sono almeno 2 core, a volte 4 o a volte ne hanno di più a causa di hyperthreading o qualcosa del genere. Ma ora la domanda è: perché la CPU deve effettivamente rimanere lì, praticamente non sta facendo altro che aspettare l'IO? Intendo l'idea di base o l'architettura del processo di gestione, ora non so se è il sistema operativo a essere responsabile di questo, o si tratta di hardware, ma dovrebbe essere possibile per la CPU da attendere o per controlla regolarmente, mentre esegui molte altre attività e torna al processo di I / O solo quando è pronto. Infatti, se è un compito così difficile e la CPU dovrebbe aspettare, perché allora non è gestito in modo più efficiente dall'hardware? Ad esempio, potrebbe esserci una sorta di mini CPU che dovrebbe solo attendere e fornire la piccola parte di dati alla CPU reale non appena ritorna al processo e quindi il processo verrebbe ripetuto e non avremmo dedicare praticamente un intero core della CPU per il processo di copia dei dati ... o sarei io quello che dovrebbe inventare questo genere di cose e ottenere un premio nobel per quello? : S
Ora ok, lo sto davvero mettendo da un punto di vista degli osservatori e non ho approfondito l'argomento, ma davvero non capisco perché la CPU debba lavorare con la velocità dell'HDD, mentre potrebbe solo fare qualcos'altro e tornare su HDD una volta pronto. L'idea non è quella di velocizzare l'applicazione che ha bisogno dell'operazione IO o del processo di copia o altro, ma l'idea è di influenzare minimamente il consumo della CPU durante l'esecuzione di tale operazione, in modo che il sistema operativo possa utilizzarlo per altri processi e l'utente non dovrebbe sentire un ritardo generale del computer quando si eseguono alcune operazioni di copia ...