ImageVerifierCode 换一换
格式:PPT , 页数:47 ,大小:1.14MB ,
资源ID:12782164      下载积分:12 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/12782164.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(第08章-UNIX的进程管理.ppt)为本站上传会员【快乐****生活】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

第08章-UNIX的进程管理.ppt

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第八章,UNIX,的进程管理,程序的并发执行与顺序执行,顺序执行,并发执行,程序执行是顺序的,程序执行是间断的,程序独占系统资源(封闭性),程序共享资源,程序执行的可再现性,程序执行失去可再现性,进程是一个具有一定功能的程序在一组数据集上的一次动态执行过程。,进程是线程的容器,是资源的分配单位。,在分时多道程序环境中,,CPU,在多道程序之间切换,每道程序执行一个时间片,并行方式完成多道程序的并发请求。传统,UNIX,描述这一活动单位是“进程”。,进程的概念,进程的组成,进程控制块,程序代码,数据集

2、进程的状态,运行,阻塞,就绪,创建,退出,进程控制的基本概念,进程的创建、种植、阻塞、唤醒,原语,临界区,同步,互斥,UNIX,中的进程,进程控制系统负责:,管理将要被,CPU,使用的程序和数据,存储空间分配,进程交换调度,并发执行控制,系统资源分配,1.UNIX,进程创建机制,UNIX,系统采用分时(,time-sharing system),策略,管理多道程序的运行,时间片通常设计的比较小,典型的为,1,秒,进程调度采用动态优先数法,选择占用处理器的进程,在同等优先级的进程队列中,使用,FCFS,算法调度,1,),UNIX,进程控制的层次结构,从系统启动开始,进程创建和控制具有层次性结构

3、引导,核心创建,0#,0#,创建,1#,终端,n,终端,1,终端,2,UNIX,中的两个特殊进程:,0#,进程,由内核程序创建,初始化时创建,1#,进程,系统引导完成后,负责调度分配处理器,管理中负责进程调度与交换,1#,进程,是所有用户进程的祖先进程,2,)用户进程的创建机制,password,用户注册,chs,wc,chs,ls,用户注销,chs,chs,chs,chs,chs,注意:用户创建的进程树以,1#,进程为根,2.UNIX,中的进程描述,UNIX,进程上下文划分为:,Proc,结构和,user,结构,用户栈、核心栈,正文段、数据段,Proc,结构,User,结,构,系,统,栈,

4、用,户,栈,数,据,段,正,文,段,PCB,1)proc,结构,进程最基本信息,包括,:,进程状态,进程用户标识,进程标识,进程存储大小,进程调度参数,软中断信号项,执行时间及资源使用,User,结构起始址,进程页表指针,被挂起事件描述,2)use,结构,是进程的私有信息和数据,指向,proc,的指针,系统调用参数,与用户标识有关项,与文件结构有关项,输入输出项,打开文件描述符,中断及软中断参数,错误信息,各段长度,文件权限屏蔽项,交换数据项,3),寄存器的内容,如:,PC,的内容,PSW,内容,栈指针内容,通用寄存器内容,4),进程中的三个主要区段,共享正文段,数据段,栈段,命令执行和进程属

5、性,1.UNIX,命令执行与进程创建紧密相关,Shell,命令包括内部和外部命令,.,内部命令是,shell,进程代码的一部分,如,:,cd,echo,exec,exit,pwd,set,test,times,read,wait,外部命令是以文件存储的代码,可以是二进制或,shell script,如,:,grep,more,cat,mkdir,rmdir,ls,sort,ftp,telnet,ps,.,通常,shell,创建一个新进程执行这些命令,当命令执行时,shell,进程等待它的结束,外部命令,sort,在,shell,中的执行过程,:,sh,sh,sh,sort,sh,fork,执行

6、sort,父,父,子,1,步,2,步,3,步,父,命令执行时系统创建进程过程实例,:,%,ps,Pid,tty,time,cmd,15672 pts/0 1:03 -,csh,%,sh,$echo this is,bourneshell,.,This is,bourneshell,.,$,ksh,$echo this is,kornshell,.,This is,kornshell,.,$,ps,Pid,tty,time,cmd,15672 pts/0 1:03 ,csh,pst/0 1:05,sh,pst/0 1:06,ksh,$D,$D,%,2.,进程属性,了解进程属性可以更好的管理和调

7、整用户的工作。,用,ps,命令可以查阅系统中运行的进程属性,.(,不同版本略有不同,),ps,options-,作用,:,报告进程状态,常用选项,:,-a-,显示除登录,shell,以外所有运行在该终端上的进程信息,-e-,显示系统中所有运行进程的信息,-l-,进程信息按长列表方式显示,-u,uidlist,-,显示所有属于,uidlist,中用户的进程信息,长列表中包括的进程属性,:,F:,进程标志位,S:,进程状态,(,是否运行,等待事件,就绪等,),UID:,用户,ID,PID:,进程,ID,PPID:,父进程,ID,C:CPU,的利用率,PRI:,进程优先数,ADDR:,进程在内存或磁

