进程的控制系统设计说明书.docx
- 文档编号:2158222
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:13
- 大小:225.56KB
进程的控制系统设计说明书.docx
《进程的控制系统设计说明书.docx》由会员分享,可在线阅读,更多相关《进程的控制系统设计说明书.docx(13页珍藏版)》请在冰豆网上搜索。
进程的控制系统设计说明书
摘要1
正文2
1.设计思想2
2.相关的各模块的伪码算法2
3.函数的调用关系8
4.测试结果9
总结12
参考文献13
致谢14
摘要
进程是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行分配和保护的基本单位。
进程的组成之一是PCB,它是进程控制块,是系统为描述进程而设计的一种数据结构。
进程由创建而产生,由调度而执行,由撤销而消亡的生命周期,因此操作系统要有对进程生命周期的各个环节进行控制的的功能,所谓进程控制,是指系统使用一些具有特定功能的程序段来创建进程、撤销进程以及完成进程各状态间的转换。
进程的控制包括:
创建进程、撤销进程、阻塞进程、唤醒进程、激活进程等,这些控制和管理功能是由操作系统中的原语来实现的,而进程控制原语是对进程生命周期控制和进程状态转换的原语,基于进程的基本状态,他们是创建进程原语、撤销进程原语、阻塞进程原语和唤醒进程原语。
原语是在管态下执行、完成系统特定功能的过程。
系统对进程的控制若不使用原语,就会造成其状态的不确定性,从而达不到进程控制目的。
原语的一种实现方法是系统调用方式,采用访管指令实现,原语在使用中不可中断。
现在操作系统设计中,操作系统内核是基于硬件的第一次软件扩充,它为操作系统的进程控制及管理提供了良好环境,而进程的控制及调度体现了操作系统的运行速度及运行频率,所以说进程控制在靠近硬件的软件层次中占据着重要地位。
关键词:
进程、控制、原语
正文
1.设计思想
进程控制是操作系统对进程进行管理所提供的控制操作。
进程控制至少应该包括进程创建、进程撤销、进程阻塞、进程唤醒、进程执行等操作,它们都使用原语实现。
所谓原语是指在执行过程中不允许中断,它属于操作系统内核的一部分,以系统调用的形式提供给用户和操作系统使用。
因此,我们通过进程的创建原语、撤销原语、阻塞原语以及唤醒原语等,再结合大量的资料,最终完成了进程控制系统源程序。
2.相关的各模块的伪码算法
进程控制通过四个原语实现:
即
(1)创建原语
(2)撤销原语(3)阻塞原语(4)唤醒原语。
PCB的常用数据项:
i.status:
进程状态,包括Running、Readya、Readys、Blockeda、Blockeds等。
i.state:
队列指针,所在队列的首指针。
i.addr:
队列中进程的PCB间的链接指针,又可分为向前、向后两种指针。
i.priority:
进程的优先级。
i.CPU-state:
CPU的状态保护区。
i.mainstore:
分配的主存区域。
i.resource:
资源清单。
i.parent:
父进程指针。
i.progeny:
后代进程指针。
EP:
运行指针。
RQ:
就绪队列指针。
1.创建原语:
过程:
先寻找一个空闲的PCB,然后填写PCB初值,赋值完后,将PCB插入相应的队列中。
创建原语流程图:
创建原语算法:
voidcreate(n,S0,K0,M0,R0,acc)
{
i=getinternalname(n);/*获得进程n的内部名*/
i.id=n;/*填写进程的外部名*/
i.priority=K0;/*填写进程的优先级*/
i.cpustate=S0;/*填写CPU的初始状态*/
i.mainstore=M0;/*填写内存区域*/
i.resources=R0;/*填写资源清单*/
i.status="就绪";/*设置“就绪”状态*/
j=EP;/*获得调用者内部名*/
i.parent=j;/*填入调用者进程内部名,即进程i的父进程*/
i.progeny=0;/*i的子进程为空,刚被创建,还没有子进程*/
j.progeny=i;/*把i填入其父进程PCB中家族指针处*/
i.state=RQ;/*指示i进程属于就绪队列*/
insert(RQ,i);/*把i进程PCB插入就绪RQ队列*/
}
2.撤销原语:
过程:
首先要找到要终止进程的PCB,若该进程正在运行,则终止它的运行,并置重新调度标识,终止属于该进程的子孙进程,释放终止进程所拥有的全部资源,将终止进程移出它所在队列并收回PCB。
撤销流程图:
撤销原语算法:
voiddestroy(n)
{
sched=false;
i=getinternalname(n);/*获得进程n的内部名*/
kill(i);/*撤销进程*/
if(sched==true)scheduler;/*需要调度时转进程调度程序重新调度*/
}
voidkill(i)
{
if(i.status=="执行状态")
{
stop(i);
sched=true;
}
remove(i.state);/*将该进程的PCB从相应队列中移去*/
foralls∈i.progenydokill(s);/*若有子进程s,递归调用kill(s)撤销之*/
forallr∈(i.mainstore||i.resources)do
if(owend(r))insert(r.semaphore,r.data);/*属于父进程资源归还,且插入资源清单*/
forallR∈createdresources(i)do
removedescriptor(R);/*撤销自己的资源清单,归还清单*/
removeprocessconcrolblock(i);/*释放进程PCB*/
}
3.阻塞原语:
过程:
首先中断PCB,停止进程运行,将CPU的现行状态存放到PCB的CPU状态保护中,然后将该进程置阻塞状态,并把它插入等待队列中,然后系统执行调度程序,将CPU分配给另一个就绪的进程。
阻塞原语流程图:
阻塞原语算法:
voidblock(void)
{
i=EP;
stop(i);/*阻塞调用进程自己*/
i.status="阻塞";/*设置阻塞状态*/
i.state=WQ(r);/*填写阻塞队列名称*/
insert(WQ(r),i);/*把调用进程的PCB插入相应等待队列WQ(r)*/
scheduler;/*转进程调度程序重新调度*/
}
4.唤醒原语:
过程:
执行时,首先找到被唤醒进程的内部标识,让该进程脱离阻塞队列,将现行状态改为就绪态,然后插入就绪队列中,等待调度运行。
唤醒原语流程图:
唤醒原语算法:
voidwakeup(n)
{
i=getinternalname(n);/*获得进程n内部名*/
remove(WQ(r),i);/*把进程i的PCB从相应阻塞队列中移出*/
i.status="就绪";/*将进程置为就绪态*/
i.state=RQ;/*指示i进程属于就绪队列RQ*/
insert(RQ,i);/*把进程i的PCB插入就绪队列RQ*/
}
3.函数的调用关系
4测试结果
输入所需进程:
请输入进程数:
2
进程号No.1:
输入进程名:
进程1
输入进程优先级:
2
输入进程运行时间:
3
进程号No.2:
输入进程名:
进程2
输入进程优先级:
1
输入进程运行时间:
2
显示所输出进程信息:
经过五次运行后进程控制完成:
总结
不知不觉中为期2个星期的课程设计结束了,我的设计结果终于出来了,仔细想来,有喜有忧。
通过课程设计我学到了很多东西,也提高了我的动手能力。
经过这次课设我学到了很多。
通过此次课程设计加深理解了什么是进程,熟悉了LINUX/WINDOWS支持的进程的控制方式。
熟悉了/LINUX/WINDOWS的常用基本命令。
这次课设的题目是进程控制系统,而经过查阅的大量资料,我发现进程控制系统主要包括进程的创建,进程的撤销,进程阻塞以及进程的唤醒,然后分模块完成。
而且通过此次课程设计使我懂得了思考的重要性,学到了严谨的学习态度、刻苦的探索精神,也增加了去面对更大挑战的信心和勇气,同时也培养了把学到的知识用于解决实际问题,培养了我们的独立动手能力。
如果仅靠一个人要完成所有的工作是非常困难的,所以在以后的学习中我会更加注意各个方面的能力的协调发展。
在课程设计时遇到了很多的问题,在老师的帮助,同学的帮助以及对各种资料的查阅中,将问题解决,培养了我自主动手,独立研究的能力,也告诉我合作的重要性,为今后在学习工作中能更好的发展作下了很好的铺垫。
两周的课程设计很短暂,但其间的内容是很充实的,在其中我学习到了很多平时书本中无法学到的东西,积累了经验,锻炼了自己分析问题,解决问题的能力。
并学会了如何将所学的各课知识融汇组织来配合学习,两周中我受益匪浅。
参考文献
1.汤子瀛,哲凤屏.《计算机操作系统》.西安电子科技大学学出版社.
2.王清,李光明.《计算机操作系统》.冶金工业出版社.
3.孙钟秀等.操作系统教程.高等教育出版社
4.曾明. Linux操作系统应用教程.陕西科学技术出版社.
5.张丽芬,刘利雄.《操作系统实验教程》.清华大学出版社.
6.孟静, 操作系统教程--原理和实例分析.高等教育出版社
7.周长林,计算机操作系统教程.高等教育出版社
8.张尧学,计算机操作系统教程,清华大学出版社
9.任满杰,操作系统原理实用教程,电子工业出版社
致谢
为期两个星期的课程设计结束了,说实话我从中学到了很多课本上没有的东西,让我受益匪浅。
在此,我要向我的指导老师朱红蕾老师致以最诚挚的谢意。
她在我的课程设计过程中提出了指导性的方案和架构,并指引我阅读相关的资料和书籍,使我在不熟悉的领域中仍能迅速掌握新的技术。
在这段时间内老师一直认真的指导我们,才使设计圆满完成!
我还要再次感谢我的操作系统老师王旭阳老师,在以往的基础课学习中为我打下良好的基础,这是我这次课程设计能够顺利完成的前提。
一个学期以来老师的严肃的教学态度使我从对该课程的一无所知到有所掌握,也为我今后的学习与工作打下了坚实的基础。
最后还要感谢我的同学们,感谢他们给与我必要的帮助和讲解。
没有他们,也许就难以发现一些潜在的错误,在此一并表示感谢。
也感谢他们给我提出那么多的解决方案和指导性意见,帮我顺利完成我的课程设计。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 进程 控制系统 设计 说明书