gpt4 book ai didi

c - 重放文件系统调用

转载 作者:太空狗 更新时间:2023-10-29 11:23:01 27 4
gpt4 key购买 nike

我有一个格式的文件系统 I/O 调用的集合

processid   system-call

例如

1  open(A)
1 read(A)
2 open(B)
1 open(C)
2 write(B)
.....

即交错序列。我现在需要以大致相同的顺序重放这些跟踪,并且每个进程都由不同的线程执行。在我编写的程序中,主线程读取跟踪文件并通过将系统调用放入相关线程的任务队列中,将任务分配给与进程对应的线程。任务线程从其队列中读取调用并进行必要的调用。

但我没有实现在 I/O 跟踪文件中看到的交错。请给我一个方法...

谢谢

编辑:一种方法是在调用每个跟踪后延迟主线程读取文件,从而允许任务线程继续进行。这使线程的用途变得无用,但它似乎符合我的目的

最佳答案

让调度器在告诉线程做什么之后进入休眠状态,并一直 sleep 到线程完成时被线程唤醒。您不会同时执行;您将命令由不同的线程执行。这就是您所要求的,但它可能不是您想要的。您可能想要的是将依赖关系图写入文件并让每个线程等待其依赖关系完成。有些语言(如序言和 haskell)会为你做这件事。

关于c - 重放文件系统调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7382882/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com