Win16とWin32の違い

スケジューリングポリシ

Win16システム ノンプリエンプティブマルチタスク
Win32システム プリエンプティブマルチタスク。ただしWin16アプリケーションはノンプリエンプティブとして動作する

実行単位

Win16システム タスク
Win32システム プロセス/スレッド

メッセージパッシングメカニズム

Win16システム 1つのメッセージメカニズム、キューで動作する
Win32システム メッセージソースはWindowsシステム、他のAP、デバイスの3つ。Win32アプリケーションはスレッドごとにメッセージキューを持ち、Win16アプリケーション群で1つのメッセージキューを持つ。

Windows95/98のタスクスケジュール方式

スケジューラ

プライマリスケジューラ 

システム全体のスレッド優先度をサーチし、最も高い優先度を持つ1つ以上のスレッドをタイムスライススケジューラに渡す。スレッド優先度が変更されなかった場合には次回も同じスレッド群がタイムスライススケジューラへ渡される。
ただしWindowsはウィンドウのフォアグラウンド切り替えなどが発生するとスレッド優先度が変化するので常に同じスレッドが実行されるわけではない。

タイムスライススケジューラ

各スレッドへのCPU割り当てを調整する。

制限事項

KERNEL32は完全にマルチスレッド対応されているが、そのほかのOSモジュールはWin16と同様の動作を行うためボトルネックになる可能性がある。

Windows2000のタスクスケジュール方式

クオンタム

Windows95/98と同じくスレッドプライオリティのみが判断基準となる。
ただし割り当て時間(タイムクオンタム)がある。タイムクオンタムはスレッドの待機もしくはI/O待ち、高優先度スレッドによる割り込みがない限り実行される残り時間を表している。

ベースプライオリティ

ダイナミックプライオリティ

クオンタムブースト

フォアグラウンドにWindowが移動されると2倍程度までクオンタム値が増加される。

プライオリティブースト


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: Wed, 31 May 2006 14:33:52 JST (4496d)