質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.47%
Linux

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

Q&A

解決済

2回答

571閲覧

linux ユーザー空間上のスレッド カーネル空間上のスレッド 疑問

akiyama3284pga

総合スコア186

Linux

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

0グッド

0クリップ

投稿2022/03/05 13:53

https://zenn.dev/hsaki/books/golang-concurrency/viewer/kernel

上記サイトのページにて、

ユーザー空間上のプロセス(orスレッド)と、カーネル空間上のスレッドの対応に関しての部分(中盤少し下)で対応がN:1の説明の部分にて、 どれだけユーザー空間上でスレッドを作ったとしても、カーネル空間上では1つにまとまってしまうので、マルチプロセッサでの並列処理というのは起こりえません。その代わりコンテキストスイッチのコストを削減することができます。

という部分があり、少し理解に戸惑いましたので質問させていただきます。

コンテキストスイッチのコストを削減という部分は具体的にはどう解釈すべきでしょうか?
1:1だろうと、N:1だろうと、システムコールした際には必ずカーネルスレッドへの切り替えのためにコンテキストスイッチが発動すると思います。

このコンテキストスイッチでN:1の場合には1側(カーネルスレッド)が常に同一のアドレスであるため、そのアドレスを特定する手間がいらないという意味でコスト削減なのでしょうか?

それとも本来は発動するコンテキストスイッチが発動しないという意味でのコスト削減なのでしょうか?

自分の中での整理が崩れるため前者であってほしいと考えておりますが...

よろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

ユーザー空間上でのスレッドN個が、カーネル空間上でのスレッド1個

というような意味の分からない文を書いていることからわかるように、(おまけ)低レイヤの話 Linuxとの比較の作者はOSのことを理解していないようです。
同じページにある、プロセスは、オペレーティングシステムが実行ファイルを読み込んで実行するときに新しく作られます。を読むと、間違いなくOSのことが分かっていないことがわかります。

OSについて正しく理解したいのであれば、当てにならないWebを読むのをやめて、しっかりした本を読むことをお勧めします。
詳解 Linuxカーネル 第3版あたりが良いでしょう。

投稿2022/03/06 00:30

ppaul

総合スコア24666

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

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

akiyama3284pga

2022/03/06 01:01

ありがとうございます。 該当の書籍を購入し、しっかりとした情報をインストールしたいと存じます。
guest

0

コンテキストスイッチのコストを削減という部分は具体的にはどう解釈すべきでしょうか?

あるプログラムが、ユーザスレッドN個とカーネルスレッド1個で構成されているとします。
このときユーザスレッドN個間の切り替えはユーザ空間内で行われるので、コンテキストスイッチは発生しません。その意味でコスト削減です。

念のため。
これはスレッドモデルの議論なので、コンテキストスイッチは基本的にスレッドとスレッドの切り替えの話です。
システムコールや割り込みでカーネルモードに切り替わる場合もコンテキストスイッチと呼ぶ(呼べる)場合がありますが、ここではそれは考えない方がいいでしょう。

投稿2022/03/05 16:42

sigsegv

総合スコア895

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

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

akiyama3284pga

2022/03/06 01:41 編集

ありがとうございます。 整理することができました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問