Một quá trình zombie hoặc chủ đề là gì?


11

Một quá trình zombie hoặc chủ đề, và những gì tạo ra chúng? Tôi chỉ giết chúng, hay tôi có thể làm gì đó để được chẩn đoán về cách chúng chết?


13
bạn cắt đầu họ. Hoặc bạn đốt chúng. Đó là cách duy nhất.
Simon Bergot

"Đánh bại chúng hoặc đốt cháy chúng, chúng đi lên khá dễ dàng" ...
TMN

Câu trả lời:


17

Một quá trình zombie hoặc chủ đề, và những gì tạo ra chúng?

Một quá trình zombie là một quá trình chết.
HĐH chỉ lưu giữ thông tin xung quanh để phụ huynh có thể kiểm tra mã thoát của các quy trình tại một số điểm sau đó vì vậy HĐH sẽ giữ thông tin về chúng và do đó chúng bật lên khi xem xét các quy trình.

Tôi có giết chúng không

Không. Họ đã chết rồi.
HĐH sẽ dọn sạch khi cha mẹ chết hoặc lấy mã trạng thái từ HĐH.

hoặc tôi có thể làm gì đó để được chẩn đoán về cách họ chết?

Không. Cha mẹ có thể nhưng không phải là vỏ.


4

Một chủ đề zombie là một chủ đề đã chấm dứt thực hiện nhưng không chấm dứt sạch sẽ. Nó phân bổ các tài nguyên được sử dụng bởi luồng nhưng giữ một mục trong bảng xử lý / luồng.

Về mặt lý thuyết, luồng zombie thoát khỏi trạng thái này bằng cách thực hiện _join (POSIX). Điều đó có nghĩa là khi main của bạn kết thúc, quá trình zombie sẽ bị giết cùng với chương trình.


2

Một quy trình zombie là một quá trình vừa chấm dứt thực hiện và đã bị xóa khỏi danh sách các quy trình được lên lịch , nhưng vẫn chưa bị xóa. Tùy thuộc vào HĐH, tt có thể có hoặc không có các tài nguyên khác nhau được gán cho nó và có thể được truy vấn, nhưng nó sẽ không chạy.

Một số hệ điều hành (theo thiết kế) không được phép tự động tạo hoặc xóa tài nguyên ngoài một điểm sự kiện nhất định (ví dụ: Chứng chỉ VxWorks). Các hệ thống như vậy thường hoạt động xung quanh giới hạn này bằng cách sử dụng các nguồn tài nguyên được phân bổ trước mà chúng lấy, trả lại và sử dụng lại các mục. Tuy nhiên, khi một quá trình trên một hệ thống như vậy chấm dứt, nó không thể bị xóa và thay vào đó sẽ trở thành zombified (chấm dứt và xóa khỏi danh sách lập lịch).

Hi vọng điêu nay co ich.


0

Khi luồng / tiến trình bị giết, nhưng vẫn còn một bản ghi trong bảng tương ứng về nó, nó sẽ trở thành một thây ma.

Điều này có thể xảy ra khi, ví dụ, một quy trình cha mẹ tạo ra một quy trình con, nhưng chấm dứt trước khi con. Khi quá trình con kết thúc, nó báo cho cha mẹ biết về việc chấm dứt. Sau đó, bản ghi của quá trình con được xóa khỏi bảng tương ứng. Nhưng đó là cha mẹ đã chấm dứt, vì vậy hồ sơ vẫn còn trong bảng.

Không có cách nào để thoát khỏi zombie mà là khởi động lại


1
Không cần khởi động lại. Đơn giản chỉ cần giết tiến trình cha và zombie sẽ được hệ thống tự động dọn sạch.
Kevin Panko
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.