Các quá trình chuyển sang trạng thái ngủ khi chúng đang chờ đợi một cái gì đó, thường là I / O.
Quá trình của bạn sẽ ở S
trạng thái khi nó đang đọc và có thể viết đang bị chặn. Cũng có thể xảy ra trong khi chờ đợi trên semaphores hoặc các nguyên thủy đồng bộ hóa khác.
Bạn không thể "đánh thức nó" - nó sẽ chỉ tiếp tục khi dữ liệu / tài nguyên mà nó đang chờ có sẵn.
Đây là tất cả bình thường và dự kiến, và thường không phải là một vấn đề. Thông thường, "chương trình" này chạy trên dòng lệnh không có tệp:
while (<>) { print; }
sẽ dành phần lớn thời gian ở trạng thái ngủ, điều này rất tốt - bạn không muốn nó lãng phí CPU trong khi chờ người dùng nhập liệu.
Nếu bạn nghĩ rằng đây là một vấn đề, hãy thử thay đổi cách bạn thực hiện I / O của mình (đọc các khối lớn hơn, theo bội số đẹp của kích thước khối của thiết bị bên dưới, thực hiện I / O được ánh xạ bộ nhớ, v.v.).