ļĺÇÐ
4.4 本章のまとめ
本章では,可観測かつ揮発な要素であるCPUと可観測かつ不揮発な要素である 主記憶について低オーバヘッドでの状態保存を可能とするための手法について述べ た.揮発であるCPUについて復元される状態に合わせるため,不揮発である主記 憶の状態についても保存を行い,これを復元した.
主記憶の保存に対し,無駄なコピー作業をなるべく排除するため,mallocなど により確保されるオブジェクトを単位としてその状態を保存した.また,構造化さ れた主記憶管理手法を拡張することによって,実行中のチェックポインティング作 業の低オーバヘッド化をはかった.CPUの保存領域を指す2つのポインタの切り 替えにより,チェックポインティング中およびリカバリ作業中に電源切断が生じた 場合にも,正しくシステムが復帰することを可能とした.
実際に各処理中に電源切断を生じさせた実験の結果,通常実行時,チェックポイ ンティング時,リカバリ時に電源切断が発生したとしても,適切にシステムの状態 が復元することを確認した.また測定および考察により,提案手法が低オーバヘッ ドでシステムの状態保存を可能としていることを示した.
第 5 章
周辺デバイスの状態復元
前章では可観測かつ揮発な要素であるCPUと可観測かつ不揮発な要素である主 記憶について,低オーバヘッドで状態復元を可能とする手法を提案した.図5.1に 示すように,本章ではこれを拡張し,不可観測かつ揮発な要素である,周辺デバイ スの状態の復元手法について述べる.デバイスとデバイスドライバの関係に着目 し,システム全体の実行状態の一貫性を維持した状態復元を行う.
observable non-observable
volatilenon-volatile
CPU
main memory
peripheral devices
図 5.1: 5章で対象とする要素
5.1 基本方針
本章では,4章で行ったCPUと主記憶状態の復元を基本とし,周辺デバイスの 状態復元を行う.このとき,2.3.3章で述べたように,周辺デバイスはそれぞれ独立 に動作するものとし,デバイス間で相互作用によってその状態に依存関係が発生し ないものとする.また,一つのデバイスは対応する一つのデバイスドライバによっ てその状態が制御されるものとする.
User (Application)
Level
Kernel (Operating System)
Level
Hardware Level Kernel
Peripheral Device
Peripheral Device
Peripheral Device Callback
Function
Device Driver
ISR
Device Driver
Device Driver
ISR
interrupt handler
boot
&
recovery
Application Program
Application Program
Application Program
ISR
図 5.2: 実行状態復元に関するソフトウェア
複数の要素で構成されるシステムにおいて,各要素間に依存関係が発生しなけれ ば,各要素が独立に状態を復元しシステム全体の一貫性を維持することが可能であ る.よって,まずデバイスとの依存関係が発生する要素であるデバイスドライバに 注目する.そして,個々のデバイスとデバイスドライバの間で一貫性を維持するリ カバリ手法を確立する.その手法をシステムに接続される各デバイスドライバにそ れぞれ適用することによって,システム全体の状態を復元することができる.
図5.2に本手法における実行状態復元に関するソフトウェアコンポーネントを示 す.図中,網がけとなっている部分が本章の手法で着目するソフトウェアコンポー ネントである.
本章で提案する手法では,それぞれのデバイスの状態復元に対して,デバイスド ライバにコードを追加し,デバイスドライバやデバイスに発行されるコマンドの情 報の保存や復元を行う.デバイスドライバの通常処理に対して追加されるコードで は,リカバリ時のデバイスドライバとデバイスの間で一貫性を維持可能なように,
必要となる情報を保存する.また,デバイスドライバにはコールバックルーチンを 設ける.リカバリ時には,カーネルのブート/リカバリを扱うコードが各デバイス ドライバのコールバック関数(図5.2中callback function)を呼出す.各コールバッ ク関数では,デバイスドライバに追加されたコードによって通常実行中に保存され た情報をもとに,各デバイスの状態を復元する.
本研究では,CPUおよび主記憶と,デバイスの間での一貫性を維持した状態を 復元するにあたり,デバイスドライバとデバイスの間にメッセージパッシングシス テムで用いられてきた一貫性の議論を適用する.
process A
process B
message (from A to B)
recovery point
図 5.3: 一貫性が保たれる復元状態
process A
process B
message (from A to B)
recovery point
図 5.4: 矛盾を生じる復元状態