No.1
- 回答日時:
turbolinuxで良ければ参考URLを見てみて下さい。
他のlinuxも同様かと思います。
※共有メモリ等はいろいろなプログラムで既に使用されている場合があるのでipcs等で使用状況を把握してからID
等を割り振ったほうが良いと思います。
参考URL:http://www.turbolinux.co.jp/world/library/featur …
No.2ベストアンサー
- 回答日時:
プログラミングのセクションで尋ねればもっと
早く回答が得られたと思いますよ。
1.について。
SHMMAX:1セグメント(1回のshmgetで割り当てられる
共有メモリ領域)あたりの最大バイト数
SHMALL:システム全体の共有メモリの最大ページ数
1.1 /proc/sys/kernel/shmmax, /proc/sys/kernel/shmall
をcatで見れば、現在のshmmaxとshmallの値が分かると思います。
1.2 man shmgetに書いてないでしょうか?
1.3 カーネルソースをインストールしていれば、ソースを見てみると
どこかに書いてあると思います。
/usr/src/linux/include/asm-i386/page.h
/usr/src/linux/include/asm-i386/shmparam.h
などがそうじゃないかと思います。
ページサイズは.../page.hの中で、1UL << 12となっています。
1を12回左シフトすると読めば、4096バイトでしょうか?
2.SysV IPCには排他制御の仕組みとしてセマフォを実現する関数群
(semget, semctl, semop)が用意されていますが、どうせ共有メモリ
を使用するなら、自分でセマフォのようなものを作られたら良いと
思います。
例えば、共有メモリの先頭にchar型1文字分の領域を確保しておいて、
共有メモリへの読み書きの前には必ずそこをチェックし、0ならば
それを1に変更してから読み書きをする。読み書きが終われば0に戻す。
チェック時に1ならば0になるまで待つ。というようにすれば簡単な
排他制御ができます。データは共有メモリの先頭からchar1個分だけ
ずれたところから格納するようにします。
工夫次第で色んな形の排他制御ができます。例えば、上記のcharを
読み出し用と書き込み用を用意すると、読み出しは重複して行って
も良いが、書き込みはダメ、というような排他制御が行えます。
(ただしその際は上記のチェックアルゴリズムでは不十分で、
ひと工夫必要です。)
また、共有メモリ領域を複数の部分に分けてそれぞれについて
排他制御を行うと、一々共有メモリ全体がロックされることがないので、
共有メモリへのアクセスが頻繁に行われるようなら、効率があがる
と思います。
あるいは、排他制御用のcharフラッグとデータ領域を一まとめにした
構造体やクラスを宣言して、メモリ領域のポインタを構造体ポインタに
キャストして、構造体やクラスのメンバ関数を通してのみ共有メモリに
アクセスするようにすると、排他制御機構を構造体やクラスのなかに
隠すことができ、プログラムがすっきりすると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
彼女のことが好きすぎて彼女の...
-
イタリアから帰国する際、肉製...
-
勃起する時って痛いんですか? ...
-
精液の落とし方を教えてください
-
精子が黄色?
-
精子に血が・・・
-
これって喉仏ですか? 私は女性...
-
風俗店へ行く前のご飯
-
白血球が多いとどんな心配があ...
-
検便についてです。 便は取れた...
-
急に主人の性欲が強くなった
-
レインボーシックスシージをし...
-
エクセル指定した範囲からラン...
-
男性に質問 お尻の穴を見せた...
-
EXCELで条件付き書式で空白セル...
-
知能テストは、今。 義務教育課...
-
甲状腺が腫れているが血液検査...
-
エクセルのラベルの値(文字列...
-
鏡についてです。自分の体型を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
彼女のことが好きすぎて彼女の...
-
白血球が多いとどんな心配があ...
-
勃起する時って痛いんですか? ...
-
精子が黄色?
-
検便についてです。 便は取れた...
-
これって喉仏ですか? 私は女性...
-
小数点以下を繰り上げたものを...
-
甲状腺が腫れているが血液検査...
-
精液の落とし方を教えてください
-
エクセル指定した範囲からラン...
-
EXCELで条件付き書式で空白セル...
-
2つの数値のうち、数値が小さい...
-
精子に血が・・・
-
エクセルのラベルの値(文字列...
-
イタリアから帰国する際、肉製...
-
ある範囲のセルから任意の値を...
-
リンク先のファイルを開かなく...
-
中出しをするとお腹が痛い・・・。
-
MIN関数で空白セルを無視したい...
おすすめ情報