我正在尝试用C编写操作系统生产者消费者问题。我得到了上面提到的“分段错误”。这里很难解释一切,所以我在github上发布了代码。一看就能让你更好地了解我想要问的内容。
Github链接:https://github.com/Shad0walker/Producer-Consumer.git
我的档案顺序:
prod_cons_s.c
(主档案)
sem.h (includes threads.h)
threads.h (includes q.h)
q.h (includes TCB.h)
这是我面临的确切问题。
当我尝试执行V操作并将休眠进程从SemQ恢复到RunQ时,我收到此错误。 以下是生产者消费者的情景。
我有一个带生产者的RunQ - >消费者 - >消费者 - >制片人 - >消费者。
P(&EMPTY)
并将信号量计数器打到-1。从而从RunQ中删除此消费者进程并将其添加到SemQ。上下文与运行RunQ中的下一个进程(Producer)的CPU交换。 SUCCESS V(&EMPTY)
将信号量计数器恢复为0并将STEP 3中的休眠进程恢复为RunQ。ERROR
这是我收到此错误的地方。 任何帮助将非常感谢!!!