การใช้“ ลำดับความสำคัญ” แบบเรียลไทม์สำหรับกระบวนการคืออะไร


12

จากประสบการณ์ของฉันการตั้งค่ากระบวนการใด ๆ ให้เป็นเรียลไทม์จะทำให้คอมพิวเตอร์ของคุณช้าลงเป็นหอยทาก การใช้การตั้งค่านี้คืออะไรหากคอมพิวเตอร์ของคุณใช้งานไม่ได้


2
หากคุณมีโปรเซสเซอร์หลายคอร์หรือระบบมัลติโปรเซสเซอร์คุณสามารถตั้งค่าความสัมพันธ์สำหรับแกนเดียวเท่านั้น ด้วยวิธีนี้ส่วนที่เหลือของระบบจะยังคงตอบสนองและคุณสามารถเพลิดเพลินไปกับส่วนที่เหลือของกระบวนการแบบเรียลไทม์ หลักสูตรนี้ใช้งานได้ดีสำหรับกระบวนการที่ต้องใช้เพียงแกนเดียวเท่านั้นในการทำงาน
AndrejaKo

คำตอบ:


7

สิ่งที่คุณอธิบายด้วยค่าใช้จ่ายในการชะลอคอมพิวเตอร์ส่วนที่เหลือลงสู่การรวบรวมข้อมูลนั้นจะเรียกใช้กระบวนการแบบเรียลไทม์โดยให้ความสำคัญกับมันสูงกว่าสิ่งอื่นใด นี่เป็นสิ่งจำเป็นสำหรับแอปพลิเคชั่นที่สำคัญเวลาผู้คนส่วนใหญ่ไม่เห็นสิ่งเหล่านี้ในชีวิตประจำวันของพวกเขา ...


โปรแกรมทั่วไปบางอย่างเช่นเซิร์ฟเวอร์เสียง (PulseAudio และ JACK เป็นสองตัวอย่าง Linux) ใช้เธรดลำดับความสำคัญตามเวลาจริง
user1686

@grawity: JACK ไม่ใช่เซิร์ฟเวอร์ แต่เป็นเพียงชุดพัฒนา ทั้งสองเป็นข้ามแพลตฟอร์ม จุดที่ดีแม้ว่าสิ่งที่เสียงต้องการลำดับความสำคัญตามเวลาจริง แต่ฉันพูดจากมุมมองของ Windows 7 ที่กระบวนการเหล่านี้คุณระบุไม่ได้รับความสำคัญแบบเรียลไทม์ Windows มีบางสิ่งที่เรียกว่า Multimedia Class Scheduler สำหรับกระบวนการเช่นนี้ ...
Tamara Wijsman

คืออะไรjackdแล้วถ้าไม่เซิร์ฟเวอร์เสียง? (จากสิ่งที่ฉันเข้าใจจนถึงขณะนี้ทั้ง PA และแจ็คทำงานในลักษณะเดียวกันกับที่พวกเขามีทั้งเซิร์ฟเวอร์เสียงและห้องสมุด / ชุดอุปกรณ์เพื่อเข้าถึง ... )
user1686

ไม่ได้ทำให้ชุดกลายเป็นเซิร์ฟเวอร์ทันที เรากำลังพูดถึงกระบวนการต่าง ๆ ที่นี่ไม่ใช่หัวข้อ ...
Tamara Wijsman

1
ตัวอย่างอื่น ๆ ของแอพแบบเรียลไทม์คือแอพทางการแพทย์และหุ่นยนต์ที่ควบคุมโดยตรง สิ่งที่ความแตกต่างระหว่างการทำงานที่ถูกต้องและความล้มเหลวของ 10 where (ที่ความล้มเหลวอาจเกี่ยวข้องกับหุ่นยนต์ขับรถออกจากหน้าผาหรือผู้ป่วยที่สัมผัสกับรังสีมากเกินไป)
ligos

2

สิ่งนี้อาจดูเหมือนไม่จำเป็น แต่เมื่อกระบวนการเริ่มต้นพารามิเตอร์สามารถส่งผ่านได้ซึ่งทำให้กระบวนการทำงานในระดับความสำคัญต่าง ๆ ตัวจัดการงานแสดงสิ่งนี้เป็นการตั้งค่าเพิ่มเติมเนื่องจากเป็นตัวเลือกที่สามารถตั้งค่าสำหรับกระบวนการโดยซอฟต์แวร์ที่เริ่มต้นการดำเนินการ ซอฟต์แวร์ส่วนใหญ่ทำงานภายใต้ระดับ "ปกติ" แต่บางครั้งคุณอาจเห็นบางรายการที่ทำงานในระดับต่ำกว่าโดยค่าเริ่มต้น ฉันไม่เคยเห็นซอฟต์แวร์ที่เริ่มต้นในสถานะปกติด้านบน

