Procesy przechodzą w stan uśpienia, gdy na coś czekają, zwykle we / wy.
Twój proces będzie w S
stanie, gdy będzie czyta i zapisuje, które blokują. Może się również zdarzyć podczas oczekiwania na semafory lub inne operacje podstawowe synchronizacji.
Nie możesz „obudzić” - będzie działać tylko wtedy, gdy dane / zasoby, na które czeka, stają się dostępne.
To wszystko jest normalne i oczekiwane, i zwykle nie stanowi problemu. Zazwyczaj ten „program” działa w wierszu poleceń bez pliku:
while (<>) { print; }
spędza większość czasu w stanie uśpienia, co jest dobre - nie chcesz, aby marnował procesor podczas oczekiwania na dane wejściowe użytkownika.
Jeśli uważasz , że to problem, spróbuj zmienić sposób wykonywania operacji we / wy (odczytywanie większych porcji, w przyjemnych wielokrotnościach wielkości bloku urządzenia bazowego, wykonywanie operacji we / wy odwzorowanych w pamięci itp.).