Bạn đã bao giờ nghe đến cụm từ “starvation” chưa? Nghe có vẻ “đói meo” lắm phải không nào? Trong tiếng Anh, “starvation” có nghĩa là “sự thiếu đói”, và khi được áp dụng trong lĩnh vực công nghệ, nó cũng mang một ý nghĩa tương tự, nhưng “đói” ở đây lại là “đói dữ liệu”. Cùng lailagi.edu.vn tìm hiểu kỹ hơn về “starvation” và cách “giải đói” cho hệ thống của bạn nhé!
Starvation là gì? “Cơn đói” trong thế giới công nghệ
“Starvation” hay “data starvation” là một thuật ngữ chỉ tình trạng một tiến trình (process) hoặc một luồng (thread) trong hệ thống máy tính không thể truy cập được tài nguyên cần thiết để thực thi do các tiến trình hoặc luồng khác chiếm giữ. Nói một cách dễ hiểu, giống như việc bạn đang rất đói bụng, nhưng thức ăn lại bị người khác giành hết, bạn không có gì để ăn và trở nên “đói dữ liệu”.
Các dạng “starvation” thường gặp:
- CPU starvation: Khi một hoặc một số ít tiến trình chiếm dụng CPU quá mức, khiến các tiến trình khác không có cơ hội được thực thi.
- Disk starvation: Tương tự như CPU starvation, nhưng tài nguyên bị chiếm dụng ở đây là ổ đĩa.
- Network starvation: Xảy ra khi băng thông mạng bị chiếm dụng bởi một số lượng lớn yêu cầu, khiến các yêu cầu khác bị trì hoãn hoặc không thể kết nối.
cpu-starvation-illustration|CPU starvation|A computer with many applications running, with some applications being prioritized over others and using a large amount of CPU resources, while other applications are delayed or slowed down.
Tại sao “starvation” lại là vấn đề?
“Starvation” có thể dẫn đến nhiều hệ lụy:
- Giảm hiệu năng hệ thống: Các tác vụ bị trì hoãn, thời gian phản hồi tăng cao.
- Tình trạng “deadlock”: Khi các tiến trình bị khóa lẫn nhau do cùng chờ đợi tài nguyên mà đối phương đang giữ.
- Mất dữ liệu: Trong một số trường hợp nghiêm trọng, “starvation” có thể dẫn đến mất mát dữ liệu.
deadlock-illustration|Deadlock|A diagram showing multiple processes waiting for resources that are held by other processes, creating a circular dependency and preventing any process from making progress.