- 1、本文档共41页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
3.3进程控制原语(primitive):由若干条指令构成的“原子操作(atomicoperation)”过程,完成某种特定的功能,作为一个整体而不可分割--要么全都完成,要么全都不做。进程控制原语:(1)创建进程原语 (2)撤销进程原语
(3)阻塞进程原语 (4)唤醒进程原语进程创建进程撤销进程阻塞与唤醒Linux进程管理
253.3.1进程创建1.进程图:描述进程家族关系的有向树3.3进程控制ABCDHGFEIJK
253.3.1进程创建2.引起进程创建的典型事件3.3进程控制(1)作业调度(2)用户登录(3)提供特定服务(4)应用请求
253.3.1进程创建3.进程创建原语create(name,priority)创建一个新进程,建立进程的PCB结构并为其分配资源。3.3进程控制申请空闲PID申请空白PCB为新进程分配资源成功?成功?初始化PCB插入就绪队列返回PID入口YY出错出错NN
253.3.2进程撤销1.引起进程撤销的典型事件3.3进程控制进程正常运行结束而撤销进程异常终止而撤销进程应外界干预而终止:操作员或操作系统干预父进程请求父进程被撤销
3.3.2进程撤销由进程Pid获得其PCB若进程处于运行态,终止运行,设置重新调度标志若进程有子进程,递归撤销子进程或为子进程指定新的父进程回收进程资源将进程移出所在队列,待父进程收集其信息后,释放PCB2.进程撤销过程kill(Pid):回收进程资源
253.3.3进程阻塞与唤醒1.引起进程阻塞和唤醒的典型事件3.3进程控制当前进程请求资源失败当前进程需要等待某种操作的完成当前进程的前驱进程尚未完成当前进程无新工作可做
3.3.3进程阻塞与唤醒2.进程阻塞过程:sleep()3.3进程控制入口保存进程CPU现场信息到PCB或堆栈中置进程状态为“阻塞态”将进程PCB插入相应阻塞队列中转进程调度程序
3.3.3进程阻塞与唤醒3.进程唤醒:wakeup()3.3进程控制入口从阻塞队列中确定唤醒进程置进程状态为“就绪态”将进程PCB移出阻塞队列并插入相应就绪队列中
3.3.4Linux进程管理3.3进程控制进程描述符task_struct进程创建do_fork()执行程序exec()系列函数进程终止do_exit()等待子进程结束wait()进程睡眠wait_event*()进程唤醒wake_up()
3.3.4Linux进程管理由三部分组成:进程控制块(task_struct)正文段:进程要运行的程序代码数据段:又分为用户数据段和系统数据段用户数据段:进程在用户态下执行时直接操作的所有数据,包括全部变量及用户栈。系统数据段:主要是内核栈。保存中断现场信息和进程在内核态下执行函数嵌套调用的返回现场信息。内核栈的大小是静态确定的,而用户栈可以在进程运行时动态扩展1.Linux进程实体的组成:3.3进程控制
3.3.4Linux进程管理进程状态:state,exit_state:见前面3.2.3节的介绍相关标识符信息:pid:进程标识符tgid:线程组领头线程的PID,也是线程组所属进程的PIDpgrp:进程所属进程组的领头进程的PIDuid和gid:进程的用户ID及用户组的IDeuid和egid:有效的uid和gid,当用户使用“sudo”命令时,会暂时将root身份赋给euid和egid1.进程描述符task_struct()3.3进程控制进程状态信息相关标识符信息进程家族关系进程调度相关信息地址空间及文件系统信息内核堆栈及thread_info结构信号处理相关信息时间及定时器信息
3.3.4Linux进程管理进程家族关系:thread_group:指向该进程所在进程组中所有进程组成的链表real_parent:指向创建该进程的父进程parent:指向该进程的当前父进程children:指向该进程的子进程链表的头部sibling:指向兄弟进程链表中的下一个或前一个节点1.进程描述符task_struct()
3.3.4Linux进程管理进程调度相关信息:prio:进程的动态优先级,取值范围[0,139]static_prio:进程的静态优先级,取值范围[0,139]normal_prio:常规动态优先级rt_priority:实时进程优先级,取值范围[0,99]run_list:记录进程在就绪队列rq中的位置sched_class:进
文档评论(0)