Các tiến trình trong UNIX được đánh số như thế nào?


17

Tôi không thể tìm thấy bất kỳ mẫu nào khi tôi xem số thứ tự của các PID trong bảng quy trình ( ps -a), vì các PID không phải là các số tiếp theo và đôi khi có những "khoảng trống" lớn giữa các số đó. Có phải vì có thể có một số quy trình chạy trong một thời gian ngắn và họ bảo lưu một số PID? Có một số phạm vi, sau đó việc đánh số các quá trình đặt lại?

Tôi đang sử dụng Mac OS X nhưng tôi đoán rằng câu trả lời nên áp dụng cho UNIX nói chung.

Câu trả lời:


18

Có trên cả hai tính.

Nhiều quá trình là ngắn ngủi. Họ nhận được một PID, chạy, kết thúc và PID biến mất khỏi bảng quy trình.

Quá trình đôi khi chỉ sống trong một phần của giây!

Thông thường khi các chương trình bắt đầu, chúng chạy nhiều lệnh như là một phần của việc kiểm tra hệ thống và khởi tạo môi trường của chúng.

Số lượng PID tối đa phụ thuộc vào hệ thống và đôi khi có thể cấu hình được. Về cơ bản nếu bạn biết bạn sẽ có một số lượng lớn các quy trình, thì bạn có thể cần phải tăng số lượng, nhưng trên các hệ điều hành mới, tôi tin rằng số lượng tối đa thường đủ lớn cho hầu hết mọi khối lượng công việc.

PID là các mục trong bảng quy trình và bạn càng có nhiều bộ nhớ thì bảng quy trình sẽ chiếm nhiều bộ nhớ hơn.

Hãy xem câu hỏi liên quan này: /server/279178/what-is-the-range-of-a-pid-on-linux-and-solaris

Cũng lưu ý rằng liên quan đến điều này là "nr tối đa của các quy trình cho mỗi người dùng" là một biện pháp để bảo vệ chống lại người dùng độc hại cố tình tạo ra nhiều quy trình để hog toàn bộ bảng quy trình.


7

Cũng có thể cấu hình một số hạt nhân hiện đại để gán các bộ điều khiển ngẫu nhiên cho các quy trình mới để bảo mật được cải thiện. Ít nhất Linux và FreeBSD có thể làm điều đó với cài đặt sysctl và OpenBSD luôn làm như vậy. Trong những trường hợp đó, bạn có thể nói ít hơn về các lược đồ đánh số.


Bạn có biết những gì, nếu có, chi phí hiệu suất tồn tại cho điều này?
Bruce Ediger

@Bruce: bản vá được đề xuất đầu tiên có hiệu suất trường hợp xấu nhất của O (infty) do ngẫu nhiên ngây thơ. Nhưng tôi nghĩ rằng họ có một cái gì đó an toàn và có thể sử dụng. Tôi đã không tìm thấy bất cứ điều gì rất hiện tại về chủ đề này ... tôi không tin điều đó. :)
unperson325680

5
PID ngẫu nhiên nghe có vẻ như bảo mật thông qua che khuất đối với tôi.
Johan

Đó chính là nó, chủ yếu là ...
unperson325680

Appart từ các sáng kiến cá nhân, Linux sử dụng để đưa ra nó chỉ thông qua grsecurity vá, đội kernel Linux luôn luôn từ chối thực hiện nó ( ví dụ ở đây ) và nhóm nghiên cứu thậm chí grsecurity cuối cùng đã đánh rơi nó trong cuối năm 2006 .
WhiteWinterWolf
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.