所以我有一个问题,我真的不知道该怎么做。我希望也许你能让我知道如何处理它。
我需要在共享内存中分配 N 个缓冲区。每个缓冲区应初始化为 0。然后我必须分叉 N/2 个子进程。
然后每个孩子(i)将值(i)写入缓冲区(i),休眠一秒钟。然后读取当前缓冲区的值,如果值同时更改,则显示一条消息。然后孩子移动 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 个整数的数组吗?由于所有孩子都将访问相同的元素,这会是一个问题吗?