乙個多核cpu機器上,乙個程序內的所有執行緒都在乙個核心上跑嗎,還是可以同時在多核上執行。

時間 2021-06-15 14:46:31

1樓:BianChengNan

cpu 眼裡沒有程序的概念,程序只提供乙個 cr3。

可以簡單的理解 cpu 的排程單位是執行緒。

乙個cpu核心有一套暫存器,可以執行乙個任務(一般是執行緒),所以乙個核心同一時刻只能執行乙個執行緒。(不論這個執行緒是哪個程序的,cpu眼裡沒有程序的概念)。每隔一定時間(沒記錯的話是20ms)會切換執行緒(可能是同乙個程序的執行緒,也可能是另外乙個程序的執行緒,如果是其它程序的執行緒,會切換cr3)。

乙個多核cpu機器上,乙個程序內的所有執行緒都在乙個核心上跑嗎,還是可以同時在多核上執行。?

如果是同時在多核上執行,那和屬於其他程序的執行緒的競爭關係是什麼樣的。

windows 下,分 32 個執行緒優先順序,優先順序高的會優先被排程。

是同時只能執行屬於同乙個程序上下文的執行緒,還是屬於兩個程序的執行緒可以分別占有各自的核心

可以執行不同程序的執行緒,如果切換執行緒時,是不同程序的執行緒,會切換cr3。

如上表述都是基於 windows 系統的,linux 應該類似。如有理解不到位的地方,請指正。

參考資料

海哥的核心課程

windows核心情景分析

2樓:駿馬金龍

執行緒3種模型:

使用者級執行緒(1:N):乙個程序對應乙個作業系統執行緒(因為每個程序都有乙個主線程),並在使用者空間實現多個執行緒,作業系統不知道這些執行緒的存在,這些執行緒由程序自身負責排程和管理

核心級執行緒(1:1):程式的每個執行緒都對應乙個作業系統執行緒,由作業系統負責管理和排程這些執行緒

混合模式(M:N):即一部分核心執行緒,一部分使用者空間的執行緒

如果是使用者級執行緒,那麼作業系統只知道每個程序裡的主線程,作業系統會去排程管理這個主線程。

如果是核心級執行緒,作業系統會管理和排程這些執行緒,雖然乙個程序內可能有多個執行緒,但因為都屬於作業系統執行緒,所以所有作業系統執行緒都是被"公平"對待的。

乙個已婚男士愛上乙個已婚女士?

迷鹿 你的想法無非就是想要躍躍欲試,來一場婚外戀情,激情,刺激,浪漫,證明你有魅力,也證明對方一樣對你的認可喜歡之情,如果無欲無求,就不會想知道對方的想法。1你這不是愛,頂多是喜歡,很淺的喜歡和愛慕之情。因為你們之前平常的朋友相處,沒有真正的了解對方,也沒有感情的磨合過程,談不上愛,只能勉強算是愛慕...

乙個不可知的機器是乙個擁有自由意志的機器嗎?

孤獨卻幸福 恰好本人的業餘專業即是AI與人類意識與行為方面的研究,所以淺淺的談下拙見吧。首先,若要精確追蹤這個問題,對自由意志這個概念需要定義一下,不然你不會清楚自己的問題所涵蓋的邊界和範圍,故而回答起來難度便會加大。本人以為,我們人類心目中的多數對事物的看法基本是對事物之間關係的主觀連線,而非事物...

如何喜歡上乙個明星?

白水煮一切 等著吧,不是不愛時候未到。我就是內種覺得這輩子是不可能喜歡明星的人,看到電視上很多明星偶像知道確實都帥也謙虛努力還正能量但是就是無感 去年機緣巧合從電腦上看到了大張偉的 花 靜止 live版,然後就進了超話,被推薦去b站搜大張偉,一發不可收拾的熬了幾個通宵看大張偉,最後喜歡上了這個 36...