Document

感性を考慮した
ジョブスケジューリング
東京工業大学 情報理工学研究科
数理・計算科学専攻 千葉研究室
栗田 亮
1
音楽聴きながら仕事してます
► ・・・しながら族
増加中
 現在マシンは高性能
 音楽を聴きながら
仕事する人は多い
►研究室でも多く存在
►DVD見ながら仕事
をするツワモノも
2
仕事が優先(当然!)なのですが・・・
► ユーザの希望:
仕事が第一だけど音楽・映像も
 実装, 論文作成などの仕事 → すばやく処理
 音楽,DVD → 仕事の邪魔にならなければよい
► マシンにその希望は反映されない
 仕事の処理を優先させる
►音楽・映像が途切れて不快
 音楽・映像再生を優先させる
►仕事の処理が遅れる
3
感性を考慮したQoS処理
► 仕事があくまで優先!
 マシンには仕事の処理を優先させる
► 音楽・映像には感性を考慮したQoS処理を行う
 途切れなどによるユーザへの不快感を抑制
例) 音楽のフェードアウト
►途切れを防ぐには止めるしかない場合もある
►その際にフェードアウトさせることでユーザへの不快感を
抑えることが可能
4
Tanma
► 重要性の低い音楽再生処理に対しQoS処理を
行うシステム
 ユーザに不快感を与える前に音楽を制御
►音楽再生処理の進捗情報を利用するスケジューリング
 音楽の停止・再開に伴うユーザへの不快感を抑制
►音量の自動調整
►タイムマシン再生
 Linuxカーネル上に実装
►アプリケーションを書き換える必要なし
5
Tanmaのスケジューリング
► 重要性の高い処理が阻害されているときだけ
音楽を制御
 音楽再生処理による阻害
►CPUなどの資源の競合(奪い合い)により処理が遅れる
 状況に応じて資源割り当てを変更
→ 音楽を制御
►阻害されていない場合 → 音楽をそのまま続行
►阻害されている場合
 従来のCPUスケジューリングでは困難
►CPU以外の資源の競合を探知できない
6
Progress-based regulation
[J.R.Doucer 99]
► 進捗情報を用いるスケジューリング手法
 プロセスの進捗をもとに資源競合を探知
►重要性の低いプロセスの進捗に注目
= 重要性の高いプロセスとの資源競合
→ 重要性の高いプロセスの処理を阻害
►資源によらずに競合の探知が可能
►進捗が悪化
 資源競合を解消するためにプロセスを制御
►重要性の低いプロセスを一定時間停止
→ 重要性の高いプロセスが阻害されなくなる
7
Tanmaによる進捗状況判定
► Progress-based
regulationを音楽処理に適用
 進捗値 = カーネルがバッファリングしているサウンド
データの量
►通常時:
アプリケーションからのデータが十分
►負荷時: アプリケーションの遅延によりデータが不足
 閾値と比較して進捗状況を判断
►閾値
= 過去の進捗値の平均値より計算
デバイス
カーネル
アプリケーション
バッファ
8
Tanmaによるプロセス制御
► 進捗の悪化に伴い音楽再生処理を制御
 音が途切れる前に音楽を一定時間停止
►停止時間:
3秒
 停止後に一時的に処理を再開し、再停止 or 続行
►重要性の高い処理の終了後、遅くとも3秒後に再開
→ ユーザが許容できる待ち時間
進捗悪化
音楽再生
重要性の
高い処理
一時的に再開 &
進捗チェック
進捗良好
3秒停止
9
開始
終了
音量の自動調整
► 停止・再開時に音量変更
 ユーザに不快感を与えないよう停止・再開
► 停止後の進捗状況チェックは音量ゼロ
 一時的な音楽再生をユーザに聞こえさせない
音
量
進捗悪化
フェードアウト
進捗良好
フェードイン
0
音楽再生
重要性の
高い処理
10
タイムマシン再生
► フェードアウト前の部分から再生を再開
 フェードアウト中の音楽を録音し、再開時に再生
►カーネル内の専用バッファにデータを保持
 ユーザが音楽の一部を聴けないという事態を防ぐ
 一時的な再開時に再生したデータも改めて再生
音
量
フェードアウト
フェードイン
0
音楽再生
音楽ストリーム
1 2 3 4 5
6
7
3 4 5 6 7 8 9…
11
動作検証
► 既存の音楽プレイヤーに対し動作を確認
 realplayer, xmms, mpg123など
► デモ
 TanmaによるBGMの制御とQoS処理を示す
12
実験1: Tanmaによる資源競合回避
► 資源競合による重要な処理の遅延を検証
 BGM起動上で重要な処理(π計算)の処理時間を測
定
 Tanma未使用(3通り)とTanma使用で比較
 実験環境
►音楽プレイヤー:realplayer
(π計算アプリケーション)
►CPU: Pentium Ⅲ 733MHz, メモリ: 512MBの計算機
►重要な処理:pi_fftc
13
実験1の結果・考察
pi_fftc のみ
pi_fftc + realplayer
pi_fftc の CPU優先度↑
Tanma使用
処理時間
711秒
821秒(+15%)
777秒(+9%)
731秒(+2.8%)
音楽のQoS
ー
○
×
△
► 考察
 Tanmaが音楽プロセスを制御することで、π計算を
遅らすことなく処理できる
14
実験2: Tanmaのオーバーヘッド
► Tanmaの処理により遅延が生じているかを検証
 π計算実行中の音楽プレイヤーの進捗値を測定
= カーネルがバッファリングしているデータ量
= データ送信を行うアプリケーションの速度
►バッファサイズ: 131,072 byte
►進捗値
 通常のシステム、Tanma、Tanma(音量調整を実行
中)で比較
 実験1と実験環境は同じ
15
バッファリング
しているデータ量
(=進捗の速度)
(byte)
実験2の結果・考察
130,000
120,000
110,000
100,000
90,000
80,000
通常システム
Tanma
Tanma(音量変更中)
► 考察
 Tanmaの処理による負荷はほとんどない
16
進捗情報を用いる別の手法
►MS Manners [J.R.Doucer 99]
 デフラグなどのユーザに見えない処理を制御
 重要性の低い処理のQoSは無視
► QoS
adaptation & real-rate scheduling
[A.Goel 01]
 マルチメディア処理 = 重要性の高い処理
► Tanma
 マルチメディア処理 = 重要性の低い処理
 重要性の低い処理のためのQoS処理をプラス
►ユーザの感性を考慮
17
まとめ
► 重要性の低いマルチメディア処理のためのQoS
の提案
 マルチメディア処理から資源を奪う際にユーザの感
性を考慮したQoS処理が必要
►ユーザに与える不快感を抑制する
► Tanmaを開発
 ユーザの感性を考えて音楽を停止・再開
 Progress-based regulationをマルチメディア処理に
適用
18
今後の課題
► 動画再生処理に対するQoS処理
 フェードアウトなどの処理はカーネルレベルでは困難
 動画中の音楽には可能
► ネットワーク上の音楽の再生処理
 サウンドバッファの監視では進捗状況把握は困難
►アプリケーションによるバッファリングで遅延
 ネットワーク流量を監視する方法が考えられる
► より汎用的な機能が必要
19