171. スケジューラー
実際には
1.イベントをチェック(マウス, キーボード, ...)
➡ 適切な4Dプロセスに伝達する
2.その後,アクティブプロセスに1 tickずつのループに突入
For 1からプロセス数まで
If プロセスが遅延あるいは停止されていなければ
そのコードを 1 tick 実行する(16 ms)
Tokyo/2010-03-03/04
172. While 4D 実行中
// システムイベントを処理
Repeat
If チェック_間隔 が経過した
If 4Dはビジーである
タイムアウト = タイムアウト_最短
Else
タイムアウト = タイムアウト_最長
End if
// ここでシステムに制御を返す
Get イベントあるいは タイムアウト まで待機
If イベントは4Dプロセスに関係
Pass イベントをプロセスに伝達
End if
End if
Until イベントがない
// それぞれの4Dプロセスに時間を与える
For 4D プロセスそれぞれにつき
Give 最低 1 tick アクティブプロセスを実行
End while
Tokyo/2010-03-03/04
173. While 4D 実行中
// システムイベントを処理
Repeat
If チェック_間隔 が経過した
If 4Dはビジーである
タイムアウト = タイムアウト_最短
Else
タイムアウト = タイムアウト_最長
End if
// ここでシステムに制御を返す
Get イベントあるいは タイムアウト まで待機
If イベントは4Dプロセスに関係
Pass イベントをプロセスに伝達
End if
End if
Until イベントがない
For 1からプロセス数まで
// それぞれの4Dプロセスに時間を与える
For 4D If プロセスが遅延あるいは停止されていなければ
プロセスそれぞれにつき
Give そのコードを 1 tick 実行する(16 ms)
最低 1 tick アクティブプロセスを実行
End while
Tokyo/2010-03-03/04
174. While 4D 実行中
// システムイベントを処理
Repeat
If チェック_間隔 が経過した
If 4Dはビジーである
タイムアウト = タイムアウト_最短
Else
タイムアウト = タイムアウト_最長
End if
// ここでシステムに制御を返す
Get イベントあるいは タイムアウト まで待機
If イベントは4Dプロセスに関係
Pass イベントをプロセスに伝達
End if
End if
Until イベントがない
// それぞれの4Dプロセスに時間を与える
For 4D プロセスそれぞれにつき
Give 最低 1 tick アクティブプロセスを実行
End while
Tokyo/2010-03-03/04
175. While 4D 実行中
// システムイベントを処理
Repeat
If チェック_間隔 が経過した
If 4Dはビジーである
タイムアウト = タイムアウト_最短
Else
タイムアウト = タイムアウト_最長
End if
// ここでシステムに制御を返す
Get イベントあるいは タイムアウト まで待機
If イベントは4Dプロセスに関係
Pass イベントをプロセスに伝達
End if
End if
Until イベントがない
// それぞれの4Dプロセスに時間を与える
For 4D プロセスそれぞれにつき
Give 最低 1 tick アクティブプロセスを実行
End while
Tokyo/2010-03-03/04
176. While 4D 実行中
// システムイベントを処理
Repeat
If チェック_間隔 が経過した
If 4Dはビジーである
タイムアウト = タイムアウト_最短
Else
タイムアウト = タイムアウト_最長
End if
// ここでシステムに制御を返す
Get イベントあるいは タイムアウト まで待機
If イベントは4Dプロセスに関係
Pass イベントをプロセスに伝達
End if
End if
Until イベントがない
// それぞれの4Dプロセスに時間を与える
For 4D プロセスそれぞれにつき
Give 最低 1 tick アクティブプロセスを実行
End while
Tokyo/2010-03-03/04
177. While 4D 実行中
// システムイベントを処理
Repeat
If チェック_間隔 が経過した
If 4Dはビジーである
タイムアウト = タイムアウト_最短
Else
タイムアウト = タイムアウト_最長
End if
// ここでシステムに制御を返す
Get イベントあるいは タイムアウト まで待機
If イベントは4Dプロセスに関係DATABASE PARAMETER
SET
Pass イベントをプロセスに伝達
4D Server Scheduler
End if 4D Remote Scheduler
End if
Until イベントがない 4D Local Mode Scheduler
// それぞれの4Dプロセスに時間を与える
For 4D プロセスそれぞれにつき
Give 最低 1 tick アクティブプロセスを実行
End while
Tokyo/2010-03-03/04
180. スケジューラー
While 4D 実行中
// システムイベントを処理
Repeat
If チェック_間隔 が経過した
If 4Dはビジーである
タイムアウト = タイムアウト_最短
Else
タイムアウト = タイムアウト_最長
End if
// ここでシステムに制御を返す
Get イベントあるいは タイムアウト まで待機
If イベントは4Dプロセスに関係
Pass イベントをプロセスに伝達
End if
End if
Until イベントがない
// それぞれの4Dプロセスに時間を与える
For 4D プロセスそれぞれにつき
Give 最低 1 tick アクティブプロセスを実行
End while
Tokyo/2010-03-03/04
181. スケジューラー: 4Dを最高に
While 4D 実行中
// システムイベントを処理
Repeat
If 5 ticks が経過した
If 4Dはビジーである
タイムアウト = 0 tick
Else
タイムアウト = 1 ticks
End if
// ここでシステムに制御を返す
Get イベントあるいは タイムアウト まで待機
If イベントは4Dプロセスに関係
Pass イベントをプロセスに伝達
End if
End if
Until イベントがない
// それぞれの4Dプロセスに時間を与える
For 4D プロセスそれぞれにつき
Give 最低 1 tick アクティブプロセスを実行
End while
Tokyo/2010-03-03/04