04进程管理一进程控制.ppt

  1. 1、本文档共56页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 2.3 进程控制 进程控制的概念 进程控制包括: 进程创建、 进程撤消、 进程阻塞、 进程唤醒。 这些操作都要对应地执行一个特殊的程序段(操作系统核心程序),同时系统也通过系统调用给用户提供进程控制的功能。教材上叫原语(一种特殊的系统调用)。 * 2.3 进程控制 进程控制的概念 运行状态 等待状态 进程阻塞 等待状态 就绪状态 进程唤醒 新建进程置为就绪状态 进程创建 进程终止(消亡) 进程撤消 就绪状态 运行状态 进程调度 * 2.3 进程控制 进程控制的概念 在UNIX系统中进程控制的系统调用有: fork() 创建子进程 sleep() 进程睡眠 exit() 进程自已终止(自杀) wait() (父)等待子进程终止 wakeup() 进程唤醒 * 2.3进程控制 进程创建 在UNIX系统中用户键入一个命令(如date, ps,ls),shell就创建一个进程。 一个程序(可执行的)如果可分成几个程序段,并且这些程序段可并发执行,用户程序可使用创建程序的系统调用创建多个进程,每个进程执行一个程序段。例如,放VCD程序。 进程创建类似于人出生后要到派出所报户口。 * 2.3 进程控制 进程创建 创建事由 在终端上交互式的登录 作业调度 提供服务 由系统内核创建新进程 应用请求 由请求的应用程序自行创建新进程 * 2.3 进程控制 进程创建 进程创建系统调用: create(name,priority,start-addr) UNIX系统: fork() * 2.3 进程控制 进程创建后队列的变化图 * 2.3 进程控制 进程撤消 进程完成其任务,希望终止时,调用撤消进程的系统调用(进程撤消原语)撤消进程。相当于一个人死亡后,家人要去派出所消户口。 在一般操作系统中进程撤消的系统调用是:kill UNIX系统中是exit()。 终止事由: 正常结束 异常结束 外界的干预 * 终止流程: OS通过调用进程终止原语完成进程的终止。 第一步:根据被终止进程的标识符,从PCB集合中查找对应进程控制块并读出该进程的状态; 第二步:若被终止进程正处于执行状态,则终止该进程的执行,并设置调度标志为真,用于指示该进程被终止后应重新进行调度,选择一新进程,把处理机分配给它。 第三步:若进程还有子孙进程,应将其所有子孙进程终止,以防它们成为不可控制的。 第四步:将进程所占有的全部资源释放(还给父进程或系统),释放进程控制块(若该进成为执行态,要进行进程调度)。 第五步:将被终止进程(它的PCB)从所在队列(或链表)中移出,等待其他程序来收集相关信息。 * 2.3 进程控制 进程撤消 * 2.3进程控制 进程撤消 * 2.3 进程控制 进程挂起 当一个处在运行状态的进程,因等待某个事件的发生(如等待打印机)而不能继续运行时,将调用进程挂起系统调用,把进程的状态置为阻塞状态,并调用进程调度程序(等于让出处理机)。在UNIX系统中进程挂起调用sleep(chan, pri)。 * 2.3 进程控制 进程挂起 进程从运行状态转换成阻塞状态是由进程挂起原语实现的,因此,调用进程挂起操作是在进程处于运行状态下执行的。它的执行将引起等待某事件的队列的改变. 例如,进程是因等待打印机而进入阻塞状态,则该进程将加入到等待打印机的队列。进程挂起系统调用的算法和队列变化如下。 * 2.3进程控制 进程挂起 进程挂起的内部调用形式(UNIX系统): sleep(chan,pri) 其中:chan 进程挂起(睡眠)的原因; pri 进程被唤醒后的优先级 一般调用形式: susp(chan) 其中:chan 进程等待的原因 * 2.3 进程控制 进程挂起 * 2.3 进程控制 进程挂起 * 2.3 进程控制 进程唤醒 一个正在运行的进程会因等待某事件(例如,等待打印机)的发生,由运行状态转换成阻塞状态,当它等待的事件发生后,这个进程将由阻塞状态转换成就绪状态。这种转换由进程唤醒操作完成。 调用进程唤醒操作一般在中断处理、进程通信等过程中。例如,打印机完成中断处理程序, 在完成了

文档评论(0)

younaifcg + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档