-
C语言编写的进程同步实验代码
资源介绍
数据结构:
每个进程有一个进程控制块( PCB)表示。进程控制块可以包含如下信息:进程类型标号、进程系统号、进程状态(本程序未用)、进程产品(字符)、进程链指针等等。
系统开辟了一个缓冲区,大小由buffersize指定。
程序中有三个链队列,一个链表。一个就绪队列(ready),两个等待队列:生产者等待队列(producer);消费者队列(consumer)。一个链表(over),用于收集已经运行结束的进程
本程序通过函数模拟信号量的原子操作。
算法的文字描述:
① 由用户指定要产生的进程及其类别,存入进入就绪队列。
② 调度程序从就绪队列中提取一个就绪进程运行。如果申请的资源不存在则进入响应的等待队列,调度程序调度就绪队列中的下一个进程。进程运行结束时,会检查对应的等待队列,激活队列中的进程进入就绪队列。运行结束的进程进入over链表。重复这一过程直至就绪队列为空。
③ 程序询问是否要继续?如果要转直①开始执行,否则退出程序。
- 上一篇: 操作形同实验——进程同步和互斥
- 下一篇: Linux 进程控制与进程互斥(附源代码)(附实验报告)