日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
AIO(4) FreeBSD カーネルインタフェースマニュアル AIO(4) 名称 aio -- 非同期 I/O 解説 aio 機能は、非同期 I/O のためのシステムコールを提供します。非同期 I/O 操 作は、呼び出しているスレッドによって同時に完了されません。代わりに、呼び 出しているスレッドは、非同期 I/O 操作を要求するために 1 つのシステムコー ルを呼び出します。完了された要求の状態は、後で個別のシステムコールによっ て取り出されます。 いくつかのファイル記述子のタイプの非同期 I/O 操作は、プロセスおよびシステ ムのハングアップで無制限の結果となる AIO デーモンをブロックします。これら のファイル記述子のタイプの操作は、``unsafe'' (安全でない) とみなされ、デ フォルトで無効にされます。vfs.aio.enable_unsafe sysctl ノードを 0 以外の 値に設定することによって、それらを有効にすることができます。 ソケットの非同期 I/O 操作、生のディスクデバイスとローカルファイルシステム の通常のファイルは、無制限にブロックせず、常に有効にされます。 aio 機能は、ほとんどの非同期 I/O 要求をサービスするために (AIO デーモンと しても知られている) カーネルプロセスを使用します。これらのプロセスは、プ ロセスの変数の数を含んでいるプールにグループ化されます。各プールは、ロー ドに基づいてプールにプロセスを追加するか、または削除します。プールは、ア イドルなプロセスが終了の前に待つ時間と同様に、プロセスの最小で、最大の数 を定義する sysctl ノードによって設定することができます。 AIO デーモンの 1 つのプールは、ソケットのための非同期 I/O 要求をサービス するために使用されます。これらのプロセスは、``soaiod<N>'' と名前が付けら れます。次の sysctl ノードは、このプールで使用されます: kern.ipc.aio.num_procs 現在のプールのプロセス数。 kern.ipc.aio.target_procs プールに存在するべきプロセスの最小数。 kern.ipc.aio.max_procs プールに許可されたプロセスの最大数。 kern.ipc.aio.lifetime プロセスがクロックのチック単位でアイドリングすることが許可される 時間。プロセスがこの時間のためにアイドルで、ターゲットの最小より プールに多いプロセスがあるなら、プロセスは、終了します。 AIO デーモンの 2 番目のプールは、生のディスクへの I/O 要求を除いて、すべ ての他の非同期 I/O 要求をサービスするために使用されます。これらのプロセス は、``aiod<N>'' と名前が付けられます。次の sysctl ノードは、このプールで 使用されます: vfs.aio.num_aio_procs 現在のプールのプロセス数。 vfs.aio.target_aio_procs プールに存在するべきプロセスの最小数。 vfs.aio.max_aio_procs プールに許可されたプロセスの最大数。 vfs.aio.aiod_lifetime プロセスがクロックのチック単位でアイドリングすることが許可される 時間。プロセスがこの時間のためにアイドルで、ターゲットの最小より プールに多いプロセスがあるなら、プロセスは、終了します。 生のディスクのための非同期 I/O 要求は、要求に関連するユーザページに一時的 に結び付けられた後に、ディスクデバイスのレイヤに直接キューに入れられま す。これらの要求は、AIO デーモンのプールのいずれかによってサービスされま せん。 非同期 I/O 要求の数のいくつかの制限は、システム全体とプロセスごとの両方で 課されます。これらの制限は、次の sysctl を通して設定されます: vfs.aio.max_buf_aio 単一のプロセスのために許可された生のディスクのためのキューに入れ られた非同期 I/O 要求の最大数。完成しましたが、状態が aio_return(2) または aio_waitcomplete(2) を通して取り出されなかっ た非同期 I/O 要求は、この制限に対してカウントされません。 vfs.aio.num_buf_aio 生のディスクシステム全体のためにキューに入れられた非同期 I/O 要求 の数。 vfs.aio.max_aio_queue_per_proc 非同期 I/O の最大数は、デフォルト AIO デーモンのプールによって同 時にサービスされている単一のプロセスのために要求します。 vfs.aio.max_aio_per_proc 単一のプロセスのために許可された未解決の非同期 I/O 要求の最大数。 これは、サービスされなかった要求、現在サービスされている要求、と 完成したが、状態が aio_return(2) または aio_waitcomplete(2) を通 して取り出されなかった要求を含みます。 vfs.aio.num_queue_count システム全体の未解決の非同期 I/O 要求の数。 vfs.aio.max_aio_queue システム全体に許可された未解決の非同期 I/O 要求の最大数。 非同期 I/O 制御バッファは、個別のフィールドを初期化する前に 0 クリアされ るべきです。これは、すべてのフィールドが初期化されることを保証します。 すべての非同期 I/O 制御バッファは、操作が完了するとき、通知を要求するため に使用することができる aio_sigevent フィールドの sigevent 構造体を含んで います。 SIGEV_KEVENT 通知のために、sigevent の sigev_notify_kqueue フィールドは、 イベントがアタッチされるべきである、kqueue の記述子を含むべきです、その sigev_notify_kevent_flags フィールドは、EV_ONESHOT, EV_CLEAR および EV_DISPATCH を含み、そしてその sigev_notify フィールドは、SIGEV_KEVENT に 設定されるべきです。投稿された kevent は、次を含んでいます: メンバ 値 ident 非同期 I/O 制御バッファポインタ filter EVFILT_AIO flags EV_EOF udata aio_sigevent.sigev_value に格納される値 SIGEV_SIGNO と SIGEV_THREAD_ID 通知のために、キューに入れられたシグナルの ための情報は、si_code フィールドの SI_ASYNCIO と si_value フィールドの sigevent.sigev_value に格納された値を含んでいます。 SIGEV_THREAD 通知のために、aio_sigevent.sigev_value に格納された値は、 sigevent(3) に説明されるように aio_sigevent.sigev_notify_function に渡さ れます。 関連項目 aio_cancel(2), aio_error(2), aio_read(2), aio_return(2), aio_suspend(2), aio_waitcomplete(2), aio_write(2), lio_listio(2), sigevent(3), sysctl(8) 歴史 aio 機能は、カーネルオプションとして FreeBSD 3.0 で登場しました。aio カー ネルモジュールは、FreeBSD 5.0 で登場しました。aio 機能は、FreeBSD 11.0 の すべてのカーネルに統合されました。 FreeBSD 11.2 June 22, 2017 FreeBSD 11.2