タグ

2010年9月7日のブックマーク (18件)

  • IPC between native processes

    sillow
    sillow 2010/09/07
    ネイティブ層でbinderを使ったプロセス間通信したいんだけど...という話題。
  • プロセス間通信の比較 - ka2yanの日記

    デバイスドライバによるプロセス間通信 - ka2yanの日記のデバイスドライバは、既存のプロセス間通信と比べて当に早いのか、を測定した。 調べること 100バイト程度のメッセージ(画像データ等の大容量データを対象にしているのではない)をやりとりするプロセス間通信で一番早いのは何か? 測定するプロセス間通信は、前回の日記に書いたデバイスドライバ(共有メモリ方式)とデバイスドライバ(メッセージRead/Write)、そして、メッセージキュー(POSIX)、UNIXドメインソケット、名前付パイプ(FIFO)の5種類。 メッセージキュー(System V)は、fd として扱えないので、測定しない。 測定プログラムの概要 −2プロセス間で128バイトのメッセージを送受信を繰り返すプログラム −2プロセスは、NON_BLOCKING でメッセージをread/write −read/writeする前に

    プロセス間通信の比較 - ka2yanの日記
  • デバイスドライバを用いたプロセス間通信 - ka2yanの日記

    だいぶ前から、こんなことに興味があった。 プロセス間通信って色々あるけど、せいぜい100バイトぐらいのメッセージをやり取りするのに一番軽いのって何? プロセス間通信のログ取得も簡単にON/OFFしたい デバッグ/評価/市場トラブル時にアプリケーションに手を入れることなくプロセス間通信のログが取れるのは非常にありがたい。 シェルスクリプトからも各プロセスに指示が出せるとうれしい 今から、2年近くも前だろうか、以下の記事を読ませて頂いた。 http://cheesy.dip.jp/tutorialog/archives/6 これを参考に、以下のようなプロセス間通信を実装した。 共有メモリを使うのではなく、メッセージデータをデバイスドライバにread(2)/write(2)する 上記したような用途(100バイト程度のメッセージ)ならデバイスドライバでメッセージをコピーしてもあまりスループットに影

    デバイスドライバを用いたプロセス間通信 - ka2yanの日記
  • ソケット通信でチャットプログラム(unix c言語) - OKWAVE

    c言語のソケット通信でチャットプログラムを作り中です 仕様:あるクライアントからメッセージがサーバに送信された時点でサーバは接続されたいる全てのクライアントにメッセージを送信する。 以下のようにクライアントからの接続(accept)がある度に、その返り値であるファイルディスクリプタにに対するreadと全クライアントに対するwriteの処理を行うchild関数をforkで起動します。これだとforkが起動した時点での全てのファイルディスクリプタ(接続されている全クライアント)の情報をchild関数に渡せますが、それ以降増え続けていくファイルディスクリプタの情報をchild関数に渡せないので、最初の方に接続したクライアントからのメッセージをそれ以降接続した他のクライアントに送信できないという状態です。 main() { socket() bind() listen() while(1){ ac

    ソケット通信でチャットプログラム(unix c言語) - OKWAVE
  • NAKAMURA Minoru's Diary (2007年5月)

  • Page not found - ファイヤープロジェクト

    The page you are trying to reach does not exist, or has been moved. Please use the menus or the search box to find what you are looking for.

    sillow
    sillow 2010/09/07
    gdbでデバッグ中にシグナルを受信した際にデバッギにシグナルを渡すか等の操作方法
  • Manpage of GETITIMER

    Section: Linux Programmer's Manual (2) Updated: 2008-08-06 Index JM Home Page roff page 名前 getitimer, setitimer - インターバル・タイマーの値を取得または設定する 書式 #include <sys/time.h> int getitimer(int which, struct itimerval *value); int setitimer(int which, const struct itimerval *value, struct itimerval *ovalue); 説明 システムは 1 個のプロセスにつき 3 個のインターバル・タイマーを提供する。 それぞれのタイマーは別々の時間領域で減少する。 どのタイマーも満了するとプロセスにシグナルが送られ、 タイマーは (設定

  • Manpage of TIMERFD_CREATE

    Section: Linux Programmer's Manual (2) Updated: 2009-02-11 Index JM Home Page roff page 名前 timerfd_create, timerfd_settime, timerfd_gettime - ファイルディスクリプタ経由で通知するタイマー 書式 #include <sys/timerfd.h> int timerfd_create(int clockid, int flags); int timerfd_settime(int fd, int flags, const struct itimerspec *new_value, struct itimerspec *old_value); int timerfd_gettime(int fd, struct itimerspec *curr_value

  • マルチスレッドプログラミング (POSIX、Win32)

    このページではマルチスレッド、プロセス間通信、スレッド間通信およびタイマープログラミングについて紹介します。(いやー。好きだなこういう話題は。) 記述例およびサンプルに含まれるファイルの全部、または一部を使用したことによる損害等について、一切の責任を負いません。また、サンプルの文字コードはS-JISで提供しますので、ご使用の際はWindowsからFTPするなどして適切な文字コードに変換してください。尚、サンプル中には説明の簡略化のため意味のないコードや、実用上問題のあるコードも含まれていますのでご注意ください。 [POSIX]pthread_create [POSIX]スレッドの同期(ミューテックス) [POSIX]タイマー [WIN32]_beginthreadex [WIN32]スレッドの同期(ミューテックス) [WIN32]共有メモリ [WIN32]スレッドの同期(イベント) [PO

  • C言語関係掲示板

    sillow
    sillow 2010/09/07
    複数のタイマ処理(周期処理)を行いたい場合は、timer_createでは難しい。timerfd_createを使うか、usleep/sleepを用いるのが一般的なようだ。
  • selectを使う(タイムアウト付き):Geekなぺーじ

    selectを使うサンプルコード(タイムアウト付き) 下記サンプルコードでは、UDPソケットを2つ作成しています。 作成した2つのUDPソケットは、selectに登録してselectはブロッキング状態に入ります。 UDPソケットにデータが到着するとrecvを行い、受信した内容を表示します。 以前のサンプルとこのサンプルの違いは、タイムアウトを設定している事です。 このサンプルでは、selectの4つめの引数はNULLではなくstruct timevalへのポインタを渡しています。 struct timevalには、10秒を表す値を代入してあります。 このサンプルでは、selectは最大10秒までしかブロッキングしません。 selectがブロッキングを開始してから10秒の時間が経過するとselectは0を返して終了します。 select以後のif文では、selectの返り値が0であればwhi

  • メッセージキュー

    メッセージキューはパイプとより扱いが簡単でちょっと嬉しい. メッセージキューに関する関数 サンプル メッセージキューに関する関数メッセージキューに関する関数として,以下がある. int msgget(key_t key, int msgflg); 指定したkeyのメッセージキュー識別子を取得.msgflgにはパーミッションやオプションなどを指定する.これにIPC_CREATを指定すると,指定したkeyのメッセージキューがない場合は作成してくれる. int msgsnd(int msqid, struct msgbuf *msgp, size_t msgsz, int msgflg); メッセージの送信. ssize_t msgrcv(int msqid, struct msgbuf *msgp, size_t msgsz, long msgtyp, int msgflg); メッセージの受

  • Manpage of MSGOP

    Section: Linux Programmer's Manual (2) Updated: 2008-04-23 Index JM Home Page roff page 名前 msgrcv, msgsnd - メッセージ操作 書式 #include <sys/types.h> #include <sys/ipc.h> #include <sys/msg.h> int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); 説明 システムコール msgsnd() と msgrcv() はそれぞれ、メッセージ・キューへのメッセージの送信と、 メッセージの受信に使用さ

  • On-line Manual of "timer_settime"

  • Manpage of IOCTL

    Section: Linux Programmer's Manual (2) Updated: 2000-09-21 Index JM Home Page roff page 名前 ioctl - デバイス (device) を制御する 書式 #include <sys/ioctl.h> int ioctl(int d, int request, ...); 説明 ioctl() 関数はスペシャル・ファイルを構成するデバイスのパラメータを 操作する。特に、キャラクタ型のスペシャル・ファイル(例えば端末(terminal)) の多くの操作可能な特性を ioctl() リクエストによって制御することができる。引き数 d はオープンされたファイル・ディスクリプタでなければならない。 2番目の引き数は、デバイス依存のリクエスト・コードである。 3番目の引き数は、メモリへの型を指定しないポインタであ

  • Time in Linux

    Linux と時間 Linux で, 時間に関するプログラミングについてまとめてみました. この手のプログラミングについては初心者なので, もっといい方法を知っていたら教えて下さい. じゃあ, どんなプログラミングなら得意なの? なぁんて聞かないように (^^; 事の起こり sleep usleep nanosleep setitimer /dev/rtc Real-Time Linux への道 関連情報 戻る m@sa.to Copyright (C) 1998, Masahiro SATO

  • Linux のスリープ処理、タイマ処理の詳細を見る - naoyaのはてなダイアリー

    UNIX でプロセスを一時的にスリープさせるには sleep(3) が使えます。sleep() は引数に秒単位でしか時間を指定できないので、より短い時間を指定したい場合は usleep(3) (マイクロ秒) や nanosleep(2) (ナノ秒) を使うことになります。sleep(), usleep() はライブラリ関数、nanosleep() はシステムコール*1です。 この usleep() や nanosleep() で 1ms 程度の短い時間プロセスを停止したとして、正確にその時間だけ停止させることはできるでしょうか。http://shiroikumo.at.infoseek.co.jp/linux/time/ にあるコードを参考に、実際に動かしてみます。カーネル 2.6.19 x86_64、CentOS 5 で試します。 まず、nanosleep() で 1ms のスリープを行

    Linux のスリープ処理、タイマ処理の詳細を見る - naoyaのはてなダイアリー
  • sleep(usleep) - Linuxの場合