文档详情

2025年操作系统实验进程管理与调度实践解析.docx

发布:2024-12-29约2.42万字共87页下载文档
文本预览下载声明

广束工崇大学

操作系统试验汇报

学专班学

院计算机学院 业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

显示全部
相似文档