ターンアラウンドタイム
ジョブ(処理の依頼)をシステムに投入してから、その処理の結果がすべて得られるまでの時間。待ち時間と処理時間の合計になる。
イマシルちゃんの解説
コンピュータに処理を頼んでも、すぐに取りかかってもらえるとは限らないんだ。
ほかの処理が終わるのを待つ間も、利用者は結果が出るのを待っているよね。
ターンアラウンドタイムは、ジョブという処理の依頼をシステムへ渡してから、結果がすべて得られるまでの長さを表す指標だよ。
実際に計算している間だけでなく、順番を待っている間も含めて測るんだ。
だから計算だけ速くしても、混雑していればなかなか短くならないの。
依頼した仕事がどれくらいで終わるかを確かめるために使うよ。
この解説はわかりやすかったですか?
より深い解説
定義
ターンアラウンドタイムは、利用者がジョブをシステムに投入した(到着した)時刻から、処理が終了して結果が得られる時刻までの経過時間である。バッチ処理の性能の指標として使われる。
ターンアラウンドタイム = 終了時刻 − 到着時刻
= 待ち時間 + 処理時間
計算の手順
ジョブの多重度が1(同時に1つしか実行しない)のシステムで、複数のジョブの到着時刻と処理時間が与えられた場合は、次の手順で求める。
- スケジューリングの方式(到着順など)に従って、実行する順番を決める
- 各ジョブの開始時刻 = 「到着時刻」と「直前のジョブの終了時刻」の遅いほう
- 各ジョブの終了時刻 = 開始時刻 + 処理時間
- ターンアラウンドタイム = 終了時刻 − 到着時刻
計算例(到着順、多重度1)
| ジョブ | 到着時刻 | 処理時間 |
|---|---|---|
| P | 0 | 4 |
| Q | 1 | 3 |
| R | 2 | 5 |
| ジョブ | 開始 | 終了 | 待ち時間 | ターンアラウンドタイム |
|---|---|---|---|---|
| P | 0 | 4 | 0 | 4 − 0 = 4 |
| Q | 4 | 7 | 3 | 7 − 1 = 6 |
| R | 7 | 12 | 5 | 12 − 2 = 10 |
時間の流れを図にすると、次のようになる。
時刻 0 1 2 3 4 5 6 7 8 9 10 11 12
|--- P ---------|--- Q -----|--- R --------------|
↑P ↑Q ↑R 到着
よくある間違いは、ターンアラウンドタイムを「開始時刻から」数えてしまうことである。ジョブの待ち時間も含めるため、必ず到着時刻から数える。
レスポンスタイムとの違い
| 指標 | 計測の範囲 | 主に使う場面 |
|---|---|---|
| ターンアラウンドタイム | ジョブの投入から、結果がすべて得られるまで | バッチ処理 |
| レスポンスタイム(応答時間) | 要求の入力の完了から、応答が始まるまで | オンライン処理、対話型の処理 |
| スループット | 単位時間あたりに処理できる仕事の量 | システム全体の処理能力 |
ターンアラウンドタイムを短くするには
| 方法 | 効果 |
|---|---|
| 処理の速い装置を使う | 処理時間が短くなる |
| 多重度を上げる | 複数のジョブを並行して処理し、待ち時間を減らす(ただし、各ジョブの処理は遅くなることがある) |
| スケジューリングの方式を変える | 処理時間の短いジョブを先に実行する(SPT)と、平均のターンアラウンドタイムが最小になる |
通信を含む所要時間の求め方
端末から要求を送り、サーバが処理し、端末が応答を受け取り終わるまでを測る場合は、往路と復路の伝送時間も加える。「要求の入力完了から応答開始まで」といった別の計測範囲と混同せず、どこからどこまでを測るかを先に確かめる。
伝送効率は、回線の速度のうち利用者データの伝送に使える割合として扱う。効率をη、回線速度をRビット/秒、利用者データ量をLバイトとすると、次のように計算する。
実効速度 = R × η
伝送時間(秒)= L × 8 ÷(R × η)
往復の所要時間 = 要求の伝送時間 + サーバの処理時間 + 応答の伝送時間
たとえば、要求500バイト、応答1,000バイト、回線速度2Mbit/s、効率75%、サーバ処理30msなら、往復の伝送には1,500 × 8 ÷(2,000,000 × 0.75)=0.008秒かかる。処理時間を足した全体は38msである。
| 条件 | 計算上の注意 |
|---|---|
| バイトで与えられたデータ量 | ビットへ変換するため8倍する |
| %で与えられた効率 | 75%なら0.75として使う |
| 秒とミリ秒が混在する | 同じ単位へそろえてから足す |
| 待ち時間や伝搬遅延を無視する条件 | 指定された成分だけを計算する |
実際の通信には、距離による伝搬遅延、キューでの待ち時間、再送なども加わり得る。回線速度を上げても、サーバ処理やこれらの遅延が同じ割合で短くなるとは限らない。
電文の間に空き時間がある場合
転送するデータを電文に分けるとき、データ本体の量と回線へ流す総量は一致しない。各電文のヘッダーなども送信し、さらに電文の間の空き時間があれば、その時間も加える。
電文数 = データ総量 ÷ 1電文に入るデータ量(端数は切上げ)
総伝送時間 = 各電文の送信時間の合計 + 電文間の待ち時間の合計
最後の電文の送信完了までを測る場合、電文間の隙間は通常「電文数 − 1」か所である。近似として電文数と同じ回数を掛ける場合は、誤差の大きさと設問の条件を確認する。
独自の例として、データ8,000バイト、1電文のデータ部分200バイト、ヘッダーを含む長さ250バイト、速度1Mbit/s、電文間隔2msなら、40電文が必要となる。電文を送る時間は40 × 250 × 8 ÷ 1,000,000=0.08秒、隙間は39 × 0.002=0.078秒なので、合計は0.158秒である。
データ量をそのまま回線速度で割るだけでは、ヘッダーと隙間を落としてしまう。利用可能なデータの割合で伝送効率を計算する場合も、電文間隔を既に含む効率なのかを確認し、同じ待ち時間を二重に加算しない。
共有LANの利用率と中継遅延
共有回線の利用率は、単位時間当たりに流れる総ビット数を回線速度で割って求める。制御情報が利用者データ量に対する割合で与えられている場合は、データ本体にその分を加える。
独自の例として、3組がそれぞれ2,000バイトを毎秒20回転送し、制御情報が25%加わるなら、総量は3×2,000×20×1.25×8=1,200,000ビット/秒となる。20Mbit/sの共有回線に対する利用率は6%である。スイッチで分離された独立のリンクと、リピータハブで共有する媒体を区別する。
ストアアンドフォワードで中継する経路では、各リンクでの送信時間と各装置の処理時間を合計する。例えば800バイトを4Mbit/s、2Mbit/s、4Mbit/sの3区間に流し、中継装置が2台で各0.5ms使うなら、1.6+3.2+1.6+1.0=7.4msとなる。ここでは伝搬と待ち行列の遅延を含めていない。