2010-03-12 169 views
4

Linux內核調度程序是init進程的一部分嗎?我的理解是,它是內部管理的內核線程的一部分,內部管理對top用戶或ps用戶不可見。請糾正我的理解。Linux內核線程 - 調度程序

是否可以通過任何內核調試器查看標準內核線程以查看標準線程如何佔用cpu活動?

-Kartlee

回答

6

內核線程可以通過「頂部」和「PS」中可以看出,可以通過具有零VM大小(它們沒有用戶空間,因此沒有用戶空間的存儲器映射)來區分。

這些是由kernel_thread(或其朋友)創建的。有些工具會爲每個CPU創建一個線程並將其與CPU綁定,因此您可以在PS列表中看到諸如aio/0 aio/1之類的東西。

另外一些工作是通過幾個延期執行機制完成的,並歸因於其他任務,通常稱爲「事件/ 0」(每個CPU一個)。在中斷中「真正」花費的時間不計算在任何地方(它只是以當時在該CPU上發生的任何任務爲代價運行)。

+1

還值得指出的是絕大多數內核代碼,包括調度程序,都在正常進程的上下文中執行。通過這種方式,大量的內核就像一個庫,而不是一個獨立的進程。 – caf 2010-03-13 09:27:04

+0

pid 0屬於schedular,而PID 1用於init進程。 – Tejas 2016-02-22 07:20:27

1

1)Linux Kernel scheduler是init進程的一部分嗎?

- > no,scheduler是一個子系統,init進程只是進程而已,並且是由調度程序調度的。

2)我的理解是,它是內部管理的內核線程的一部分,內部管理對於用戶來說無論是top還是ps都是不可見的。請糾正我的理解。

- >它是一種內核線程,通常不會顯示給用戶。

3)是否可以通過任何內核調試器查看標準內核線程以查看標準線程如何佔用cpu活動?

- >是!