Os processos entram no estado de suspensão quando aguardam algo, geralmente E / S.
Seu processo estará em S
estado quando estiver fazendo leituras e possivelmente gravações que estão bloqueando. Também pode acontecer enquanto aguarda semáforos ou outras primitivas de sincronização.
Você não pode "acordá-lo" - ele só continuará quando os dados / recursos pelos quais estiver aguardando estiverem disponíveis.
Tudo isso é normal e esperado, e geralmente não é um problema. Normalmente, esse "programa" é executado na linha de comando sem nenhum arquivo:
while (<>) { print; }
passará a maior parte do tempo no estado de suspensão, o que é bom - você não quer que ela perca CPU enquanto aguarda a entrada do usuário.
Se você acha que isso é um problema, tente alterar a maneira como realiza suas E / S (lendo blocos maiores, em múltiplos agradáveis do tamanho do bloco do dispositivo subjacente, executando E / S mapeadas na memória etc.).