CTC教育サービスはコラム「グーグルのクラウドを支えるテクノロジー > 第118回 ユーザースペースのプラグイン型タスクスケジューラー「ghOSt」(パート2)」を公開しました。
###
はじめに
前回に続いて、2021年に公開された論文「ghOSt: Fast and Flexible User-Space Delegation of Linux Scheduling」を元にして、Googleのエンジニアが開発したプラグイン型のタスクスケジューラ「ghOSt」を紹介します。今回は、Linuxカーネルとユーザー空間のエージェントの通信方法を中心としたアーキテクチャの詳細を説明します。
Linuxカーネルとエージェント間の通信方法
前回の図1に示したように、Linuxカーネルは、メッセージキューを用いて、ユーザー空間のエージェントに通知を行います。一方、エージェントからLinuxカーネルへの通知には、システムコールが用いられます。図1は、Linuxカーネルから送られるメッセージの種類と、エージェントが使用するシステムコールの一覧になります。
図1 ghOStが使用するメッセージとシステムコール(論文より抜粋)
ここで用いられるメッセージキューは独自に実装されたもので、管理対象のプロセスごとに個別のキューが用意されます。前回の図2で説明した「Enclave」ごとにデフォルトのキューが用意されており、新たなプロセスがghOStの管理対象になると、まずはデフォルトのキューが割り当てられます。その後、エージェントは、図1に示したシステムコール(CREATE_QUEUE、ASSOCIATE_QUEUE)を用いて、新たなキューを作成して、こちらを該当のプロセスに割り当て直します。
この続きは以下をご覧ください
(リンク »)
はじめに
前回に続いて、2021年に公開された論文「ghOSt: Fast and Flexible User-Space Delegation of Linux Scheduling」を元にして、Googleのエンジニアが開発したプラグイン型のタスクスケジューラ「ghOSt」を紹介します。今回は、Linuxカーネルとユーザー空間のエージェントの通信方法を中心としたアーキテクチャの詳細を説明します。
Linuxカーネルとエージェント間の通信方法
前回の図1に示したように、Linuxカーネルは、メッセージキューを用いて、ユーザー空間のエージェントに通知を行います。一方、エージェントからLinuxカーネルへの通知には、システムコールが用いられます。図1は、Linuxカーネルから送られるメッセージの種類と、エージェントが使用するシステムコールの一覧になります。
図1 ghOStが使用するメッセージとシステムコール(論文より抜粋)
ここで用いられるメッセージキューは独自に実装されたもので、管理対象のプロセスごとに個別のキューが用意されます。前回の図2で説明した「Enclave」ごとにデフォルトのキューが用意されており、新たなプロセスがghOStの管理対象になると、まずはデフォルトのキューが割り当てられます。その後、エージェントは、図1に示したシステムコール(CREATE_QUEUE、ASSOCIATE_QUEUE)を用いて、新たなキューを作成して、こちらを該当のプロセスに割り当て直します。
この続きは以下をご覧ください
(リンク »)
本プレスリリースは発表元企業よりご投稿いただいた情報を掲載しております。
お問い合わせにつきましては発表元企業までお願いいたします。
お問い合わせにつきましては発表元企業までお願いいたします。