だから、どうしたらいいのかわからないという問題があります。対処方法を教えていただければ幸いです。
共有メモリに N 個のバッファを割り当てる必要があります。各バッファは 0 に初期化する必要があります。次に、N/2 個の子プロセスをフォークする必要があります。
次に、各子 (i) は値 (i) をバッファー (i) に書き込み、1 秒間スリープします。次に、現在のバッファの値を読み取り、その間に値が変更された場合はメッセージを表示します。次に、子は i 位置を N/2 回移動します。
So I can have
N Buffers = 11. (must be prime)
N/2 children = 5.
So child 2 would:
write into buffer 2, sleep, read from buffer 2. (now move 2 positions)
write into buffer 4, sleep, read from buffer 4. (now move 2 positions)
**remmeber we only have five buffers so we go around again*****
write into buffer 1, sleep, read from buffer 1. (now move 2 positions)
write into buffer 3, sleep, read from buffer 3. (now move 2 positions)
write into buffer 5, sleep, read from buffer 5. ***we stop moving here. N/2 moves already performed.
これをどのように行うべきかについてのアイデアはありますか?
- N 個の整数の配列を作成することはできますか? すべての子が同じ要素にアクセスするので、これは問題になりますか?