- 1、本文档共59页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 进程、线程与作业 2.1 多道程序设计 Multi-programming 2.2 进程的引入 Process 2.3 线程与轻进程 Thread and light-weighted process 2.4 作业 Job 2.1 多道程序设计 2.1.1 单道程序设计的缺点 2.1.2 多道程序设计的提出 2.1.3 多道程序设计的问题 多道程序设计目标 提高系统效率(吞吐量) 2.1.1 单道程序设计的缺点 处理机利用率低 设备利用率低 内存利用率低 2.1.2 多道程序设计的提出 提高处理机、设备、内存等各种资源的利用率,从而提高系统效率。 2.1.2 多道程序设计的提出(Cont.) 增加同时运行程序的道数可以提高资源利用率,从而提高系统效率,但道数应与系统资源数量相当。 道数过少,系统资源利用率低。 道数过多,系统开销(system overhead)增大,程序响应速度下降。 2.1.3 多道程序设计的问题 处理机资源的管理 程序个数?处理机个数(如何分配?) 存储资源的管理 地址空间的相对独立性、共享性 内存、外存(swap space)的分配与去配 设备资源管理 分配策略 IO控制 2.2 进程的引入 2.2.1 进程的概念 2.2.2 进程状态及状态转换 2.2.3 进程控制块 2.2.4 进程的组成与上下文 2.2.5 进程的队列 2.2.6 进程的类型与特征 2.2.7 进程间相互联系与相互作用 2.2.8 进程的创建与撤销 2.2.9 进程与程序间的联系与差别 2.2 进程的引入(Cont.) 2.2.1 进程的概念 定义: 可参与并发执行的程序称为进程。 进程是具有一定独立功能的程序关于一个数据集合的一次运行活动。 定义强调两个方面: 动态:执行中的程序; 并发:可与其他进程同时执行。 并发 vs. 并行 并发:concurrent 宏观同时,“交替执行”,不要求多个CPU 并行:parallel 微观同时,要求多个CPU “并行算法” 2.2.2 进程状态及状态转换 进程状态(基本状态) 运行态(RUN): 占有CPU正在向前推进 就绪态(READY): 可以运行,但未得到CPU 等待态(WAIT): 等待某一事件发生 状态转换 就绪?运行:获得处理机 运行?就绪:剥夺处理机 运行?等待:申请资源未得到,启动IO 等待?就绪:得到资源,IO中断 进程状态转换图 2.2.3 进程控制块(PCB) 标志进程存在的数据结构,其中保存系统管理进程所需的全部信息 PCB内容:(不同系统不尽相同) 进程标识(pid) 家族联系 进程状态 地址信息 现场信息 打开文件 调度参数 消息指针 所属用户(uid) 队列指针 2.2.4 进程的组成与上下文 进程的组成 进程控制块(process control block) 建立进程?建立PCB 撤销PCB?撤销进程 程序 代码(code) 数据(data) 堆栈(stack+heap) 栈:保存返回点、参数、返回值、局部变量 堆:动态变量 2.2.4 进程的组成与上下文 进程的表记 2.2.6 进程的类型与特征 进程类型 系统进程 运行操作系统程序,完成系统管理(服务)功能. 例如:UNIX #0 -- sched, #1 -- init 用户进程 运行用户(应用)程序,为用户服务。 例如:UNIX vi, shell, cc 2.2.6 进程的类型与特征(Cont.) 进程的特征 并发性:可以与其它进程一道向前推进; 动态性:动态产生、消亡,生存期内状态动态变化; 独立性:一个进程是可以调度的基本单位; 交往性:同时运行的进程可能发生相互作用; 异步性:进程以各自独立,不可预知的速度向前推进; 结构性:每个进程有一个PCB。 2.2.7 进程间相互联系与相互作用 相互联系 相关进程 同一家族的进程 可以共享文件,需要相互通讯,协调推进速度… 父进程可以监视子进程,子进程完成父进程交给的任务。 无关进程 没有逻辑关系、同时执行的进程。 有资源竞争关系,互斥、死锁、饿死。 2.2.7 进程间相互联系与相互作用 相互作用 2.2.8 进程的创建与撤销 进程的创建 建立PCB,分配内存,加载程序,入就绪链 UNIX:pid=fork(),exec(prog,args) 进程的撤销 去配资源,撤销PCB,通知父进程 UNIX:exit() vs. kill 除初始进程外,其它进程由(父)进程创建,并形成进程家族。 在 UNIX 系统中通过系统调用fork可创建新进程,新进程由原来进程的地址空间的复制组成
文档评论(0)