我見過各種RTOS,這種策略是他們在一個或多個CPU上啓動Windows,然後在其餘CPU上運行實時程序。任何想法如何實現?我可以讓計算機從兩個CPU啓動,然後停止對其餘CPU執行嗎?我應該開始看什麼文檔?我對Linux內核有足夠的經驗,可能我可以弄清楚如何在linux下做到這一點,所以如果有什麼能夠很好地映射到linux上,你可以用它來描述它,那太棒了。強制窗口到一個CPU上,然後接管其餘的部分
回答
您可以在很少的CPU上啓動Windows,而不是輕鬆地啓動Windows。運行msconfig.exe
,轉到Boot
選項卡,單擊Advanced options...
按鈕,檢查number of processors
框並設置所需的數字(對於Windows 7,Vista和XP的確切位置可能略有不同)。
但這只是解決問題的一小部分。
您需要實現一個特殊的內核模式驅動程序來啓動這些其他CPU(Windows不會讓你從非內核模式代碼執行此類操作)。你將需要爲這些CPU和一堆其他低級別的東西實現一個線程調度器......你可能想要從Windows中竊取一些物理內存(RAM),並實現一個內存管理器,而這兩者可能是一個非常參與的事情。
要閱讀什麼?英特爾/ AMD CPU文檔(特別是APIC部分),英特爾x86多處理器規範,Windows驅動程序,Windows內部書籍,MSDN等書籍。
我無法正確理解問題。但是如果你要求核心調度進程,那麼linux可以使用集合關係來完成。按照此頁:
http://www.kernel.org/doc/man-pages/online/pages/man2/sched_setaffinity.2.html
您不能關閉Windows在一個CPU上,並期望運行您的程序像往常一樣,因爲系統調用是由線程發出系統調用發出同一CPU提供服務。系統調用依靠內核模式可訪問的每線程數據來處理系統調用,因此任何線程(用戶模式或內核模式)只能在Windows執行CPU的每個內核初始化時運行。
看起來您可能正在編寫一款真正需要運行的超級超級超級棒應用程序,例如超級快速,而且您希望其他人都能脫離內核,因此,就像,你會是最快的,但是你並不是真正意識到,如果Windows不在你的核心上,那麼你不能在該核心上使用Windows的任何部分。
如果你真的想這樣做,你必須作爲啓動驅動程序運行。啓動驅動程序將能夠保留啓動過程中初始化的內核之一,防止Windows「看到」該內核。然後,您可以手動構建自己的執行線程以在該核心上運行,但是您需要自己處理分頁,內存分配,調度,NUMA,NMI異常,頁面錯誤和ACPI事件。如果沒有bluescreening Windows,您將無法從該內核調用Windows。你會獨自一人。
你可能想要做的就是將線程鎖定到單個處理器(通過SetThreadAffinity),然後將線程的優先級提高到最大值。當你這樣做的時候,Windows仍然在你的內核上運行,以處理頁面錯誤和硬件中斷等問題,但是沒有低優先級的用戶模式線程將在該內核上運行(它們都將移動到其他內核,除非它們也鎖定到了你的內核處理器)。
- 1. R:讀取第一列,然後讀取其餘的部分
- 2. 部分上了一個新的窗口
- 3. uasort強制一個元素頂部,其餘的正確排序
- 4. 我的窗口的其餘部分在哪裏形成代碼
- 5. 小枝突破循環,然後繼續下一個div的其餘部分
- 6. LINQ:如何跳過一個,然後採取序列的其餘部分
- 7. 如何分離圖形,然後在一個圖形窗口上繪製它們?
- 8. empty()然後運行函數的其餘部分
- 9. 先搜索記錄然後結果集的其餘部分
- 10. DOM負載,然後頁面的其餘部分
- 11. 從textarea獲取一個值,然後將其粘貼到另一個窗口中?
- 12. JSON - 其餘接口
- 13. 吞噬:複製文件,然後刪除其中的一部分
- 14. 固定的菜單底部直到某個點,然後頂部的頁面其餘部分
- 15. Javascript動畫ScrollTop跳轉到頂部的窗口,然後底部
- 16. 如何使一個UserControl漂浮在xaml的其餘部分上?
- 17. Java:從INT的其餘部分拆分最後一位數
- 18. 製作一個水平線上佔用空間的其餘部分文字
- 19. 得到一個字符串的其餘部分用JavaScript
- 20. 強制數據鏈接打開一個新窗口
- 21. 製作一個總是隱藏在其他窗口後面的tkinter窗口
- 22. 強制用戶觀看視頻部分,然後提供下一個按鈕
- 23. 如何獲得一個特定的行作爲第一個結果,然後結果集的其餘部分
- 24. 在Android上強制CPU/ABI到armeabi-v7a
- 25. jQuery - 強制關閉外部鏈接窗口
- 26. 強制在一個部分的形式,而不是後
- 27. 複製一個外部的mp3 url鏈接到一個表格,然後上傳到自己的服務器
- 28. 在Mac上強制Flash wmode =窗口
- 29. 如何將一個窗口連接到另一個窗口
- 30. WP_Query顯示一個特定的帖子,然後顯示其餘
我會冒險猜測這通常是使用虛擬機管理程序完成的,因此Windows實際上是在輕量級虛擬機中運行的。 –
我不明白爲什麼人們低估了這個問題。這對我來說似乎是合法的。當你投降時請添加評論。 – Kent