กระบวนการใน UNIX มีหมายเลขอย่างไร


17

ฉันไม่พบรูปแบบใด ๆ เมื่อดูที่การกำหนดหมายเลข PID ในตารางกระบวนการ ( ps -a) เนื่องจาก PID ไม่ใช่ตัวเลขที่ตามมาและบางครั้งมี "ช่องว่าง" ขนาดใหญ่ระหว่างตัวเลขเหล่านั้น เป็นเพราะอาจมีกระบวนการบางอย่างที่ทำงานในช่วงเวลาสั้น ๆ และพวกเขาจอง PID บางส่วน? มีบางช่วงหลังจากที่จำนวนกระบวนการรีเซ็ตหรือไม่

ฉันใช้ Mac OS X แต่ฉันเดาว่าคำตอบควรใช้กับ UNIX โดยทั่วไป

คำตอบ:


18

ใช่ทั้งสองมีค่า

กระบวนการหลายอย่างมีอายุสั้น พวกเขาได้รับ PID, Run, Finish และ PID จะหายไปจากตารางกระบวนการ

บางครั้งกระบวนการมีชีวิตอยู่เพียงเสี้ยววินาที

บ่อยครั้งที่โปรแกรมเริ่มทำงานพวกเขารันคำสั่งมากมายซึ่งเป็นส่วนหนึ่งของการตรวจสอบระบบและเริ่มต้นสภาพแวดล้อมของพวกเขา

หมายเลข PID สูงสุดขึ้นอยู่กับระบบและบางครั้งสามารถกำหนดค่าได้ โดยทั่วไปถ้าคุณรู้ว่าคุณกำลังจะมีกระบวนการจำนวนมากคุณอาจต้องเพิ่มจำนวน แต่ในระบบปฏิบัติการใหม่ฉันเชื่อว่าจำนวนสูงสุดมักจะใหญ่พอสำหรับภาระงานส่วนใหญ่

PID คือรายการในตารางกระบวนการและยิ่งคุณมีหน่วยความจำมากขึ้นเท่าที่ตารางกระบวนการจะใช้

ดูคำถามที่เกี่ยวข้องนี้: /server/279178/what-is-the-the-range-of-a-pid-on-linux-and-solaris

โปรดทราบด้วยว่าสิ่งที่เกี่ยวข้องกับสิ่งนี้คือ "จำนวนกระบวนการสูงสุดต่อผู้ใช้หนึ่งราย" ซึ่งเป็นมาตรการในการป้องกันผู้ใช้ที่ประสงค์ร้ายสร้างกระบวนการจำนวนมากโดยเจตนาเพื่อสร้างตารางกระบวนการทั้งหมด


7

นอกจากนี้ยังเป็นไปได้ที่จะกำหนดค่าเมล็ดที่ทันสมัยบางอย่างเพื่อกำหนด PID แบบสุ่มให้กับกระบวนการใหม่เพื่อความปลอดภัยที่ดีขึ้น อย่างน้อย Linux และ FreeBSD สามารถทำได้ด้วยการตั้งค่า sysctl และ OpenBSD ทำได้เสมอ ในกรณีเหล่านี้คุณสามารถพูดได้น้อยลงเกี่ยวกับสกีมาลำดับเลข


คุณรู้หรือไม่ว่ามีค่าใช้จ่ายเกี่ยวกับประสิทธิภาพสำหรับเรื่องนี้หรือไม่?
Bruce Ediger

@ Bruce: แพทช์แรกที่เสนอมีประสิทธิภาพกรณีที่เลวร้ายที่สุดของ O (infty) เนื่องจากการสุ่มไร้เดียงสา แต่ฉันคิดว่าพวกเขามีสิ่งที่ปลอดภัยและใช้งานได้ ฉันไม่พบสิ่งใดที่เป็นปัจจุบันมากในหัวข้อ ... ไม่ใช่ว่าฉันจะเชื่อ :)
unperson325680

5
PID แบบสุ่มดูเหมือนความปลอดภัยผ่านความสับสนกับฉัน
Johan

นั่นคือสิ่งที่มันเป็นส่วนใหญ่ ...
unperson325680

Appart จากความคิดริเริ่มของแต่ละบุคคล, ลินุกซ์ที่ใช้ในการเสนอเพียงผ่านgrsecurityแพทช์นี้ทีมงานลินุกซ์ปฏิเสธเสมอที่จะใช้มัน ( ตัวอย่างเช่นที่นี่ ) และทีมงาน grsecurity แม้กระทั่งในที่สุดก็ปรับตัวลดลงในช่วงปลายปี 2006
WhiteWinterWolf
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.