各位大侠好: 小妹在这里向各位急求如下程序,望您能解燃眉之急,是在TC环境下运行的。望给位大哥能够帮忙,我深表感激。 如帮我写好程序可发到我的邮箱里btyier@163.com 再次表示感谢!
题目是这样的
1 设计进程控制块PCB表结构,分别实现优先数调度算法和循环轮转算法。
PCB机构通常包括以下信息:进程名,进程优先数(或轮转时间片),进程所占的CPU时间,进程的状态,当前队列指针等。根据调度算法的不同,PCB结构的内容可以作适当的增删。
2 建立进程就绪队列。对两种不同算法编制入链子程序。
3在优先数调度算法中,进程每执行一次,优先数减3,CPU时间片数加1,进程还需要的时间片数减1.
4 在时间片轮转算法中,采用固定时间片,时间片数为2,进程每次执行一次,CPU时间片数加2,进程还需要的时间片减2 ,并排到队尾.
5 整个程序由FIRSTIN,INSERT1,INSERT2,PRINT,CREATE,PRISCH和ROUNDSCH过程组成。其中:
INSERT1的功能是把还未完成且优先数小于别的进程的进程PCB按进程优先数的顺序插入到就绪队列中。
INSERT2的功能是在轮转法使用过程中,将执行了一个单位时间片数(为2)且还未完成的进程的PCB插入到就绪队列的队尾。
FIRSTIN的功能是将就绪队列中的第一个进程投入运行。
PRINT打印每执行一次后的所有进程状态,这里,就绪(等待)用“W”代表。
CREATE的功能是创建新的进程,即创建进程的PCB,并将此PCB链人到就绪队列中去。
PRICH按优先数算法调度进程。
ROUNDSCH按时间片轮转法调度进程。
6主程序中定义了PCB的结构和其他变量NUMBER-----进程数,ALGO为10个字符长的字符串,存放要求输入的算法的名,PRIORITY为优先数算法,ROUNDROBIN为循环轮转法,在程序运行是输入其中的一个。