นอกจากนี้ยังเป็นมูลค่าการกล่าวขวัญว่ามีกรณีเมื่อกระบวนการสามารถทำงานที่การตั้งค่าลำดับความสำคัญสูงสุดและดูเหมือนจะไม่ส่งผลกระทบต่อประสิทธิภาพของระบบของคุณ ตัวอย่างเช่นหากกระบวนการเริ่มต้นและได้รับมอบหมายให้ทำงานกับ 1 ในเพียง 8 CPU แกนการตั้งค่าลำดับความสำคัญของกระบวนการเพื่อ "เรียลไทม์" จะหมายถึงว่ามันจะใช้หน่วยประมวลผลหนึ่งปล่อยให้ 7 ใช้ ระบบปฏิบัติการและซอฟต์แวร์อื่น ๆ ในกรณีนี้การดำเนินการตามเวลาจริงอาจแทบไม่มีผลกระทบใด ๆ ต่อระบบ แต่ให้ประสิทธิภาพที่เหมาะสมในกระบวนการที่มีลำดับความสำคัญสูง

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

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

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

ในฐานะที่เป็นเรื่องส่วนตัวมีเพียงกระบวนการเดียวที่ฉันเปลี่ยนด้วยตนเองเป็นครั้งคราว - แอปพลิเคชันการบีบอัดซอฟต์แวร์ ฉันไม่ต้องเปิดเครื่องรูดไฟล์ขนาดใหญ่ในเวลานาน แต่ฉันพบว่าถ้าฉันรีบเร่ง ( อะแฮ่มเป็นคนใจร้อน) ฉันสามารถเร่งกระบวนการลำดับความสำคัญและเพิ่มประสิทธิภาพในระดับปานกลาง เนื่องจากแอปพลิเคชันเหล่านี้เริ่มงานที่ต้องทำงานและจากนั้นปิดเมื่อพวกเขาเสร็จสิ้นฉันไม่ต้องกังวลเกี่ยวกับการยกเลิกการตั้งค่าตัวประมวลผลเพราะเมื่อแอปพลิเคชันเสร็จสิ้นการแยกข้อมูลมันจะหยุดเอง นี่เป็นครั้งเดียวที่ฉันพบว่ามีประโยชน์เป็นการส่วนตัวในการควบคุมความเร็วตัวประมวลผลผ่านการจัดการระบบ


1
ในฐานะโปรแกรมเมอร์ฉันไม่สามารถนึกถึงสถานการณ์ที่ให้โปรแกรมมีทรัพยากรมากขึ้นที่จะเกิดความผิดพลาด
TheLQ

ในฐานะโปรแกรมเมอร์ใช่ แต่การตั้งค่าโปรเซสให้ทำงานในระดับที่เฉพาะเจาะจงสามารถทำให้เกิดปัญหาได้โดยเฉพาะอย่างยิ่งหากซอฟต์แวร์ถูกเขียน (อาจแย่ลง) เพื่อรันพร้อมกับกระบวนการอื่น คำแนะนำของฉันมาจากประสบการณ์ทั้งสองและด้วยความเข้าใจว่าผู้ใช้ไม่ใช่ผู้พัฒนาทั้งหมด การจัดลำดับความสำคัญของกระบวนการที่กำลังทำงานอยู่ซึ่งคุณยังไม่ได้พัฒนาสามารถทำให้เกิดพฤติกรรมที่ไม่คาดคิดได้อย่างแน่นอน ฉันไม่ต้องการที่จะทำให้ตกใจใด ๆ แต่ฉันก็ไม่ต้องการที่จะกระตุ้นให้ผู้ใช้รายอื่นยุ่งกับการตั้งค่ากระบวนการหากมีโอกาสที่การเปลี่ยนแปลงของพวกเขาอาจสร้างความเสียหาย
RLH

0

ฉันใช้ลำดับความสำคัญแบบเรียลไทม์เพื่อเร่งเกมบนแล็ปท็อปที่ไม่ใช่เกมของฉัน ฉันไม่สนใจเกี่ยวกับกระบวนการพื้นหลังเมื่อฉันอยู่ในเกมและฉันได้รับประสบการณ์ที่สนุกสนานมากขึ้นจากการจัดสรรพลังการประมวลผลของฉันด้วยวิธีนี้

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