(toppers-users 2553) Re: TOPPERSで使えるPthreadライブラリ

小南靖雄 ykominami @ nifty.com
2006年 10月 31日 (火) 12:18:26 JST


小南です。

On Wed, 18 Oct 2006 16:56:23 +0900
萩原 一昌 <kazu321 @ hotmail.com> wrote:

> 初投稿させていただきます。萩原と申します。
> 
> 現在、TOPPERS(ITRON4.0)上でPthreadを使いたいと考えているのですが
> その様なPthread互換のスレッドライブラリは既に存在してるのでしょうか。
> 
> newlibの様に下位関数の実装を行えば移植できるようになってる
> スレッドライブラリがあれば良いと思ってるのですが、
> 同じ悩みを持ったことのある方は
> どのように解決したか教えて頂けないでしょうか
> 
> 簡単な質問かも知れませんが、御教授お願い致します。
> 
> 開発環境は、
> fedora4上で
> binutils-2.15
> gcc-core-3.3
> newlib-1.12.0 
> のarm-elfのクロス環境を使っています
> 
> 以上です

遅いリプライになりますが、私の考えを書いてみます。
ITRONはマルチタスクですが、マルチプロセスではありません。
萩原さんがおしゃっていられるPthread互換なスレッド
ライブラリは、UnixやWindowsでいうプロセスを更に細かく
分けたものではないでしょうか。

上記の区分でいうと、ITRONのタスクはプロセスよりは
スレッドにかなり近いものです。
ITRON仕様で規定されているサービスコールは、Pthreadの
関数とほぼ同じくらいの機能を持ちます。
特に同期・通信の部分はITRON仕様の方が機能が多いといえます。
もちろん逆のケースもあります。

つまり、ITRONにはスレッドの前提となるプロセスが存在しない、
タスクとスレッドは機能的にだいたい対応付けられるということです。

もともとの質問のPthread互換のスレッドライブラリについては、
私は見たことも、聞いたこともないです。
ITRON互換APIとPthread互換APIを持つOSはあった気がしますが、
はっきり思い出せません。

上でタスクとスレッドは機能的に大体対応付けられると書きましたが、
実際のプログラムではシグナル処理など他の要素も絡んでくることが
予想されますので、単純にPthread互換のライブラリがあってもそれ
だけでは済まない場合も多いと思います。

萩原さんがやりたいと思われているのはどういうことでしょうか。
なんらかのスレッドを用いたプログラムをITRON OS上に移植され
たいということでしょうか。
そのような場合、プログラムの処理内容によっては、Pthreadの
関数用のラッパを自前で用意すればすむかもしれません。あるいは
ITRON OSのサービスコールを直接呼び出す、つまり移植のために
ある程度もとのプログラムを改造する必要があるかもしれません。

-- 
小南靖雄 ykominami @ nifty.com