カーネルに見るSymbian OSのデザインポリシー:Symbian OS開発の勘所(2)(2/3 ページ)
カーネルの構造や仕組みからSymbian OSの特徴に迫る。マイクロカーネル、スレッド、DLLなどから、Symbian OSらしさが見えてくるだろう
Symbian OSのプロセスとスレッド
Symbian OSが提供しているユーザープログラムの実行モデルは、以下のような定義になります。
ここまでは、Windowsなどのプロセス、スレッドの定義とほぼ同じです(T-Kernelも、T-Kernel/SEでプロセスの概念がサポートされるようになったようです)。プロセス内には複数のスレッドが存在可能で、同一プロセスに属するスレッドは同じ仮想アドレス空間を参照します。
Windows(Windows CEを除く)と異なるのはここからです。Symbian OSのスレッドはリアルタイム処理を支援するため、64段階の優先順位をサポートしています。スケジューリングポリシーは優先順位駆動かつプリエンプティブなもので、最も優先順位の高いreadyスレッドが実行されます。ready対象が複数存在した場合はスレッドの属性により、
- ラウンドロビンによる実行
- 先発がブロックするまで実行されないFIFOによる実行
のいずれかになります。優先順位がサポートされたことで、Symbian OSでは緊急度の高いイベントを自然に扱うことができます。
スレッド間の同期を取るための一般的なメカニズムであるセマフォおよびミューテックスなども提供されています。これらについても優先順位を考慮した拡張が行われています。
このように、スレッドはSymbian OSの実行モデルの基礎となっており、プリエンプティブなマルチタスクが優先順位をサポートしたうえで実現されています。ただし、「スレッドを大量に使うプログラミングスタイルが推奨されているか」というのは別の問題です。この点については連載第5回で詳述したいと思います。
ROMサポート
ROM(Read Only Memory)という用語は古くから使われていますが、当初あった「いったんシステムが走り始めたら、後は変更不能」というイメージから随分変わってきました。
いったん書き込んだら消せないマスクROM、消去可能ではあるが専用のROMライタを必要とするEEPROMなどと異なり、フラッシュROMはボードに装着したまま内容を消去、書き込みを行うことができます。この利便性と「不揮発である」という性質が相まって、携帯電話のストレージとして広く使われているのはご存じのとおりです。
Symbian OSでも、このフラッシュROMをファイルシステムの基盤として利用するようにデザインされています。ただし、フラッシュROMといっても実際には以下の2つに大別されます。
名称 | 特徴 | 対応ファイルシステム |
---|---|---|
NOR型 | バイト単位で読み出し可能(消去はブロック単位) | ログフラッシュファイルシステム(LFFS)(注) |
NAND型 | ブロック単位でアクセス可能 | フラッシュトランスレーションレイヤ(FTL) |
表2 各フラッシュROMの特徴/注:書き込みを行わないRead Onlyの部分については、ROM File Systemも用意されます。 |
それぞれの性質に合わせて、ファイルサーバは上記表内のファイルシステムを使用します。
XIP
表2のとおり、NOR型フラッシュはバイト単位での読み出しが可能です。この性質を用いると、プログラムのイメージをRAMにコピーせず、直接実行することができます。このような実行の仕組みを「eXecute In Place(XIP)」と呼びます。ROMベースのシステムでは一般的な技法で、もちろんSymbian OSでもサポートされています。
フラッシュROMはファイルシステムを経由して使用され、かつフラッシュROMの性質ごとにファイルシステムが異なるというのは先に示したとおりです。また、Symbian OSではRAMの節約という観点から、できるものはXIPで実行するというポリシーを持っています(注)。そのため、あるプログラムがXIPで実行されるか否かは、そのプログラムが格納されるファイルシステムに依存することになります。
Copyright © ITmedia, Inc. All Rights Reserved.