คำถามนี้เกี่ยวกับความเป็นไปได้ในการปรับแต่งเคอร์เนลของ Windows ในแบบเรียลไทม์เช่น oses และวิธีดำเนินการ เป็นหัวข้อที่ค่อนข้างแคบโดยเฉพาะซึ่งต้องการความรู้ในระดับลึก - คุณอาจรู้ด้วยเช่นกัน
ฉันอยู่บนแพลตฟอร์ม WS2016 x64 และฉันสามารถตั้งค่าความละเอียดของตัวจับเวลาได้เพียง 500us (0.5 มิลลิวินาที) เรียกNtSetTimerResolution()
ใช้ฟังก์ชันภายในntdll.dll
ไลบรารี ฉันเดาว่าค่านั้นผูกติดกับผู้ปกครองเวลา
แต่ผมต้องการที่จะเพิ่มไปยัง 100us การวัดอาจเกี่ยวข้องกับการโทรNtDelayExecution()
ในQueryPerformanceCounter()
สายหลายครั้งภายในลูปแล้วทำการวิเคราะห์สถิติเช่น jitter, std deviation เป็นต้น
สิ่งนี้ควรทำอย่างไร? มีการปรับแต่งรีจิสทรี / ไฟล์ใดบ้างที่ฉันสามารถตั้งค่า windows sheduler timeslice ของ arbiraty ได้?
PS บางคนอาจถามว่า " ทำไมคุณต้องการมัน? " หรือระบุว่า "อย่าทำผิด! " ฉันละทิ้งความคิดแบบนั้นและจะตอบคำถามต่อไป
- นี่เป็นเพียงการทดลองใช้ซอฟต์แวร์ มันเป็นเพียงสำหรับการทดสอบความเป็นไปได้และผลทางกายภาพของการทำมัน
- ฉันทราบว่าสามารถนำไปสู่ปัญหาที่อาจเกิดขึ้นเช่นเวลา cpu พิเศษที่สูญเสียไปเพียงแค่การสลับบริบทความไม่เสถียรของระบบการไม่ตอบสนองการสูญเสียข้อมูลและปัญหาใด ๆ ก็ตามที่อาจทำให้เกิด ฉันยอมรับผลกระทบเชิงลบใด ๆ จากการทำล่วงหน้าและรับผิดชอบทั้งหมด แม้ว่าควันและประกายไฟจะออกมาจากเครื่องของฉัน :)
- ตาม googling หรือค้นหาที่นี่ - ofc ฉัน alredy ทำมันและล้มเหลวในการค้นหาข้อมูลที่เป็นประโยชน์เพราะหัวข้อนี้ค่อนข้างแคบเกี่ยวข้องกับ OS shedulers ทำงาน และแทบไม่มีจุดหมายที่จะทำบนเครื่อง windows ใด ๆ ฉันรู้ว่าฉันไม่สามารถเปลี่ยนเป็นเวลาจริงได้ การค้นหาไซต์นี้ "sheduler timeslice" ไม่ให้ผลลัพธ์