2025年操作系统实验进程管理与调度实践解析.docx
广束工崇大学
操作系统试验汇报
学
学专班学
院计算机学院 业08软件工程 级04班 号
姓名刘贤生指导教师
(12月)
廣东工荣大学
计算机学院软件工程专业04班学号:
姓名:刘贤生协作者:教师评估:
考勤状况
程序运行状况程序质量
试验技能创新精神
试验汇报设计文档
试验一_题目进程调度第8周星期四试验二题目作业调度第10周星期四
试验三(综合性)题目主存空间的分派与回收第15周星期四试验四题目_文献系统第16周星期四
试验平台:
1、计算机及操作系统:PC机,WindowsXP
2、编程环境:developc++6.0
源程序名和可执行程序名:
试验一:进程调度.c,进程调度.exe
试验二:单道_作业调度.c,单道_作业调度.exe
试验三(综合性):主存空间的分派与回收.c,主存空间的分派与回收.exe
试验四:文献管理,c,文献管理.exe
廣东工荣大学
学号:_姓名:刘贤生协作者:
试验一题目进程调度第8周星期四
一、试验目的
用高级语言编写和调试一种进程调度程序,以加深对进程的概念及进程调度算法的理解。
二、试验内容和规定
进程调度,设计一种有N个进程并发的进程调度程序。规定采用最高优先数优先算法。
三、试验重要仪器设备和材料
试验环境
硬件环境:PC机
软件环境:developc++5.0
四、试验原理及设计方案
试验原理:把CPU分派给就绪队列中优先数最高的进程。
试验措施:采用“最高优先数”调度算法对五个进程进行调度,优先数高的先运行,优先数低的进入就绪队列。
试验环节:
1、画出流程图
开始
初始化PCB,输入进程信息
各进程按优先激从高到低排列
就绪队列空?
N
就绪队列首进程投入运行
时间片到,运行进程已占用CPU时间+1
运行进程已占用CPU时间已达到所需的运行时间
未到达
决运行进程的优先数减1把运行进程插入就绪队列
结束
已到达
进程完成
数消该进程
2、代码实现,其进程控制块定义为构造体pcb,如下
关键代码如下:
#includestdio.h#includestdlib.h#includestring.h
#includeconio.h
typedefstructnode{
charint
int
int
int
int
char
name[10];prio;
round;
cputime;needtime;count;
state;
structnode*next;}PCB;
PCB*finish,*ready,*tail,*run;intN;
firstin()
run=ready;
run-state=R;ready=ready-next;
voidprt1()
{
printf(namecputimeneedtimecountroundstate\n);
}
voidprt2(PCB*q){
printf(%-8s%-8d%-8d%-6d%-5d%-c\n,q-name,
q-cputime,q-needtime,q-count,q-round,q-state);
voidprt(
{
PCB*p;
if(run!=NULL)prt2(run);
p=ready;
while(p!=NULL)
prt2(p);
p=p-next;
}
p=finish;
while(p!=NULL)
prt2(p);
p=p-next;
}
printf(Pressanykeytocontinue...\n);
_getchO;
prt10;
insert(PCB*p2)
tail-next=p2;tail=p2;
p2-next=NULL;}
voidcre