Los procesos pasan a estado de suspensión cuando esperan algo, generalmente E / S.
Su proceso estará en S
estado cuando esté haciendo lecturas y posiblemente escrituras que estén bloqueando. También puede ocurrir mientras espera semáforos u otras primitivas de sincronización.
No puede "despertarlo", solo continuará cuando los datos / recursos que está esperando estén disponibles.
Todo esto es normal y esperado, y no suele ser un problema. Normalmente, este "programa" se ejecuta en la línea de comando sin archivo:
while (<>) { print; }
pasará la mayor parte de su tiempo en estado de suspensión, lo cual es bueno: no querrá que desperdicie CPU mientras espera la entrada del usuario.
Si cree que esto es un problema, intente cambiar la forma en que realiza su E / S (leer fragmentos más grandes, en buenos múltiplos del tamaño del bloque del dispositivo subyacente, realizar E / S mapeadas en memoria, etc.).