AppleがWWDC 2022で、iPad OSを大幅アップデートすると発表しましたが、中でもシステム内部で大きな変更になったものが1つあります。
巷ではステージマネージャが注目されていますが、あばれる君風に言わせてもらうと、
「私はそうは思いません!」
です。
最も大きな変更は、
・仮想記憶
この一点です。
OSのカーネル部分が大きく変わります。
OSとカーネルって同じと思ってる人もいるかと思いますが、OSとカーネルは、
・特権レベルが異なる
という違いがあります。
OSはOSでも、CPUの特権レベルが通常モードで動作する部分はカーネルではありません。OSの中にカーネルが含まれていて、カーネルはOSの最も中枢の部分の役割を担います。
インテルのCPUは特権レベル0、1、2とありますが、0がカーネルで何でもできるモード、1は割り込みルーチンなどが動くモード、2が通常のアプリが動くモードで動作に色々と制限があります。
PowerPC系列も似たようなものでハイパバイザモード、スーパーバイザモード、ユーザモードなどの特権レベルが用意されています。
私はARMは詳しくありませんが、カーネルが動く特権モードと一般アプリが動く非特権モードがあります。
で、iPad OSが仮想記憶をサポートするということは、特権レベルのカーネルが動作する部分に大きな変更が入るということで、メモリへのアクセス方法が大きく異なることになります。
今までのiPad OSは、メモリへアクセスする時に実際のメモリアドレスを指定して動いていたはずです。
当たり前のように聞こえるかもしれませんが、メモリアドレスは本物のアドレスでした。
これが、仮想記憶を使用するように変わるので、メモリアクセスは仮想アドレスに変わります。
CPUはアクセスされた仮想アドレスが実際の物理メモリに存在するか確認して、存在しない場合はカーネルに割り込みがかかってSSDから仮想メモリの内容を物理メモリに読み込んだり逆にSSDに書き出したりする必要があります。(スワップイン、スワップアウト)
これを、アプリやOSがメモリにアクセスする度に毎回チェックします。
つまり、仮想記憶を採用することでアプリが使用できるメモリ量は増えますが、代わりに動作がシステムレベルで遅くなります。
これを次期iPad OSが採用するということは、CPUが非力では動作がどうしても重くなってしまいます。
ステージマネージャがM1以降のCPUでないと動かないということが言われていますが、仮想記憶をサポートし、かつメモリに余裕を持ったシステムでないと実用レベルでサクサク動けないと言う事情があると思います。
そんなことより、次期iPad Proが値上げされそうで怖いっ!
