- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章 进程 内容 进程概念 进程调度 进程操作 进程协作 进程间通信 进程概念 操作系统执行各种程序: 批处理系统 - 作业 分时系统 - 用户程序或任务 本书中,交换使用作业(job)与进程(process)这两个概念。 进程(process) - 执行中的程序。进程的执行必须以顺序的方式进行。 一个进程包括: 代码部分 程序计数器 堆栈 数据段 进程实例1:Suse Linux 进程实例2:Windows XP 进程状态 进程执行时,它的状态会发生变化 新的:进程正在被创建 运行:指令正在被执行 等待:进程等待一定事件的出现 就绪:进程等待被分配给某个处理器 终止:进程已完成执行 进程状态图 思考 如果系统中有N个进程,运行的进程最多几个,最少几个;就绪进程最多几个,最少几个;等待进程最多几个,最少几个? 有没有这样的状态转换,为什么? 等待—运行; 就绪—等待 一个状态转换的发生,是否一定导致另一个转换发生,列出所有的可能。 进程控制块(PCB) 包含与特定进程相关的信息: 进程状态 程序计数器 CPU寄存器 CPU调度信息 内存管理信息 记帐信息 I/O状态信息 进程控制块(PCB) CPU在进程间的切换图 进程调度队列 作业队列 - 系统中所有进程的集合。 就绪队列 - 驻留在内存中就绪的等待运行的进程集合。 设备队列 - 等待特定I/O设备的进程集合。 进程在其生命周期中会在各种调度队列之间迁移。 就绪队列和各种I/O设备队列 表示进程调度的队列图 调度程序 长期调度程序(作业调度程序) - 选择可以进入就绪队列的进程。 短期调度程序(CPU调度程序) - 从就绪队列选择进程,为之分配CPU。 调度程序(续) 短期调度程序频繁的被调用(ms) ? (必须要快) 长期调度程序执行的并不频繁(sec, min) ? (可能较慢) 长期调度程序控制多道程序设计的程度。 进程可以分为: I/O为主的进程 - 执行I/O方面比执行计算要花费更多的时间,许多短CPU周期。 CPU为主的进程 - 花费更多的时间用于计算上,较少的长CPU周期。 增加了中期调度的队列图 上下文切换 当CPU切换到其他进程,系统需要保存原来进程的状态并装入新进程的保存状态。 上下文切换时间是额外开销,此时系统不能做什么有用的工作。 上下文切换时间与硬件支持密切相关。 进程创建 父进程创建多个子进程,这些子进程可以再创建其他进程,从而形成了进程树。 资源共享 父进程和子进程共享所有资源。 子进程从父进程资源子集那里获得资源。 父进程和子进程不共享任何资源。 执行 父进程与子进程并发执行。 父进程等待,直到某个或全部子进程执行完毕。 进程创建(续) 地址空间 子进程是父进程的复制品。 子进程装入另一个程序进来。 UNIX例子 fork系统调用可创建新进程 exec系统调用在fork之后,以用新程序来取代进程的内存空间。 一个典型的UNIX系统中的进程树 进程终止 进程执行完最后一条语句,并使用系统调用exit请求操作系统删除它。 向父进程返回数据(通过系统调用wait)。 所有进程资源被操作系统所释放。 父进程可以通过适当的系统调用(如abort)终止子进程。 子进程使用了超过它所分配到的一些资源。 分配给子进程的任务已不再需要。 父进程退出。 如果父进程终止,操作系统不允许子进程继续。 级联终止。 进程协作 独立的进程不能影响或被在系统内执行的其他进程所影响。 协作的进程能影响或被在系统内执行的其他进程所影响。 进程协作的理由: 信息共享 加快计算 模块化 方便 生产者-消费者问题 协作进程的通用范例,生产者进程产生信息,以供消费者进程消费。 无限缓冲对缓冲区大小没有实际限制。 有限缓冲假设缓冲区大小固定。 有限缓冲-共享内存解决方案 共享变量 #define BUFFER_SIZE 10 typedef struct { . . . } item; item buffer[BUFFER_SIZE]; int in = 0; int out = 0; 这种方案最多允许缓冲区中同时有BUFFER_SIZE-1项 有限缓冲-生产者进程 item nextProduced; while (1) { while (((in + 1) % BUFFER_SIZE) == out) ; /* do nothing */ buffer[in] = nextProduced; in = (in + 1) % BUFFER_SIZE; } 有限缓冲-消费者进程 item nextConsumed; while (1) { while (in == out) ; /* do nothing */ n
您可能关注的文档
最近下载
- 下肢深静脉血栓形成的预防宣教.pptx VIP
- 天-猫-保-健-食-品-行-业-标-准复习进程.docx VIP
- 2025高考数学核心二级结论速记指南.pdf VIP
- 整理收纳讲座-整理收纳术.pptx VIP
- 中山建设工程造价指数指标2017-中山住房和城乡建设局政务网.PDF
- 提升幸福感的整理收纳术 日常生活劳动通用八年级全册整理与收纳.pptx VIP
- 高中政治统编版必修一中国特色社会主义第二课只有社会主义才能救中国测试题.pdf VIP
- 新能源汽车维护与保养学习单元2-2驱动及冷却系统维护与保养.pptx VIP
- TCECS-铁路工程采空区防治技术规程.pdf VIP
- 齐齐哈尔市教管育理学会“十二五”课题申报评审书.doc VIP
文档评论(0)