1003.1bとは、POSIXによって定義された、リアルタイム拡張APIの規格である。古くはPOSIX.4とも呼ばれた。1003.1規格のオプションに含まれているが、多くのベンダーがリアルタイムAPIへの対応を強調するために、POSIX1003.1bの表記を利用している。この規格に対応している場合は、ヘッダーファイルで「_XOPEN_REALTIME」を定義するが、個々の関数への対応は個別に定義されているため、詳細は実装によって異なる。Option)」の2つがあるが、この規格はAPIを定義するだけであり、リアルタイム性能を保証する規格ではないことに注意しなければならない。リアルタイム拡張規格の実装には、プロセスモデル、スレッドモデル、タスクモデル、あるいは、これらの組み合わせなどの複数の実装形態が存在する。非同期IOシステムコールでは、リアルタイムオペレーティングシステム(リアルタイムカーネル)自身が非同期IOシステムコールをサポートしていない場合の実装では、タスクやスレッドを生成するために、POSIXスレッド(旧POSIX1003.1c)との相互作用が発生する。linuxのPOSIXスレッドでは、リアルタイムシグナルをカーネルがスレッドの制御に使用しているため、リアルタイムシグナルの数個を使用することが出来ない[1]。1003.1-2001[2]に準拠したリアルタイムAPIをサポートしている場合、以下の値は、200112Lに定義されている。len)は、定義されていない。len)が定義されている。aiocb;のaiocb.aio_reqprioフィールドは、意味を持たない事に注意するべきである。(_POSIX_PRIORITIZED_IOは、_POSIX_ASYNCHRONOUS_IOのオプションである。すべてのAPIは共通でも現実の動作は、ライブラリとカーネル実装の組み合わせによって異なるため、プログラムがエラー無しでコンパイルされたとしても、同じ動作をするとは限らない。_POSIX_ASYNCHRONOUS_IO非同期IO関数をサポートしている。完了していない非同期IOをキャンセルする。非同期IO操作のエラー状態を取得する。非同期readを行う。非同期IO操作の返り値を取得する。非同期IO操作の完了を待つ。非同期writeを行う。非同期IOをリスト操作で行う。_POSIX_PRIORITIZED_IO優先度付き非同期IO関数をサポートしている。aiocb;のaiocb.aio_reqprioフィールドにしたがって、IOスケジューリングを行う。_POSIX_SYNCHRONIZED_IOメモリ上の内容をファイルと同期させる関数をサポートしている。aio_fsync()パラメータで渡された非同期IOの、同期していない操作を同期させる。_POSIX_FSYNCメモリ上の内容をファイルと同期させる関数をサポートしている。XSIに準拠している場合には、必ず定義されていなければならない。fsync(),fdatasync()メモリ上の内容をファイルと同期させる。_POSIX_MAPPED_FILESファイルへのメモリマップ関数をサポートしている。XSIに準拠している場合には、必ず定義されていなければならない。mmap()ファイルやデバイスをメモリにマップする。munmap()メモリにマップしたファイルやデバイスをアンマップする。_POSIX_MEMLOCKプロセスやタスクが使用している全てのメモリ領域をロックする関数をサポートしている。mlockall(),munlockall()_POSIX_MEMLOCK_RANGEプロセスやタスクが使用しているメモリ領域を開始アドレスと大きさを指定してロックすることが可能な関数をサポートしている。mlock(),munlock()_POSIX_MEMORY_PROTECTIONプロセスやタスクが使用しているメモリ領域を保護する関数をサポートしている。XSIに準拠している場合には、必ず定義されていなければならない。mprotect()POSIXの定義では、mprotect()は、mmap()で獲得した領域に対してのみ使用出来る。_POSIX_MESSAGE_PASSINGPOSIXメッセージキュー関数をサポートしている。mq_close(),mq_open(),mq_unlink()mq_getattr(),mq_setattr()mq_notify()mq_receive(),mq_send()_POSIX_PRIORITY_SCHEDULING優先度スケジューリング関数をサポートしている。sched_get_priority()_max,sched_get_priority_min()sched_get_param(),sched_set_param()sched_get_scheduler(),sched_set_scheduler()shced_yield()sched_rr_get_interval()_POSIX_REALTIME_SIGNALSリアルタイムシグナル関数をサポートしている。sigqueue()sigwaitinfo()_POSIX_SEMAPHORESPOSIXカウンティングセマフォをサポートしている。sem_open(),sem_close(),sem_unlink()sem_init(),sem_destroy()sem_post(),sem_wait()_POSIX_SHARED_MEMORY_OBJECTSPOSIX共有メモリオブジェクトをサポートしている。shm_open(),shm_close(),shm_unlink()_POSIX_TIMERSPOSIXタイマーをサポートしている。Option)[編集]_POSIX_ADVISORY_INFOアドバイザリー情報関数をサポートしている。posix_fallocate(),posix_fadvise()posix_memalign(),posix_madvise()_POSIX_CLOCK_SELECTION下記関数をサポートしている。clockidにリアルタイムクロックCLOCK_REALTIME等を指示できる。CLOCK_REALTIMEの解像度の最大値は、ヨーロッパでは50Hz(20ms)であり、米国では60Hz(16.67ms)である。最小値は、構造体の定義からナノ秒になる。CLOCK_REALTIMEは、システム時計と共通の実装が存在する。この場合には、外部プログラムによりシステム時計が書き換えられると周的的な時間がジャンプする可能性がある。この現象を避けるためには、CLOCK_MONOTONICを使用する。clockid,)_POSIX_CPUTIMEclockidにCPU実行時間CLOCK_PROCESS_CPUTIME_ID,CLOCK_THREAD_CPUTIME_IDを指示できる。_POSIX_MONOTONIC_CLOCKclockidにモノトーニッククロックCLOCK_NONOTONICを指示できるが、クロックの値をclock_settime()を介して設定することはできない。spwnプロセス関数をサポートしている。posix_spawn(),posix_spawnp()posix_spawnattr_getschedparam(),posix_spawnattr_getschedpolicy(),posix_spawnattr_setschedparam(),posix_spawnattr_setschedpolicy()posix_spawnattr_destroy(),posix_spawnattr_getflags(),posix_spawnattr_getpgroup(),posix_spawnattr_getsigfefault(),posix_spawnattr_getsigmask()posix_spawnattr_init(),posix_spawnattr_setflags(),posix_spawnattr_setpgroup(),posix_spawnattr_setsigfefault(),posix_spawnattr_setsigmask()posix_spawnfile_actions_addclose(),posix_spawnfile_actions_adddup2(),posix_spawnfile_actions_addopen(),posix_spawnfile_actions_destroy(),posix_spawnfile_actions_init()_POSIX_SPORADIC_SERVER下記関数で、スケジューリングポリシーSCHED_SPORADICをサポートしている。通常、周期的な繰り返しアクティビティには、SCHED_FIFOを利用するが、SCHED_SPORADICは、不規則なアクティビティの場合に利用する。sched_setparam(),sched_setscheduler()_POSIX_TIMEOUTSタイムアウトオプションをサポートしている。mq_timedreceive()タイムアウト付きで、メッセージキューの受信を行う。mq_timedsend()タイムアウト付きで、メッセージの送信を行う。sigtimedwait()タイムアウト付きsigwaitinfo()_POSIX_TYPED_MEMORY_OBJECTS下記、関数をサポートしている。posix_mem_offset(),posix_typed_mem_get_info(),posix_typed_mem_open()リアルタイムのスレッド規格[編集]以下の規格は、正確にはPOSIXスレッドに含まれるが、リアルタイムのスレッド規格として以下に記述する。リアルタイムスレッドをサポートしている場合には、_XOPEN_REALTIME_THREADSが定義されている。Option)[編集]_POSIX_THREAD_PRIO_INHERITプライオリティインヘリタンス(優先度継承)mutexをサポートする。_POSIX_THREAD_PRIO_PROTECTプライオリティ最高限度mutexをサポートする。_POSIX_THREAD_PRIORITY_SCHEDULING優先度スケジューリングスレッドをサポートする。Option)[編集]_POSIX_BARRIERSバリア同期をサポートする。_POSIX_SPIN_LOCKSスピンロック(ビジィーウェイト)をサポートする。_POSIX_THREAD_CPUTIMECPU実行時間チェック関数をサポートしている。サーバーインターフェースをサポートしている。サンプルプログラム[編集]コンカレント日本によるPDF「ベーシックトレーニング編」にいくつかのサンプルがある。3から入手することが出来る。その後の改訂の版については、下記を参照の事。GroupsUbuntuマニュアルページこの項目は、コンピュータに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めています(PJ:コンピュータ/P:コンピュータ)。(日時は個人設定で未設定ならばUTC)。表示-継承ライセンスの下で利用可能です。追加の条件が適用される場合があります。詳細は利用規約を参照してください。Cookieに関する声明モバイルビュ。