8、盘的地址,SZ:,占用主存空间大小,按块,WCHAN:,等待位,TTY:,终端,TIME:,进程运行或在,sleep,或停止前运行时间,CMD:,命令,引起这个进程的命令列表,.,UNIX,进程调度与管理,进程状态是,proc,中的一组数据,,system V,有九种状态。,1,进程状态及状态转换,1,)用户态下的执行态,2,)核心态下的执行态,3,)内存就绪态,4,)外存就绪态,5,)内存中的睡眠,6,)外存睡眠,7,)被跟踪态,8,)初始态,9,)僵死态,UNIX,状态转换关系,进程状态间转换的几条规定:,进程可在用户态及核心态下运行,进程,i,核心态,用户态,中断,/,系统调用,重置,P

9、SW,对就绪进程的两种处理方法,内存就绪进程参与竞争,外存就绪应先换入内存。由,0#,进程管理。,有些状态只能做单向转换,内存睡眠的进程可调出到外存睡眠,而外存睡眠的进程不能调入到内存睡眠,外存睡眠的进程在被唤醒时只能进入外存就绪态,等待下一次的调度时再进入内存,转换是单向的。,2.,进程调度程序,1),进程调度程序主要责任,对参与竞争,CPU,且已备执行条件的进程进行分析和裁决,对选中的进程做,CPU,控制权转交,管理进程运行中各种状态的转换,完成进程在系统内外存之间的交换,2),调度原理,采用:动态优先级多级反馈循环调度法(,Round Robin With Multiple Feedba

10、ck).,调度原理,:*)给进程分配一个时间片,*)时间片结束时计算进程优先级,*),用优先数做比较,选出高优先级进程,*)分析情况重置状态,*)调度高优先级进程开始运行,*)被抢夺了,cpu,的进程反馈到相应的优先级队列中,3),调度时机,UNIX,中有两种调度时机:,a,)进程自动放弃,CPU,b),进程由核心态转为用户态时,说明:,具体调度由,0#,进程中的,switch,程序完成。,且第二种调度时机特点是:综合考虑减少系统设计复杂度及实际运行中的可行性。,第一种调度时机是可预见的,插入,switch,很容易。,4),调度标志的设置,三种调度标志:,Runrun,-,请求,cpu,调度,

11、Runin,-,请求换入内存的调度标志,Runout,-,请求换出内存的标志,5),调度策略及优先级计算,Unix,sysV,采用动态优先数调度策略,并且规定,优先数越大,其优先级越低。,优先数计算公式:,P-,pri,=P-cpu/2+PUSER+P-nice+NZERO,其中:,PUSER,,,NZERO,是优先数基值;,P-,cpu,是每个进程最近一次使用,CPU,的时间;,P-nice,是用户设置的进程优先数偏置值。,普通用户只可使用,nice,加大优先数,%nice-5,myprog,&,公式分析:,对于新创建的进程,由于,P-cpu/2=0,,所以其优先数会最小。因此会比较快的得到

12、调度。,对于原有进程,a),当被调度时,:,随着进程被调度执行,其,P-,cpu,的值不断增加,会被其它进程抢先;,b),当不被调度时,:,由于公式中,P-,cpu,是被一个常数“,2,”所除,因此每当计算优先数时,早先被调度过的,P-cpu/2,项会衰减。因此当优先数小于当前进程和其它进程时,又会重新抢占,CPU,。,进程调度的实现实质上是完成进程之间上下文(映象)的切换。,分三步完成:,第一步:检查是否做且系统允许做上下文切换,若条件满足,则保存:,进程中各段内容(数据,正文,栈),有关寄存器中内容,相关的栈指针,否则返回有关信息,不作调度。,6),进程调度的实现过程,第二步:,0,号进程

13、选取就绪队列中一个优先级最高的进程使之占有,CPU,;若没有满足条件的进程存在,,0,号进程循环等待直到条件满足为止。,第三步:被选中的进程变为当前进程。,系统从它的核心栈或,user,结构中恢复该进程的有关寄存器内容和栈指针,新进程开始执行。,进程管理的系统调用,1.,系统调用控制进程的产生、运行、消亡,Unix,中进程是由系统调用,fork,创建的实体。,调用,fork,的是父进程,由,fork,创建的是子进程。,一个进程可以有多个子进程,但只有一个父进程。父子进程的关系图示如下:,parent,zomb,child,child,parent,wait,fork,exec,exit,2.,

