2
ทำไมฉันสามารถลดความสำคัญของกระบวนการโดยใช้ฟังก์ชั่น nice () ด้วยการอนุญาตจากผู้ใช้ทั่วไป (ยกเว้น ROOT) ใน linux?
ดังที่ฉันเข้าใจผู้ใช้ทุกคนใน linux สามารถเปลี่ยนลำดับความสำคัญของทุกกระบวนการโดยใช้คำสั่ง nice และ renice นอกจากนี้ฉันรู้ว่าผู้ใช้ทั้งหมดสามารถเพิ่มลำดับความสำคัญของกระบวนการและผู้ใช้เท่านั้นที่สามารถลดลำดับความสำคัญนี้คือ ROOT เมื่อฉันทดสอบสิ่งนี้ในสภาพแวดล้อมของ Terminal โดยใช้คำสั่งเหล่านี้ทุกอย่างก็โอเค หมายความว่าเมื่อฉันต้องการลดระดับความสำคัญของกระบวนการระบบจะออกข้อความ "การปฏิเสธสิทธิ์" ตามที่ฉันรู้ด้วยโดยค่าเริ่มต้นกระบวนการทั้งหมดจะทำงานโดยมีลำดับความสำคัญ0ดังนั้นเมื่อฉันต้องการตั้งค่าลำดับความสำคัญของกระบวนการด้วยจำนวนลบระบบจะต้องออกข้อความแสดงข้อผิดพลาด เมื่อฉันรันโปรแกรมภาษา C นี้: #include<stdio.h> #include<unistd.h> void main() { int n=10,r; r=nice(n); while(1) printf("Test); } ฉันคาดว่าระบบจะแสดงข้อผิดพลาด แต่โปรแกรมทำงานได้โดยไม่มีปัญหา! แม้ว่าโปรแกรมจะทำงานโดยได้รับอนุญาตจากผู้ใช้ทั่วไป ฉันต้องการที่จะรู้ว่าทำไมเมื่อฉันต้องการลดลำดับความสำคัญของกระบวนการโดยใช้คำสั่ง renice ตามสิ่งที่คาดว่าระบบจะแสดงข้อผิดพลาด แต่เมื่อฉันต้องการลดลำดับความสำคัญของกระบวนการโดยการใช้nice()ฟังก์ชั่น ประโยคนี้All users just can increase the priority of process and the only user that can …