The UNIX and Linux Forums  

Go Back   UNIXおよびLinuxフォーラム > トップフォーラム > 高レベルのプログラミング
Googleのunix.com



高レベルのプログラミング は、 C 、 C + +についての質問の投稿は、 Java 、 SQL 、および他のプログラミング言語です。

その他のUNIXおよびLinuxフォーラムトピックは参考にすること
スレッド スレッドスターター フォーラム 返信 最後の投稿
セマフォ raguramtgr UNIXのダミー質問と回答のため 7 2009年6月15日 10:39午前
セマフォ Jaken シェルプログラミングとスクリプティング 2 2009年4月4日 06:10午後
dmidecode 、 RAMの速度\u003d "現在の速度:不明" サンティ ファイルシステムは、ディスクとメモリ 0 2006年2月16日 06:16午前
セマフォ vjsony UNIXのダミー質問と回答のため 3 2003年4月7日 03:06午後
セマフォ yls177 UNIXのダミー質問と回答のため 1 2002年10月9日 12:18午前

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek を搭載 Powered by Google
 
LinkBack スレッドツール このスレッドを検索 評価: Thread Rating: 1 votes, 4.00 average. 表示モード
  #1固定リンク)  
Old 2008年9月17日
migurus migurus is offline
登録ユーザー
  
 

参加日: 2008年09月
場所:アメリカ
投稿: 49
セマフォのアクセス速度

私はいくつかの方式を使用してセマフォのロックを調べている。私はいくつかの基本的なシステムセマフォ情報取得して表示するループの実行速度を評価するには:

一方: ;行う。 / semshow ;行わ> res.txt

私は3箱- SCOの一OpenServer 5を実行し、他のフェドーラ2.6.9 2つの似たような現代のHPのXeonボックス、および1つのボックスにLinux近代の下に古いPIII ( )は、この情報が走った。
その結果非常に直感的なカウンターがあります:
時間/週| OSの|の平均数秒のBERを実行
---- | --- | -------------------------
のXeon |上海協力機構| 1700
のXeon |フェドーラ| 500
PIII | Linuxの(最近のディストリビューションは、不明) | 900
すべての3つのシステムのほとんどは、テスト実行時にアイドル状態だった。

私はお尋ねしたいのですが、何をアウトパフォームするには、モダンなOSに対応する方法を同じような古代のUnix OSの下で、現代のXeon PIIIボックスアウトパフォームボックス付属の要因も、となる。任意のpontersいただければ幸いです。

このプログラムは非常semshowは、下記を参照してください基本的な一覧です:

コード:
 
#include <stdio.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include  <sys/timeb.h>
#include <time.h>
#include "semlib.h"
#define MODE_CREATE     0
#define MODE_REMOVE     1
key_t   IPCKEY;
main(int argc, char *argv[])
{
  int   sid, i;
  pid_t last_rpid, last_wpid;
  char  dbuf[80];
  union semun           arg;
  unsigned short        vals[NSEMS];
  struct timeb tb;
  struct tm *tp;
        if((IPCKEY = get_ipc_key()) == -1)
        {
                errexit("Can Not Obtain IPC Key");
        }
        if((sid = semget(IPCKEY, NSEMS, 0)) == -1)
        {
                errexit("Can Not Get Semaphore ID");
        }
        memset(vals, 0, sizeof(vals));
        arg.array = &vals[0];
        if(semctl(sid, NSEMS, GETALL, arg) == -1)
        {
                errexit("Can Not Get Semaphore Values");
        }
        if((last_rpid = semctl(sid, RDLOCK, GETPID)) == -1)
        {
                errexit("Can Not Get Semaphore R-Pid");
        }
        if((last_wpid = semctl(sid, WRLOCK, GETPID)) == -1)
        {
                errexit("Can Not Get Semaphore W-Pid");
        }
        ftime(&tb);
        tp = localtime(&tb.time);
        strftime(dbuf, sizeof(dbuf) - 1, "%T", tp);
        printf("%12li.%03i %s  RD:[%i]  WR:[%i] %i/%i\n",
                tb.time, tb.millitm, dbuf, 
                vals[RDLOCK], vals[WRLOCK],
                last_rpid, last_wpid);
        exit(0);
}

semlib.hこれらdefsしている:

コード:
 
#define NSEMS   2
#define RDLOCK  0
#define WRLOCK  1
union   semun   {
        int             val;
        struct semid_ds *buf;
        unsigned short  *array;
};

 

ブックマーク

スレッドツール このスレッドを検索
このスレッドを検索

高度な検索
表示モード このスレッド
このスレッド

投稿ルール
あなた ことができない。 新しいスレッドを投稿
あなた ことができない。 返信の投稿
あなた ことができない。 添付ファイルの投稿
あなた ことができない。 自分の投稿を編集

BBコード なる 〜の上に
スマイリー なる 〜の上に
[イメージ] コードは 〜の上に
HTMLコードは、 オフ
トラックバック なる 〜の上に
ピングバック なる 〜の上に
Refbacks なる 〜の上に




すべてGMT -4です。現在の時刻は 12:44午後


提供: vBulletin、著作権© 2000 - 2006、Jelsoft企業株式会社。言語翻訳による電源
vBCredits v1.4著作権© 2007 - 2008 、 PixelFXスタジオ
は、 UNIXおよびLinuxフォーラムのコンテンツ著作権© 1993 〜 2009 。すべての権利を管理しReserved.Ad RedTyger

コンテンツ関連のURLで vBSEO 3.2.0