タスクスケジューラ解説シリーズの最終回です。「どのCPUでタスクを実行するか」という観点から、CPU選択とロードバランスの仕組みを解説します。SCHED_FAIRとSCHED_RTを中心にタスク配置がどのように最適化されるのかを実装ベースで深掘りします。
前回実装したタイムシェアリング機能をベースに、今回はARM64向け自作OSに時限待ちとセマフォを実装します。タスクを指定時間だけ待機させる仕組みと、タスク間の排他制御を実現し、食事をする哲学者問題を例にデッドロック回避の動作を確認します。
前回実装したマルチタスク機能をベースに、今回はARM64向け自作OSにタイマー割り込みによるタイムシェアリング機能を実装します。Raspberry Pi 4のGICv2とGeneric Timerを利用し、タスクが自動的に切り替わる仕組みを構築します。
ARM64 Linuxカーネルがどのような手順で起動するかを解説します。仮想記憶の初期化、デバイスツリーの処理、マルチコア起動、initramfsの展開などを取り上げ、カーネルエントリからinitプロセス起動までの流れをソースコードとともに見ていきます。
Linux PC と RDMA ネットワークで vLLM スケールアウト構成を構築し、コストパフォーマンス重視のローカルLLM実行環境を提案・検証します。 前回の「vLLMとRDMAで構築するローカルLLMクラスタ (5)」の内容を踏まえた続編です。
前回構築したUART出力環境をベースに、ARM64アーキテクチャ向け自作OSへマルチタスク機能を実装します。コンテキストスイッチをアセンブリで記述し、C言語によるタスク管理やスケジューラと組み合わせることで、Raspberry Pi 4上で複数のタスクが順番に動作…
帯域制御アルゴリズム TBF を題材に、Linuxカーネルにおけるトラフィック制御の仕組みを解説します。tc の基本概念から、TBF の内部アルゴリズムやパラメーターの意味までをカーネル実装を交えて整理します。
Ryzen AI Max+ 395 (メモリ128GB) で Qwen3-Coder-Next を vLLM で動かそうと、Gemini と共に一晩格闘した記録です。AIの自信満々な誤誘導 (FP8非対応) に振り回され、パンが焼き上がるのを待ちながら深夜にソースコードを改変し、最終的に見えてきた「1.2ト…
マルチコアCPU環境でパケット処理負荷を複数のCPUコアに分散し、受信性能を高速化する技術(RSS/RPS/RFS/aRFS)について解説します。本稿では特に、ソフトウェア実装であるRPS/RFSの具体的な動作に焦点を当てます。
Linuxが提供するIPCメカニズムであるNetlinkの基本仕様や通信モデルを解説し、rtnetlinkを例にカーネル内部でどのように実装・処理されているかを具体的に紹介します。