これは、プロセス チェックポイントの部分的な実装を要求する割り当ての問題です。
テスト プログラムは配列を割り当て、システム コールを実行し、配列の開始アドレスと終了アドレスを呼び出しに渡します。システムコール関数では、与えられた範囲の内容をファイルに保存する必要があります。
私の理解では、単にcopy_from_usr関数を使用して、指定された範囲から内容を保存できます。ただし、割り当てはトピック「プロセス アドレス空間」に基づいているため、おそらくページ テーブルについて説明する必要があります。特定の範囲に対応する構造体ページを取得できたとします。ページに対応するデータを取得するにはどうすればよいですか?
page_to_virt関数を使用してデータに直接アクセスできますか? 配列は仮想空間で連続しているため、開始アドレスをページに変換してから仮想アドレスに戻し、データの範囲サイズをファイルにコピーするだけでよいと思います。そうですか?