4.2 流程图 (1)p操作流程图
Y
25
开始 s->val=s->val-1 N s->val<0 process->state=’W’ process->why=s->style 进入等待队列 从就绪队列中删除 结束 图4-1
p操作流程图
(2)v操作流程图
Y
26
开始 s->val=s->val+1 s->val<=0 N 随机选出等待当前释放的信号量的进程 waiting[x]->state='R'; waiting[x]->why=' '; 加入到就绪队列 从等待队列中删除 结束 图4-2 v操作流程图
(3)初始化程序流程图
开始 初始化信号量s1,s2,m1,m2 对生产者进程初始化,将生产者进程加入到就绪队列; 对消费者进程初始化,将消费者进程加入到就绪队列; 初始化缓冲区。 结束 图4-3
初始化程序流程图
(4)调度算法流程图
27
开始 随机调度一个就绪进程 生产者? 生产者进程 消费者进程 printf(\程序结束!\\n\结束 图4-4
调度算法流程图
(5)主函数流程图
图4-5
开始 设置随机数种子 初始化 显示所有进程状态 调用调度算法 结束 主函数流程图
28
相关推荐: