第2章-进程和线程终稿.pptVIP

  1. 1、本文档共85页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章 进程和线程 本章内容提要 进程概念 进程的状态和组成 进程管理 线程 进程的同步和通信 经典进程同步问题 管程 进程通信 2.1 进程概念 2.1.1 多道程序设计 1.顺序程序活动的特点 ●顺序性 ●封闭性 ●可再现性 2.多道程序设计 ■程序并发执行 ●提高系统资源利用率 ●增加作业吞吐量 多道程序设计 3.程序并发执行的特征 ① 失去封闭性 ② 程序与计算不再一一对应 ③ 并发程序在执行期间相互制约 2.1.2 进程概念 1.进程概念的引入 多道程序并发执行所引发的一系列新情况 2.进程概念 ●进程最根本的属性是动态性和并发性 进程定义:程序在并发环境中的执行过程 进程和程序的区别 (1)动态性 (2)并发性 (3)非对应性 (4)异步性 进程概念 3.进程的基本特征 (1)动态性 (2)并发性 (3)调度性 2.2 进程的状态和组成 2.2.1 进程的状态及其转换 1.进程的基本状态 ●运行状态(Running) ●就绪状态(Ready) ●阻塞状态(Blocked) 2.进程状态的转换 (1)新建→就绪 (2)就绪→运行 (3)运行→阻塞 (4)阻塞→就绪 (5)运行→就绪 (6)运行→终止 2.2.2 进程描述 1.进程映像 进程映像通常就由程序、数据集合、栈和PCB等4部分组成 进程描述 2.进程控制块的组成 进程控制块(PCB) 也称进程描述块(Process Descriptor),它是进程组成中最关键的部分,其中含有进程的描述信息和控制信息,是进程动态特性的集中反映,是系统对进程施行识别和控制的依据。 进程描述 进程控制块应包含的主要内容: 进程名 特征信息 进程状态信息 调度优先权 通信信息 现场保护区 资源需求 进程实体信息 族系关系 其他信息 进程描述 3.进程控制块的作用 每个进程有惟一的进程控制块 操作系统根据PCB对进程实施控制和管理 进程的动态、并发等特征是利用PCB表现出来的 PCB是进程存在的唯一标识 2.2.3 进程队列 1.线性方式 进程队列 2.链接方式 PCB索引结构示意图 2.3 进 程 管 理 2.3.1 进程图 进程图(Process Graph)是描述进程族系关系的有向树 2.3.2 进程创建 引发创建进程的事件: 调度新作业 用户登录 操作系统提供特定服务 派生新进程 进程创建 ●创建新进程时要执行创建进程的系统调用(如UNIX/Linux系统中的fork) ●其主要操作过程有如下四步: (1)申请一个空闲的PCB (2)为新进程分配资源 (3)将新进程的PCB初始化 (4)将新进程加到就绪队列中 #include unistd.h #include sys/types.h #include stdio.h int main(int argc,char *argv[]) { int pid; pid = fork(); /* 创建一个子进程*/ if (pid 0) { /* 出现错误。进程ID号不可能小于0 */ fprintf(stderr, Fork Failed); /* 输出出错消息——Fork Failed */ exit(-1); /* 程序终止,返回码-1*/ } else if (pid == 0) { /* 下面是子进程执行*/ execlp( /bin/ls, ls,NULL); /* 执行目录/bin下面的ls命令*/ } else { /* 下面是父进程执行*/ wait(NULL); /* 父进程等待子进程完成*/ printf( Child Complete ); /* 输出子进程完成的信息*/ exit(0); /* 终止*/ } } 2.3.3 进程终止 导致进程终止的三种情况: 正常终止 异常终止 外部干扰 进程终止 终止进程的主要操作过程如下: 找到指定进程的PCB 终止该进程的运行 回收该进程所占用的全部资源 终止其

文档评论(0)

1112111 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档