6章マルチタスク
本書ではこれまで並行について議論を行ったものの、実際のCPU上、特にプロセスの数がCPUの数より多い場合に、物理的にどのように動作させるかについては説明していなかった。マルチタスクと並行はほぼ同じ意味であり、マルチタスクは並行にプロセスを動作させることである。マルチタスク、マルチタスキングとはOSなどの分野で用いられる用語であり、本書では、これらは単一のCPU上で複数のプロセスを並行に動作させるための技術を指すものとして捉えて解説する。
本章では、まずはじめに、マルチタスク、マルチタスキングの概念的な意味を明確にし、その周辺用語について説明する。その後、Rust言語を用いて、AArch64アーキテクチャを対象としたユーザランド実装のスレッド(グリーンスレッドと呼ぶ)の実装を行う。本実装は非常に簡素ではあるものの、OSプロセスや、スレッド、あるいはErlangやGo言語の動作原理を明らかにするはずである。最後に、作成したグリーンスレッドの上で、簡易的なアクターモデルの実装を行う。
6.1 マルチタスク
本節では、マルチタスク関係の用語と概略、およびマルチタスクの戦略について説明する。
6.1.1 ジキル博士とハイド氏
「ジキル博士とハイド氏」とは、多重人格を題材にした怪奇物語である。ジキル博士はある日、ジキル博士の精神を善であるジキルと悪であるハイドに分割することに成功し、その結果悲劇を迎えてしまう。このような多重人格者は創作物語にしばしば登場する。著者が読んだ作品だと、ドラゴンボールのランチさん、幽遊白書の仙水忍、十三番目の人格─ISOLAの森谷千尋、24人のビリーミリガンのビリー(これは創作ではなく実話だが)、などがある。ここでは、医学的な視点から人体と脳の機序について説明するのではなく、どのようにすれば、このような多重人格を実現できるかという視点から想像してみよう。 ...
Get 並行プログラミング入門 ―Rust、C、アセンブリによる実装からのアプローチ now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.