- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章 进程管理(操作系统原理)
第五章 进程管理 授课教师:付勇智 fuyongzhi@swfc.edu.cn 西南林学院 基础部数理教研室 问题纲要 进程概念-什么是进程? 进程和程序有什么区别联系? 线程概念-什么是线程? 线程和进程的区别联系? 线程的实现方法(Windows中如何创建和管理线程?) 程序并行执行所带来的问题有哪些? 进程-OS中最重要的模型 操作系统的出现是在手工操作向批处理的过渡过程中,此时的操作系统较为简单,主要是辅助用户进行作业的输入输出。因为作业都是独占CPU,依次顺序运行,所以并不需要OS过多的干涉。 多道程序的出现使得OS同时要管理多个作业的运行,为了在各运行程序间合理的分配CPU和内存等系统资源,使得各程序能够高效的运行,需要一个相应模型来表征一个运行中的程序、其状态、执行权限、所拥有资源等信息。 进程概念 进程是对一个正在运行程序的抽象。 一个进程就是一个正在执行的程序,包括程序计数器、寄存器、和变量当前值。 一个进程是某种类型的一个活动,它有程序、输入、输出、及状态。单个处理机被若干进程共享,它使用某种调度算法决定何时停止一个进程的工作,并转而为另一个进程提供服务。 进程标准定义 进程是一个具有一定独立功能的程序关于某个数据集合的一次可以并发执行的运行活动,是系统资源分配单位。 进程的特点 独立性(Independency) 多道环境下执行的每道程序都是逻辑上独立的,它们之间不存在逻辑上的制约关系。 并发性(Concurrency) 多道程序的并发执行再宏观上是同时进行的,但在微观上仍是顺序执行的。 随机性(Randomness) 多道环境下,程序与数据的输入与执行时间都是随机的。 共享性(Sharability) 系统中的软硬件资源是有限的,因而必须在各进程间共享。 程序和进程的联系与区别 进程是动态的,程序是静态的:进程的实质是程序的一次执行过程,动态性是进程的基本特征,同时进程是有一定的生命期的;而程序只是一组有序指令的集合,本身并无运动的含义,是静态的。 进程是暂时的,程序的永久的:进程是一个状态变化的过程,程序可长久保存。 进程具有并发特征,而程序没有 程序和进程的联系与区别 进程=程序+数据+PCB (进程控制块,process control block),即进程是一个程序及其数据在处理机上顺序地执行时所发生的活动。 一个程序可以对应多个进程:通过多次执行,一个程序可对应多个进程。 一个进程可以包含多个程序:通过调用关系,一个进程可包括多个程序。 进程的状态 进程状态间转换 1.当一个处于就绪态的进程得到CPU,则投入运行,由就绪态转为运行态。 2.一个运行态的进程因等待I/O或其他系统事件无法运行,转为阻塞态。 3.一个阻塞态的进程因等待事件发生,满足运行所需条件,但暂时无法获得CPU,进入就绪态,排队等候CPU。 4.处于运行态的进程,因所分配CPU时间用完再次进入就绪态。 引发进程创建的事件 系统初始化 某一进程调用进程创建系统接口(UNIX中的fork,Windows中的_spawnl、CreateProcess) 用户运行某命令或某个可执行程序 用户提交一个批处理作业 导致进程结束的事件 进程正常运行结束 进程因某些原因无法继续运行,自身调用exit结束 进程运行过程中产生系统错误或异常,被操作系统强制中止 被其他进程通过kill信号杀死 进程的实现 为了实现进程模型,操作系统维持着一张表格(结构数组),称为进程表。每个进程占用一个进程表项。该表项包含了进程的状态、它的程序计数器、栈指针、内存分配状况、打开文件状况、计费和调度信息,以及其他在进程由运行态转到就绪态时必须保存的信息。进程表项在有的操作系统教材中又叫做进程控制块(PCB) Minix的PCB所包括内容 Minix操作系统的进程模型 线程-进程中的“进程” 对于很多现代运用(特别是网络应用):如文件服务器、WEB服务器、下载工具软件、浏览器等,希望通过一个进程,而非多个进程,来同时处理多个用户请求或多个并发事件,从而减少多进程环境下频繁进程切换所造成的大量系统开销,这时就需要对传统进程模型中只有一条执行线索的模式进行修改,使得一个进程在完成任务A的同时,还能同时进行其他任务B、C、D……当然,这种并行同样是通过使CPU在各个不同执行线索间的切换实现的伪并行。 传统的单线程模型 多线程模型 线程概念 线程是进程中的一个实体,是被系统调度和分派的基本单位。 线程的特点 线程(轻量级进程)严格顺序执行 所有的线程有完全相同的地址空间 线程间无保护 线程间共享同一组打开的文件、子进程、定时器、信号等 进程切换与线程切换 线程模型的分类 系统级线程(Window) 由OS内核负责管理线程切换 优点:程序员不必
文档评论(0)