我正在创建一个C程序来测量项目的进程切换,我遇到了一些困难。我正在使用的方法是创建2个管道,parentpipe和childpipe。父级将一个字节写入其管道,然后读取子管道,理论上强制控制子管道。子e读取父管道并将一个字节写入子管道。
以下是我的问题:
这些过程实际上并未被迫切换。如果我使用睡眠而不是上述方法然后切换,但我试图不使用睡眠。我如何强迫他们切换?
我正在使用CLOCK_MONOTONIC进行测量,无法确定将其开始和停止的位置。无论我把它放在哪里,我都会不断得到垃圾值(假设我在每个过程中都放了一个:从一个开始然后停在另一个过程中)。我把时钟放在哪里?
感谢您的帮助。
答案 0 :(得分:0)
请务必选择无缓冲的i / o。否则,在返回之前,读取和写入会等待更多字符,即使只请求一个字节也是如此。
在程序开头记录CLOCK_MONOTONIC,并从所有后续时间戳中减去它。通常CLOCK_MONOTONIC实现为自系统启动以来的时间。如果您展示代码,建议放置测量的位置会更容易。