Skip to main content

Quá trình zombie là gì?

Một quy trình zombie là một ví dụ của một chương trình máy tính giữ lại bản ghi bảng xử lý mặc dù đã thực hiện xong.Các quy trình không còn tồn tại như thế này thường được liên kết với Unix và các hệ điều hành tương tự khác do cách họ xử lý các quá trình trẻ em.Khi một quá trình con đã thực hiện xong, cha mẹ thường chịu trách nhiệm loại bỏ nó khỏi bảng xử lý.Thông thường không thể loại bỏ trực tiếp một quy trình zombie bằng lệnh tiêu diệt, mặc dù cha mẹ thường có thể được thực hiện để xóa nó nếu người vận hành sử dụng thông báo Tín hiệu con (SIGCHLD).Thất bại trong điều này, một quá trình zombie có thể được loại bỏ gián tiếp bằng cách giết chết cha mẹ.Các quy trình không còn tồn tại trong Unix Và các hệ điều hành tương tự có thể được coi là tương tự như zombie ở chỗ chúng duy trì sự hiện diện của bảng xử lý mặc dù không còn thực hiện các chức năng dự định của chúng.Khi một quá trình đã thực hiện xong, đôi khi nó được cho là đã chết, trong khi các phương tiện mà hệ điều hành phục hồi phân bổ bảng quy trình của nó có thể được gọi là gặt hái.Quá trình cha mẹ của một thây ma được cho là kỹ thuật gặt hái con cái, mặc dù điều này không phải lúc nào cũng xảy ra.Sau khi một quá trình con đã ngừng thực thi, cha mẹ có thể cần phải chạy một trường hợp khác của cùng một chương trình sau này.Nếu một zombie chưa được xóa khỏi bảng xử lý, một đứa trẻ mới sẽ không được chỉ định nhận dạng (ID) giống như đứa trẻ cũ.Một số chương trình có thể được hưởng lợi từ hoặc thậm chí yêu cầu loại khác biệt này. Nếu một quy trình phụ huynh không thực hiện lệnh chờ để gặt hái zombie mà nó chịu trách nhiệm, có thể có thể buộc vấn đề.Điều này thường được thực hiện thông qua lệnh tiêu diệt và gửi tín hiệu sigchld đến quy trình cha mẹ.Nếu mọi thứ hoạt động đúng, một quy trình cha nhận tín hiệu này sẽ gặt hái con zombie để có thể sử dụng lại tín hiệu ID và bảng xử lý của chúng.Nếu điều này xảy ra và người vận hành vẫn mong muốn bảng xử lý được xóa, quá trình cha mẹ có thể bị giết.Bất kỳ thây ma nào mà quá trình cha mẹ tạo ra sau đó sẽ được chỉ định là con cho quá trình init.Vì ban đầu định kỳ bắt đầu lệnh chờ cho con cái của nó, bất kỳ thây ma nào mà nó chịu trách nhiệm cuối cùng sẽ bị xóa khỏi bảng xử lý.