Linuxでは、「プロセス」、「スレッド」、および「task_struct」という用語の意味

Linuxでは、「プロセス」、「スレッド」、および「task_struct」という用語の意味

私が知る限り、スレッドはプロセスの実行フローであり、プロセスのすべてのスレッドはいくつかの共通構造を共有します。さらに、最新のPCでは、CPUはプロセスではなくスレッドのみを実行します。

私はこの言葉の意味を理解していません。プロセスそしてワイヤーLinuxで。 Linuxは実際にプロセスとスレッドを区別しますか?その機能は作業構造構造?

Linuxでtask_structの実行をスケジューリングするという内容を読んだので、task_structがプロセスではなくスレッドを表すと思いました。作業構造の定義task_structの子孫への参照があることを確認しました。スレッドは実際に子を持つことができますか?

答え1

ユーザーレベルでは、aはprocessオペレーティングシステムに属します。processオペレーティングシステムから継承された環境と標準ファイル記述子(stdin、stdout、stderr)のコピーがあります。Threadsプロセスに属し、同じプロセスに属する複数のスレッドは、そのプロセスの環境とファイル記述子を共有します。

はい、プロセスとスレッドの両方が子プロセスを持つことができます。ここで、単語はchild単に既存のプロセス/スレッドの要求に応じてオペレーティングシステムによって生成された新しいプロセス/スレッドを表します。

task_structプロセスとスレッドを可能にすることです。これが内部で作られる方法です。ただし、ユーザーレベルではtask_structにアクセスできません。独自のカーネルを作成する場合は、スケジューラと一緒に使用する必要があります。

processthreadしたがって、カーネルお​​よび/またはCPUがどのように機能するかを深く理解している場合はそうです。同じ実生活で行われるので、との間には実質的な違いはありません。プロセス。違いは、ユーザーレベルと実際のアプリケーションがどのように機能するかだけです。

Andrew Tanenbaumの「最新のオペレーティングシステム」を1冊入手してお読みください。https://www.amazon.com/Modern-Operating-Systems-Andrew-Tanenbaum/dp/013359162X/ このトピックに関する最高の教科書です。

関連情報