Les processus se mettent en veille lorsqu'ils attendent quelque chose, généralement des E / S.
Votre processus sera en S
état lorsqu'il effectuera des lectures et éventuellement des écritures bloquantes. Peut également se produire en attendant des sémaphores ou d'autres primitives de synchronisation.
Vous ne pouvez pas le "réveiller" - il ne se poursuivra que lorsque les données / ressources qu'il attend seront disponibles.
Tout cela est normal et attendu, et ce n'est généralement pas un problème. En règle générale, ce "programme" s'exécute sur la ligne de commande sans fichier:
while (<>) { print; }
passera la plupart de son temps en veille, ce qui est bien - vous ne voulez pas qu'il gaspille le processeur en attendant l'entrée de l'utilisateur.
Si vous pensez que c'est un problème, essayez de changer la façon dont vous effectuez vos E / S (lecture de plus gros morceaux, en jolis multiples de la taille de bloc du périphérique sous-jacent, exécution d'E / S mappées en mémoire, etc.).