- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務經營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網協(xié)會理事單位
- 安全聯(lián)盟認證網站身份V標記
- 域名注冊服務機構許可:滇D3-20230001
- 代理域名注冊服務機構:新網數(shù)碼
1.kswapd0
系統(tǒng)每過一定時間就會喚醒kswapd,看看內存是否緊張,如果不緊張,則睡眠,在kswapd中,有2個閥值,pages_hige和pages_low,當空閑內存頁的數(shù)量低于pages_low的時候,kswapd進程就會掃描內存并且每次釋放出32個free pages,直到free page的數(shù)量到達pages_high.
Linux uses kswapd for virtual memory management such that pages that have been recently accessed are kept in memory and less active pages are paged out to disk.(what is a page?)…Linux uses manages memory in units called pages.So,the kswapd process regularly decreases the ages of unreferenced pages…and at the end they are paged out(moved out) to disk
2.kjournald
(1).journal:記錄所有文件系統(tǒng)上的元數(shù)據(jù)改變,最慢的一種模式。
logs all filesystem data and metadata changes. The slowest of the three ext3 journaling modes, this journaling mode minimizes the chance of losing the changes you have made to any file in an ext3 filesystem.
(2).ordered:默認使用的模式,只記錄文件系統(tǒng)改變的元數(shù)據(jù),并在改變之前記錄日志。
only logs changes to filesystem metadata, but flushes file data updates to disk before making changes to associated filesystem metadata. This is the default ext3 journaling mode.
(3).writeback :最快的一種模式,同樣只記錄修改過的元數(shù)據(jù),依賴標準文件系統(tǒng)寫進程將數(shù)據(jù)寫到硬盤
only logs changes to filesystem metadata but relies on the standard filesystem write process to write file data changes to disk. This is the fastest ext3 journaling mode.
3.pdflush
pdflush用于將內存中的內容和文件系統(tǒng)進行同步。
比如說:當一個文件在內存中進行修改,pdflush負責將它寫回硬盤。每當內存中的垃圾頁(dirty page)超過10%的時候,pdflush就會將這些頁面?zhèn)浞莼赜脖P。這個比率是可調節(jié)的,通過/etc/sysctl.conf中的 vm.dirty_background_ratio項默認值為10也可以。
4.kthreadd
這種內核線程只有一個,它的作用是管理調度其它的內核線程。
它在內核初始化的時候被創(chuàng)建,會循環(huán)運行一個叫做kthreadd的函數(shù),該函數(shù)的作用是運行kthread_create_list全局鏈表中維護的kthread。可以調用kthread_create創(chuàng)建一個kthread,它會被加入到kthread_create_list鏈表中,同時kthread_create會weak up kthreadd_task。kthreadd在執(zhí)行kthread會調用老的接口——kernel_thread運行一個名叫“kthread”的內核線程去運行創(chuàng)建的kthread,被執(zhí)行過的kthread會從kthread_create_list鏈表中刪除,并且kthreadd會不斷調用scheduler 讓出CPU。這個線程不能關閉。
5.migration
這種內核線程共有32個,從migration/0到migration/31,每個處理器核對應一個migration內核線程,主要作用是作為相應CPU核的遷移進程,用來執(zhí)行進程遷移操作,內核中的函數(shù)是migration_thread()
屬于2.6內核的負載平衡系統(tǒng),該進程在系統(tǒng)啟動時自動加載(每個 cpu 一個),并將自己設為 SCHED_FIFO 的實時進程,然后檢查 runqueue::migration_queue 中是否有請求等待處理,如果沒有,就在 TASK_INTERRUPTIBLE 中休眠,直至被喚醒后再次檢查。migration_thread() 僅僅是一個 CPU 綁定以及 CPU 電源管理等功能的一個接口。這個線程是調度系統(tǒng)的重要組成部分。
6.watchdog
這種內核線程共有32個,從watchdog/0到watchdog/31, 每個處理器核對應一個watchdog 內核線程,watchdog用于監(jiān)視系統(tǒng)的運行,在系統(tǒng)出現(xiàn)故障時自動重新啟動系統(tǒng),包括一個內核 watchdog module 和一個用戶空間的 watchdog 程序。
在Linux 內核下, watchdog的基本工作原理是:當watchdog啟動后(即/dev/watchdog設備被打開后),如果在某一設定的時間間隔(1分鐘)內/dev/watchdog沒有被執(zhí)行寫操作, 硬件watchdog電路或軟件定時器就會重新啟動系統(tǒng),每次寫操作會導致重新設定定時器。
7.events
這種內核線程共有32個,從events/0到events/31, 每個處理器核對應一個 events內核線程。用來處理內核事件很多軟硬件事件(比如斷電,文件變更)被轉換為events,并分發(fā)給對相應事件感興趣的線程進行響應。
8.kblockd
這種內核線程共有32個,從kblockd/0到kblockd/31, 每個處理器核對應一個 kblockd 內核線程。用于管理系統(tǒng)的塊設備,它會周期地激活系統(tǒng)內的塊設備驅動。如果擁有塊設備,那么這些線程就不能被去掉。
9.aio
這種內核線程共有32個,從aio/0到aio/31, 每個處理器核對應一個 aio 內核線程, 代替用戶進程管理I/O,用以支持用戶態(tài)的AIO(異步I/O),不應該被關閉。
10.rpciod
這種內核線程共有32個,從rpciod/0到rpciod/31, 每個處理器核對應一個rpciod內核線程,主要作用是作為遠過程調用服務的守護進程,用于從客戶端啟動I/O服務,通常啟動NFS服務時要用到它。
總結
進程是操作系統(tǒng)上非常重要的概念,所有系統(tǒng)上面跑的數(shù)據(jù)都會以進程的類型存在。在 Linux 系統(tǒng)當中:觸發(fā)任何一個事件時,系統(tǒng)都會將它定義成為一個進程,所以,進程是Linux程序的唯一的實現(xiàn)方式。
提交成功!非常感謝您的反饋,我們會繼續(xù)努力做到更好!
這條文檔是否有幫助解決問題?
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP