私が知る限り、スレッドはプロセスの実行フローであり、プロセスのすべてのスレッドはいくつかの共通構造を共有します。さらに、最新のPCでは、CPUはプロセスではなくスレッドのみを実行します。
私はこの言葉の意味を理解していません。プロセスそしてワイヤーLinuxで。 Linuxは実際にプロセスとスレッドを区別しますか?その機能は作業構造構造?
Linuxでtask_structの実行をスケジューリングするという内容を読んだので、task_structがプロセスではなくスレッドを表すと思いました。作業構造の定義task_structの子孫への参照があることを確認しました。スレッドは実際に子を持つことができますか?
答え1
ユーザーレベルでは、aはprocess
オペレーティングシステムに属します。process
オペレーティングシステムから継承された環境と標準ファイル記述子(stdin、stdout、stderr)のコピーがあります。Threads
プロセスに属し、同じプロセスに属する複数のスレッドは、そのプロセスの環境とファイル記述子を共有します。
はい、プロセスとスレッドの両方が子プロセスを持つことができます。ここで、単語はchild
単に既存のプロセス/スレッドの要求に応じてオペレーティングシステムによって生成された新しいプロセス/スレッドを表します。
task_struct
プロセスとスレッドを可能にすることです。これが内部で作られる方法です。ただし、ユーザーレベルではtask_structにアクセスできません。独自のカーネルを作成する場合は、スケジューラと一緒に使用する必要があります。
process
thread
したがって、カーネルおよび/またはCPUがどのように機能するかを深く理解している場合はそうです。同じ実生活で行われるので、との間には実質的な違いはありません。プロセス。違いは、ユーザーレベルと実際のアプリケーションがどのように機能するかだけです。
Andrew Tanenbaumの「最新のオペレーティングシステム」を1冊入手してお読みください。https://www.amazon.com/Modern-Operating-Systems-Andrew-Tanenbaum/dp/013359162X/ このトピックに関する最高の教科書です。