程式釋放CPU,作業系統如何得知

時間 2021-05-31 09:08:09

1樓:悽臨雨

目前其他6個答案,除了旺旺的答案,其他均有錯漏。

程式釋放cpu≠程式執行完。

當執行緒呼叫sleep系函式,或核心級同步物件函式(各種鎖、同步IO讀取暫時無法執行時),均屬於休眠

執行緒退出是退出

休眠和退出均會主動釋放cpu

搶占式時間片到了是被動釋放cpu

主動釋放最終會呼叫作業系統提供的函式,所以作業系統知道。

被動釋放是作業系統的排程演算法搞的鬼,所以作業系統也知道。

2樓:呵呵一笑百媚生

程序自己想要結束的時候,是會呼叫exit之類的系統呼叫通知作業系統的,在高階語言C的層面就是main函式裡的return語句。

另外,現代計算機系統中,並不是只有當乙個程序結束以後,別的程式才能分到CPU時間的,詳見作業系統如何介入到我的程式的? - 呵呵一笑百媚生的回答

3樓:朱涵俊

一種是搶占式,不需要處理完,就把cpu時間給其他執行緒了。執行緒結束有api呼叫,結束之後以後就不給cpu時間了。

一般以1ms為單位,分割時間片,相同優先順序執行緒輪流執行。1ms什麼概念,大概可以執行100萬機器指令(1G主頻)

還有是協程,是主動讓出cpu時間,有api呼叫。

搶占式執行緒也可以有多個協程。

4樓:旺旺

要是不調作業系統的系統呼叫(比如schedule, exit之類的),你這程式能釋放CPU?我大作業系統分分鐘再把CPU糊你臉上!!

64位作業系統 CPU 如何相容32位程式 軟體 請看詳情。?

北極 要保證64位相容性,無非就是兩點 1.硬體相容 指令層面上 2.軟體相容 作業系統 因為以上兩點都能保證,所以自然32位程式能在相容32位程式的作業系統 CPU上跑。具體的形式 1.硬體相容 現有的x86架構的CPU,作業系統進入64位的工作模式都是相容32位的,即使在long mode模式下...

作業系統和 CPU 哪個研發更難?

不會開車的老司機 當然是cpu 作業系統你可能要熬很久但你總能做出來有優點就會有人用 Cpu 君不見Pc端兩位大佬其中一位能活著靠的是什麼?某A 我要破產啦!我不幹了!某牙膏 小老弟差啥你說!錢不是問題 變色龍 都可以簡單啊,啥也不做,也可叫作業系統,玩票性質的作業系統唄,只列印一行hellowor...

作業系統如何增加對CPU架構的支援?

劉瑞祥 一般都是晶元廠家來做或者晶元廠家委託第三方來做,畢竟不同的晶元有可能指令集都不一樣,架構也不一樣,還有可能要提供專門的編譯器 陳明威 只見過linux核心。問題1 硬編碼實現 問題2 linux是由社群 發行商開發,硬體廠商會提供一定幫助問題3 會聽user guide,類似微控制器問題4 ...