14、进程的创建,进程创建:,fork(),调用格式:,pid,=fork();,若调用失败,,pid,=-1,若调用成功,返回子进程,pid,的值,(,pid,=0),及,proc,结构中的某些参数;,此时子进程得到的返回值是,0,且子进程是父进程的副本。,在创建进程时,Unix,的核心程序为,fork,完成:,1),在进程表中为子进程分配,proc,结构;,2),给子进程赋唯一的标识符,pid,;,3),复制父进程上下文的一个逻辑副本;,4),增加父进程的文件表、索引节点表的引用数;,5),为父进程返回子进程的标识符,pid,;为子进程返回标识符,0,。,fork,系统调用举例:,/*,例题,f

15、ork_test.c,*/,main(),int,pid,;,printf(“Just1 process new.n”);,printf(“Callingfork,()n”);,pid,=fork();,if(pid,=0),printf(“Imthe,child.n”);,else,if(pid,0),printf(“Imthe,parent.n”),else,printf(“forkfailed.n,”);,printf(“programend.n,);,分析运行结果可发现,子进程的存在!,3.,终止进程:,exit,使用,exit,系统调用,可以终止进程的运行,.,核心程序使进程进入僵死

16、态并释放它所占有的资源,:,关闭所有打开的文件,;,撤除进程上下文占有的内存。,Exit,的调用方式为:,exit(satus,);,注意,:,程序中使用,Return,和,exit,的区别,return,是函数结束的返回,而,exit,是进程结束的返回。,孤儿进程及僵死进程的处理,孤儿进程,当子进程的父进程终止后,该子进程就变成了孤儿进程(,orphan process),。,孤儿进程由,1(init),号进程收养。,父进程终止后,子进程变成后台进程。,2),僵死进程,子进程被创建并工作完成后,等待父进程回收时变为僵死进程,.,父进程使用,wait,回收子进程,.,孤儿进程由,init,进程

17、中的特定机制回收,.,4.,指定进程执行另一程序的系统调用,exec,系统调用功能是:用一可执行程序副本覆盖调用程序的正文段和数据段,并用调用进程提供的参数执行新的代码段。,例:,main(),printf(“onen,”);,execl(“/bin/ls”,”ls”,0);,printf(“twon,”);,perror(“execerror,”);,程序执行情况:,1,),execl,调用成功时,只输出“,one”,然后用,ls,的执行结果覆盖后面的程序代码;,2,),execl,调用失败时,输出:,one,Two,exec,error:No,sushfile,or directory,e

18、xec,系统调用的基本格式:,execve(pathname,argv,envp,);,pathname:,要执行文件的路径名;,argv,:,字符指针数组,是可执行程序的参数;,envp,:,字符指针数组,指示执行程序的环境。,Exec,有六种调用方式:,exec,的六种调用方式:,execve,execle,execvp,execv,execl,execlp,它们以后两个字母区别调用方式:,l:,长格式调用,每个参数指针独立传递并以空指针,0,结束;,例子,1,v,:用,argv,指针数组传递运行参数;否则每个命令行参数是单个参数,.,例子,2,e,:从,envp,指针数组传递环境参数;否

19、则用现有环境变量复制新程序环境,.,p,:在,PATH,指定的目录中搜索指定的文件,否则在当前目录中搜索。,例,1:,execl(“/bin.ls”,”ls”,”-l”,”abc.c”,0);,例,2:,main(argc,argv,),intargc,;,char*,argv,;,if(,argc,0),wait(0);/*,等待子进程*,/,printf(“Imthe,parent.n”);,else,printf(“forkfailed.n,”);,printf(“programend.n,);,库函数,system,使用,system,可以在一个程序的执行中执行另一程序,调用格式为:,

20、status=,system(command,);,其中,status:,整数,类似,wait,中的返回状态;,command:,字符指针,指出要执行的命令或程序名,.,例:用,system,函数写出一最简形式的,shell,命令解释程序例子,.,程序功能应包括:,1)shell,命令执行应该具有循环执行功能,.,2),应具有命令提示符功能,3),可正确执行用户输入的,UNIX,命令,4),可给用户一定的提示信息,5),要具有程序正常退出的机制,/*,例,mini-,sh.c,*/,#include,syscmd(prompt,),char*prompt;,for(;),char buf80;,printf(“%s”,prompt,);,gets(buf,);,if(!strcmp(buf,“exit”)return;,system(buf,);,main(),printf(“Entercommand,exit,for quit:n”);,syscmd,(“”);,exit(0);,System,函数由系统调用构成的,步骤如下:,1,)用,fork,创建一子进程;,2,)用,exce,执行,/bin/,sh,的命令;,3,)子进程中用,exit,做出错处理;,4,)父进程中用,wait,保证在命令或程序执行完后,父进程仍有控制权;,5,)用软中断信号及处理技术完成其他的控制。,

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服