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で質問しましょう!
似たような質問が見つかりました
- CPU・メモリ・マザーボード AUSU PRIME X570-PROというマザーボードを使用しており、タルコフというゲームを快適に 2 2022/12/31 15:38
- Windows 10 外部ドライブにマウントできない問題について 9 2022/03/22 18:08
- iPhone(アイフォーン) iCloudのデータをiPhoneメモリに移動したい 1 2022/10/24 22:11
- その他(コンピューター・テクノロジー) デバイスセキュリティ < メモリの整合性はオフ 1 2022/10/10 15:32
- ノートパソコン このノートパソコンで大丈夫でしょうか? 2 2023/04/22 21:01
- CPU・メモリ・マザーボード 質問お願いします 「「RAM2GB+拡張4GB」などと書いてあるのは、搭載されているメモリ(RAM) 6 2023/08/28 12:31
- CPU・メモリ・マザーボード PCのメモリは4GBX2枚と 4+8GBはどちらがお勧めですか? 4 2023/07/06 08:21
- CPU・メモリ・マザーボード hp dc5700SFFについて 2 2022/06/03 10:50
- デスクトップパソコン intel hdグラフィックス3000 4 2022/10/03 14:14
- CPU・メモリ・マザーボード ノートパソコンでクロック数の違うメモリを1枚ずつ挿してデュアルチャンネルになりますか? 1 2022/11/18 00:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
至急!尿検査前日にオナニーし...
-
腕を見たら黄色くなってる部分...
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
勃起する時って痛いんですか? ...
-
精子が黄色?
-
口の中に黒い血の塊
-
白血球が多いとどんな心配があ...
-
尿検査前日に自慰行為した時の...
-
中出しをするとお腹が痛い・・・。
-
精子に血が・・・
-
これって喉仏ですか? 私は女性...
-
爪が紫色?
-
納豆食べた後の尿の納豆臭は何故?
-
筋トレするとチンコが縮んじゃ...
-
射精をして1週間以内に尿検査を...
-
尿検査の前日は自慰控えたほう...
-
EXCELで式からグラフを描くには?
-
excelでsin二乗のやり方を教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
至急!尿検査前日にオナニーし...
-
首吊りどこ締めるの
-
尿検査の前日は自慰控えたほう...
-
尿検査前日に自慰行為した時の...
-
検便についてです。 便は取れた...
-
白血球が多いとどんな心配があ...
-
中出しをするとお腹が痛い・・・。
-
射精をして1週間以内に尿検査を...
-
彼女のことが好きすぎて彼女の...
-
腕を見たら黄色くなってる部分...
-
勃起する時って痛いんですか? ...
-
変な話しになります。尿検査で...
-
これって喉仏ですか? 私は女性...
-
EXCELで条件付き書式で空白セル...
-
男です。昨日の午後3時くらいに...
-
今朝、毎朝の習慣でオナニーし...
-
納豆食べた後の尿の納豆臭は何故?
-
1日前の検尿
-
値が入っているときだけ計算結...
-
精子が黄色?
おすすめ情報