linux核心啟動的最佳化

來源:互聯網
上載者:User


linux核心啟動需要時間,並且需要很多的時間,這是逃避不了的,瞭解linuxbios的朋友可能知道,linuxbios作為bios和別的bios相比啟動的特別快,因為它把硬體檢測的任務交給了linux核心而不是bios,畢竟bios檢測完了核心再檢測是一種浪費,為了bios的效能,把工作推給核心是不負責任的行為嗎?其實不是,實際上啟動時最耗時的操作就是硬體檢測和初始化,正是因為如此,linuxbios才把如此艱巨的任務避開,一併給了作業系統核心。

     那麼核心能把這些任務給誰呢?它必須自己解決之,因為它是基礎。為了加快啟動速度,linux設計者將硬體檢測和初始化的任務交給了很多的核心線程,這樣的話,一個核心線程在檢測初始化一個硬體等待的時候就可以去檢測初始化另一個硬體,一個並行進行,在多cpu機器上會更好。依照linux的傳統,一切都是進程,最起碼你得有這個意思想讓任務成為進程,在核心初始化期間,核心維護了兩個鏈表,一個是pending鏈表,一個是running鏈表,將要檢測餅初始化的硬體相關的函數加入pending鏈表就不用管了,linux強大的進程調度機制會很好的處理諸多硬體初始化核心線程的執行,另外,在核心初始化完成以後,這些核心線程的機制介面將長期保留,一旦有繁瑣的任務需要並發執行仍然可以用和硬體檢測初始化的核心線程的方式來完成,這個機制十分靈活。

     我有一點不解的是,為何不能用更加統一的工作隊列來實現呢?難道工作隊列的並行性不好嗎?

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.