19.1 リアルタイムシステム
リアルタイムシステムは、ある時間制約を満たすようにレスポンスを返さなければならない
ソフトリアルタイムシステムでは、多少制約を破っても許される
動画とかは1フレーム落ちた程度だとあんまり気にならないという話
ソフトリアルタイムな目標 (Printezis 2006)
最大GC時間, タイムスライス期間, 許容可能な失敗率
任意のタイムスライス期間中において、指定された最大GC時間以上を使わないこと
これを破る割合(失敗率)を許容範囲内に収めること
ハードリアルタイムシステムでは、時間制約はマスト
エンジン制御とかは制約を破ると致命的
スループットよりも性能の予測可能性のほうが重要
計画的・解析的に決定可能であるか、
テストによって経験的に決定可能
タスクの最悪実行時間(WCET)は、そのタスクだけ切り離して実行したときに要する最大時間
マルチタスキングを行う場合、リアルタイム制約を満たすようスケジューリングが要求される
実行前に制約を満たしているか決定するためには、スケジュール可能性解析が必要
何らかの(通常は優先度に基づく)実行時スケジューリングアルゴリズムを仮定して解析
組込みシステムではメモリやCPUなどのハードウェア的制約が厳しいことにも注意が必要
以上の議論から、予測不能な停止時間を課すあらゆるGCはリアルタイムGCではない