組み込みソフト開発のしきいを下げる"リアルタイムOS"のすべて

池崎 史生

tag: 組み込み

技術解説 2001年6月19日

●各プロセスは独立している

 UNIX系OSでは,生成されたプロセスどうしは基本的に独立した関係にあります.プロセスを生成する側を親プロセス,生成される側を子プロセスと呼びます.

 子プロセスは一度生成されると,親プロセスのそれまでの実行情報がまるごとコピーされ,親と同じように独立して実行を継続します.子プロセスだけの終了条件を設けないかぎり,親プロセスと同様の終了条件になるまで実行されます.

 親プロセスから子プロセスを生成する場合,親プロセスのデータは子プロセスにコピーされますが,実行時のメモリ空間はまったく別の場所を指定されます.つまり,親子のプロセスであってもメモリを共有しているわけではないので,親プロセスと子プロセスが別れたあとは,お互いにどのような値で計算を実行しているかを確認する手段は基本的にありません.

●プロセス間通信と排他制御

 各プロセスどうしが協調して動作するためには,別のしくみが必要になります.そのしくみを実現したものがプロセス間通信や,排他制御なのです.

 親プロセスと子プロセスの間でデータのやりとりをするためには,このプロセス間通信を使います.排他制御とは,複数のプロセスで同時に同じ資源にアクセスしないための機構です.これによって,同じデータが二つのプロセスから2重に書き換えられることを防ぐことができます(図6図7)

f06-01.gif
[図6]もし,2つのプロセスが同じ場所のデータを書き換えてしまったら...
プロセスが,その領域を書き換えるタイミングによってデータの値が不定になる.

f06-02.gif
[図7]相互排除用のフラグを利用した排他制御
このフラグをmutexと呼ぶ.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日