ตั้งค่าลำดับความสำคัญของกระบวนการเป็นสูง: เป็นอันตรายหรือไม่


8

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

นอกจากนี้ฉันจะทำสิ่งนี้โดยเปลี่ยนเป้าหมายทางลัดได้อย่างไร คำสั่งคืออะไร?


การตั้งค่า "เหนือปกติ" (windows 7) ปลอดภัยกว่า การสนทนาบางอย่างที่นี่ ... stackoverflow.com/questions/1663993/…
Moab

1
มันอันตรายมาก ปัญหาที่สำคัญคือการผกผันลำดับความสำคัญซึ่งผลในกระบวนการที่มีความสำคัญสูงขึ้นจริงได้รับความสำคัญได้อย่างมีประสิทธิภาพที่ต่ำกว่าเพราะสามารถปิดกั้นไปเรื่อย ๆ โดยกระบวนการลำดับความสำคัญต่ำ
David Schwartz

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

2
@David Schwartz, Cutler ได้ออกแบบตัวกำหนดตารางเวลาของ Windows เพื่อหลีกเลี่ยงการหยุดชะงักเนื่องจากลำดับความสำคัญกลับกัน จากsupport.microsoft.com/kb/96418 , "ตัวจัดกำหนดการ Windows NT แก้ปัญหานี้โดยการเพิ่มระดับความสำคัญของเธรดที่พร้อมใช้งานแบบสุ่ม (ในกรณีนี้คือผู้ที่มีลำดับความสำคัญต่ำล็อค) เธรดลำดับความสำคัญต่ำรันนานพอ เพื่อปล่อยล็อค (ออกจากส่วนที่สำคัญ) และเธรดที่มีลำดับความสำคัญสูงจะได้รับการล็อคกลับหากเธรดที่มีลำดับความสำคัญต่ำจะไม่ได้รับเวลา CPU ที่เพียงพอในการปลดล็อคในครั้งแรก ในรอบกำหนดการถัดไป "
Nicole Hamilton

@NicoleHamilton ดังนั้นบางครั้งโปรแกรมจะเปิดสองสามครั้งพร้อมกันหากไม่ได้เปิดในคลิกแรก (และคุณคลิกสองสามครั้ง) เนื่องจากมีภาระสูง
Simon Verbeke

คำตอบ:


6

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

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

นี่คือวิธีการเปลี่ยนกระบวนการผ่านบรรทัดคำสั่งซึ่งคุณสามารถใส่ไว้ในทางลัด:

http://support.microsoft.com/kb/191771


1
บน Windows มันจะทำให้กระบวนการอื่น ๆ ไม่ทำงานอย่างง่ายดาย (รวมถึงตัวจัดการงานเอง)
user1686

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

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

3

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

หากคุณมีหลายคอร์และกระบวนการเป็นเธรดเดี่ยว: ไปข้างหน้าตั้งค่าตามที่คุณต้องการ แกนประมวลผลอื่น ๆ ของคุณจะยังคงว่างแม้เมื่อแกนหนึ่งอยู่ที่ 100% โหลดตลอดเวลา

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

โปรแกรมอื่น ๆ จะพยายามทำทุกแกน ในกรณีนี้สูงอาจใช้ได้ แต่ต้องทดลอง

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

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


+1 ข้อดี: แอพพลิเคชั่นแบบเธรดเดียวไม่มีปัญหากับเครื่องมัลติคอร์ไม่ว่าจะคำนวณด้วยวิธีการแบบใด
Nicole Hamilton

อย่าลืมว่ากระบวนการเตือนที่มีลำดับความสำคัญสูงในขั้นต้น [เป็นหลัก] แม้ว่าจะส่งผลกระทบต่อแกนประมวลผลเดียวเท่านั้นก็สามารถล็อคระบบการซิงโครไนซ์ระบบโกลบอลได้เป็นระยะเวลาที่ผิดปกติ
dyasta

1

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


0

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

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

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

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