質問するログイン新規登録
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

1回答

1038閲覧

linux カーネルスレッドの指すものの違い

akiyama3284pga

総合スコア186

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2022/03/06 05:56

0

0

https://waysaku.hatenablog.com/entry/2017/03/27/122745

文中、
「カーネルスレッドという言葉を使う時に OSカーネルの処理を専門で扱うスレッド を指す場合と カーネルモードのユーザープロセス(スレッド) を指す場合があるので注意」

という部分があり、両者の違いが明確に理解できておりません。

例えば、write()というシステムコールを行った場合、
該当ユーザスレッドがカーネルモードに移行したものをカーネルスレッドというし(後者)、その具体的なwrit()処理をするのは前者のOSカーネルの処理を専門で扱うスレッドということでよろしいでしょうか?

よろしくお願いいたします。<(_ _)>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2022/03/06 09:35

スレッドに関する質問を連投されてますが、最終的に実現したいことは何でしょうか? (言葉だけ覚えても、コードに落とせなかったり、CPU の具体的な処理がイメージできなければ意味がないと思いますし、単に知りたいという理由なら teratail では推奨されてない質問な気がします…。)
guest

回答1

0

ベストアンサー

両者の違い

言葉が共通でも文脈や指してるものが全く違う、ということで「対比」するものではないと思います。
前者については ps -ef コマンドで普通に存在が見られます。例えばスワップを扱う [kswapd0] とか、ファイルシステムで XFS を使ってるなら [xfs○○○] といった [] で名前が囲まれたプロセスのような存在が見られますが、これが前者の意味でのカーネルスレッドです。プロセスに見えますが、ユーザアプリを実行しているわけではなく、カーネルが必要に応じて作り出した存在です。

後者について、その記事では

該当ユーザスレッドがカーネルモードに移行したものをカーネルスレッドというし(後者)

を指しているように読めるのは確かです。しかし、一般にそういうものを指す時に使うとは思えませんので眉唾ものではないでしょうか。
一般には、その記事で挙げられている「軽量プロセス」「ユーザスレッド」を対比する時に、前者に相当するものを指すものかと思います。
参考: Oracle(旧SUN)のJava関連ドキュメントの"MultiThreading Models"

投稿2022/03/06 13:41

angel_p_57

総合スコア1681

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

akiyama3284pga

2022/03/10 00:53

いつも大変お世話になっております。 混同しないようにしっかりと理解しておきたいと存じます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問