程序切換是個什麼概念?

時間 2021-06-05 11:33:58

1樓:碼農的荒島求生

程序切換與執行緒切換的乙個最主要區別就在於程序切換涉及到虛擬位址空間的切換而執行緒切換則不會。因為每個程序都有自己的虛擬位址空間,而執行緒是共享所在程序的虛擬位址空間的,因此同乙個程序中的執行緒進行執行緒切換時不涉及虛擬位址空間的轉換。

舉乙個不太恰當的例子,執行緒切換就好比你從主臥走到次臥,反正主臥和次臥都在同乙個房子中(虛擬位址空間),因此你無需換鞋子、換衣服等等。但是程序切換就不一樣了,程序切換就好比從你家到別人家,這是兩個不同的房子(不同的虛擬位址空間),出發時要換好衣服、鞋子等等,到別人家後還要再換鞋子等等。

因此我們可以形象的認為執行緒是處在同乙個屋簷下的,這裡的屋簷就是虛擬位址空間,因此執行緒間切換無需虛擬位址空間的切換;而程序則不同,兩個不同程序位於不同的屋簷下,即程序位於不同的虛擬位址空間,因此程序切換涉及到虛擬位址空間的切換,這也是為什麼程序切換要比執行緒切換慢的原因。

2樓:朱涵俊

程序是資源組,程序切換意味著資源組切換。最常見的就是記憶體空間。現代作業系統不同程序的使用者空間都是隔離的,不同程序之間不能相互訪問。

要相互訪問只能用共享記憶體,共享記憶體是在作業系統開闢的公共空間上面的,或者作業系統在同一塊物理記憶體,然後對映的各自不同的程序中。

那程序切換,就是頁表切換,頁表切換了才能實現不同程序的使用者空間相互隔離。

執行緒切換分幾種情況,一是程序內切換,即程序的乙個執行緒切換到另外乙個執行緒,那麼頁表不需要變化。另外就是切換到另外程序的執行緒,那麼先要切換頁表,才能切換執行緒。

至於排程是按執行緒排程,按程序排程,都可以的,看作業系統實現。比如有的作業系統是看切換的目標執行緒,如果目標執行緒跟當前執行緒不是乙個程序,就進行程序切換。有的作業系統就是先切換程序,程序切換了,才能切換到其他程序的執行緒。

3樓:崎車軩仁

程序切換簡單理解可以認為是切換頁表。

最早的系統只有任務,沒有程序以及執行緒的這種概念。乙個任務既是執行單元也是資源管理單元。後來隨之系統的進步,分離了執行單元和資源管理單元,於是出現了程序和執行緒。

現代主流系統還為執行緒提供專屬的資源管理介面(執行緒本地儲存)。簡單說,同程序的執行緒是共享程序內所有資源的,其本質就是共享記憶體。

OTT是個什麼概念?

謝么 吆喝 烤魷魚嘞烤魷魚嘞,十五塊錢倆,十五塊錢倆!老闆,你這鐵板魷魚怎麼賣?十五塊錢倆 我買的多,能便宜不?你買多少?五百塊錢 嗯 那我給你十五塊錢四個吧 這20個烤出來了,您先坐這兒吃著,我接著烤 好的,老闆你接著烤。吆喝 烤魷魚嘞,烤魷魚嘞,十五塊錢仨,十五塊錢仨!OTT 本身就是乙個人為創...

神是個什麼概念?

2021霖泰數控 我給神定論 神就是時間,時間就是神,他掌控世間所有。為什麼有命運,因為時間的安排,為什麼時間萬物能運動能以規則方式不斷運轉,因為時間,時間是神,如果有多神論那麼時間就是最高神,時間靜止,世間萬物將等同於死亡,時間他也規定了你的一生,是否長壽,意外,等等。有人說科學的盡頭是神學,神學...

身高186是個什麼概念?

我要快樂學習 本人192。買褲子必須買最大號,要麼不夠長,雖然穿著肥。家裡的門框要稍微低頭才能過。大學宿舍睡覺腳得伸到外面。每次看見親戚都會聽到 咋長這麼高啊,以後去打籃球吧!有一說一,好處不多。186真的是個非常合適的身高。 暮姒凜醬 男生的話,恭喜你,你這個身高是大多數女孩子喜歡的,至少在我認識...