【发布时间】:2012-11-06 04:29:34
【问题描述】:
我在使用 C 编程的操作系统课上为作业作业编写 Pseduocode 时遇到了一些麻烦。
您将实现一个生产者-消费者程序,其中包含 N 个元素、P 个生产者线程和 C 个消费者线程的有界缓冲区队列 (N、P 和 C 应该是程序的命令行参数,以及三个附加参数 X、Ptime 和 Ctime,如下所述)。 每个
生产者线程应该将 X 个不同的数字排入队列(在每次调用 Enqueue 之间旋转等待 Ptime*100,000 个周期)。每个消费者线程
应该从队列中出列 P*X/C 项(自旋等待 Ctime*100,000 个周期 在每次调用 Dequeue 之间)。 主程序应该创建/初始化 有界缓冲区队列,打印时间戳,生成 C 消费者线程和 P
生产者线程,等待所有线程完成,然后打印另一个 时间戳和执行的持续时间。
我的主要困难是通过旋转等待变量乘以 100,000 来理解我的教授的意思。我已将令我困惑的部分加粗。
我了解时间戳将用于打印每个线程之间的差异。我们目前正在使用信号量并实现同步。对上述查询的任何建议将不胜感激。
【问题讨论】:
标签: c semaphore pseudocode