さまざまなOSで使用されるマルチスレッド方式と、それらが重要な理由:
Multithreading Models
Many-to-One - many user threads to one kernel thread
One-to-One - each user thread is mapped to a kernel thread
Many-to-Many - Many user threads to smaller or equal # of kernel threads
これは私がマルチスレッドモデルについて知っていることです。
- Solarisは多対多を使用します
- LinuxおよびWindowsファミリー(少なくともXPまで、Win7については不明)は1対1を使用します
- IRIX、HP-UX、およびTru64 UNIX(v9より前のSolaris)は、多対多を使用します
なぜそれらが重要なのですか?
- 応答性-1つのスレッドでのWebブラウジング、別のスレッドでの画像のロード
- リソース共有-同じアドレス空間で複数のスレッドのアクティビティを許可する
- 経済性-スレッドがプロセスのリソースを共有する一方で、プロセス作成のためのメモリとリソースはコストがかかります(Solarisはスレッドよりもプロセスの作成が30倍遅い)
- スケーラビリティ-マルチプロセッサでは、スレッドはdiffプロセッサで並列に実行でき、シングルスレッドプロセスは、プロセッサの数に関係なく1つのプロセッサでのみ実行できます。