- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
操作系统实验报告-单处理机系统的进程调度--第1页
实验二单处理机系统的进程调度
一.实验目的
(1)加深对进程概念的理解,明确进程与程序的区别。
(2)深入了解系统如何组织进程、创建进程。
(3)进一步认识如何实现处理机调度。
二.实验内容
编写程序完成单处理机系统中的进程调度,要求采用时间片轮转调度算法。
三.实验原理
在早期的时间片轮转法中,系统将所有的就绪进程按先来先服务的原则,排成一个
队列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片.时间片的大小从几
ms到几百ms.当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序便据
此信号来停止该进程的执行,并将它送往就绪队列的末尾;然后,再把处理机分配给就
绪队列中新的队首进程,同时也让它执行一个时间片.这样就可以保证就绪队列中的所
有进程,在一给定的时间内,均能获得一时间片的处理机执行时间.
四.实验部分源程序
#includestdio.h
#includetime.h
#includestdlib.h
/*********************以下是全局数据结构和变量***********************/
/*PCB结构*/
structPCB{
intpname;
intpri;
intruntime;
intwaittime;
structPCB*next;
}pcb[7];
structPCB*running;/*运行指针*/
structPCB*Hready;/*高优先级就绪队列头指针*/
structPCB*Lready;/*低优先级队列头指针*/
structPCB*wait;/*等待队列头指针*/
intA=0;
/**************************以下是函数说明****************************/
voiddelay();/*利用循环实现延迟*/
voidproc(structPCB*running);/*模拟进程3-9*/
voidInsertIntoQueueTail(structPCB**head,structPCB*node);/*将node插入到head所指
示的队列的尾部*/
intproc_switch();/*进程调度函数*/
voidproc_wait();/*进程等待函数*/
intproc_wakeup();/*进程唤醒函数*/
操作系统实验报告-单处理机系统的进程调度--第1页
操作系统实验报告-单处理机系统的进程调度--第2页
/************************以下是函数定义及注释************************/
main()/*主函数*/
{inti;
/*初始化,创建进程3-9,置低优先级,等待时间为0,依次插入低优先级队列*/
for(i=0;i3;i++){
pcb[i].pname=i+3;
pcb[i].pri=0;
pcb[i].waittime=0;
InsertIntoQueueTail(Lready,pcb[i]);
}
wait=NULL;
Hready=NULL;/*
文档评论(0)