Linux核心線程

來源:互聯網
上載者:User

標籤:並發   null   驅動   訊號   作用   建立   不同   注釋   檔案   

<背景>

核心線程類似於使用者進程,通常用於並並發處理性質的任務,並且可以搶佔調度。不同於使用者進程,核心線程位於核心空間,並且可以訪問核心功能和核心資料。 <建立核心線程>a:ret = kernel_thread(mythread,null,CLONE_FS | CLONE_FILES | CLONE_SIGHAND | SIGCHLD)參數注釋:        CLONE_FILES:大開的檔案分享權限設定        CLONE_SIGHAND:訊號處理常式共用註:由於核心線程通常對裝置驅動程式起到輔助作用,往往在裝置初始化的時候被建立。線上程開始的時候會調用函數daemonize(),該函數會執行初始化的任務,之後將父進程改為kthreadd(每一個Linux進程都會有一個父進程,在子進程沒有全部退出的情況下殺死父進程,會導致子進程成為殭屍進程,繼續消耗電腦資源),將父進程改為ktheadd可以避免這種情況。        daemonize()在預設情況下會阻止所有訊號,所以如果想象處理訊號,就應該調用函數allow_signal()來使能它。如果核心中沒有訊號可以調用函數signal_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.