Tại sao một chương trình người dùng lộn xộn với không gian kernel?


9

Tôi thậm chí không chắc vấn đề là gì, nhưng tôi đang nói về cuộc tấn công hạt nhân được mô tả ở đây . Dưới danh sách ý kiến ​​này ai đó đã hỏi về việc đổi mới quy trình. Thủ thuật không cải thiện được tình hình (máy vẫn chạy rất chậm) và bình luận trả lời nói lên điều gì đó về không gian kernel so với không gian người dùng.

Đầu tiên, là nhận xét trả lời đúng? Nếu vậy, tại sao renice hoạt động cho những thứ trong không gian người dùng mà không phải cho những thứ trong không gian kernel? Ngoài ra, theo những gì tôi đọc được , tất cả các chương trình mà người dùng bắt đầu phải ở trong không gian người dùng, tôi đã bỏ lỡ điều gì?

Nếu nó không chính xác, thì tại sao renice không cải thiện tình hình?

Câu trả lời:


9

Có những dịch vụ mà kernel cung cấp cho không gian người dùng (chẳng hạn như ổ cắm mở). Có một giao diện được xác định rõ (API) mà các chương trình không gian người dùng có thể tương tác với kernel thông qua.

Trong trường hợp này, chương trình không gian người dùng liên tục mở ổ cắm và gửi mô tả tệp qua chúng, sau đó đóng ổ cắm. Những hành động này được thực hiện bởi kernel. Nó sẽ giữ bộ mô tả tập tin trong một bộ đệm cho đến khi đầu kia của ổ cắm đọc nó. Lỗi cụ thể là bộ thu gom rác cuối cùng sẽ giải phóng bộ mô tả tệp, nhưng không được - fd bị rò rỉ. Các fds bị rò rỉ cộng lại và ngồi đó tiêu thụ tài nguyên. Giết chương trình không giải phóng tài nguyên vì chúng không thuộc sở hữu của chương trình.


6
Và lý do gia hạn không giúp được gì là nó chỉ ảnh hưởng đến mức độ chia sẻ thời gian CPU của người dùng. Thời gian dành cho chế độ kernel không được tính cho mục đích này. Nói chung, tốt đẹp chỉ ảnh hưởng đến các chương trình giới hạn CPU, không phải chương trình ràng buộc IO. Ở đây, quá trình chạy trốn là IO thuần túy và thậm chí nó không thực hiện được nhiều cuộc gọi hệ thống vì lỗi là mỗi cuộc gọi hệ thống mất quá nhiều thời gian.
Gilles 'SO- ngừng trở nên xấu xa'

1
@Gilles Xin lỗi vì đã chạm vào một vấn đề cũ như vậy, nhưng có vẻ rất thú vị! Tôi có hiểu đúng không, rằng một cái gì đó như ionicesẽ làm tốt hơn?
rozcietrzewiacz

@rozcietrzewiacz Tôi không nghĩ ionice cũng có ích, nhưng tôi không chắc. Do lỗi, quá trình này dành toàn bộ thời gian trong một tòa nhà duy nhất và ionice sẽ không ngăn chặn điều đó (tôi nghĩ).
Gilles 'SO- ngừng trở nên xấu xa'
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.