Mac OSとLinuxのプロセス制御ブロックを理解したいです。 Lionuxの場合、これは非常に簡単です。ここに同じ内容を尋ねる記事があり、誰かが<linux/sched.h>の "task_struct"を見てみるように答えました。しかし、Mac OSに対応するものを見つけるのは難しいことがわかります。 Apple開発者フォーラムの誰かが同様の質問をし、proc_info.hとproc.hを見ていると言いましたが、どのような構造なのかはわかりません。 Withを見てください。 Mac OSに同等のtask_structがありますか?
答え1
私はMac OSについてはまったくわかりませんが、FreeBSDについては少し知っています。それが一致することを願っています。
task_struct
Linuxでは、これはLinuxでのスケジューリングの基本単位であるため、正確です。
FreeBSDでは、スケジューリングの基本単位はですthread
。
Linuxはtask_struct
構造を通してプロセス(およびスレッド)を表します。
Linuxのシングルスレッドプロセスではtask_struct
。
FreeBSDのシングルスレッドプロセスにはproc
構造体、thread
構造体、構ksegrp
造体があります。
(これはksegrp
「カーネルスケジューリングエンティティグループ」です。)
最終的に、両方のオペレーティングシステムはスレッドを予約します。ここで、スレッドはthread
FreeBSDの構造、task_struct
スレッドはLinuxの構造です。
したがって、実際にアドバイスに従い、proc.hを最初に見てください。