- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
例:多队列轮转法 系统中设置三个就绪队列,其时间片长度可分别规定为0.02s,0.2s,2s。 在0.02s就绪队列,若一个进程运行了0.02s后尚未结束,则进入0.2s队列的末尾。 当0.02s队列中的每一个进程都轮转了一次后,便调度0.2s的第一个进程,接着依次执行,如果分得的0.2s的时间仍未运行结束,则该进程进入2s就绪队列的队尾。 对2S的队列则采用循环轮转法。 在上述方法中,只有前一队列中没有进程可以调度时,才选择下一队列中的进程占用处理机。于是,短作业能够较快地占用处理机,长作业一旦占用处理机,就可以使用较长时间,避免了因频繁调度而增加系统开销。 补充:进程和程序的区别: 进程是程序的一次执行,属于一种动态概念,而程序是一组有序的指令,是一种静态概念。但是进程离开了程序也就失去了存在的意义。因此,可以这样说,进程是程序执行的动态过程,而程序是进程运行的静态文本。 一个进程可以执行一个或几个程序;反之,同一程序可能由几个进程同时执行。 程序可以作为一种软件资源长期保留,而进程是程序的一次执行,是暂时的,也就是说,进程具有生命期。进程由“创建”而产生,因“调度”而运行,因得不到资源而阻塞,因“撤销”而死亡。 进程具有并发性,它能与其它进程并发运行。而一般的程序不具有这种明显的特性。 进程是一个独立的运行单位,也是系统进行资源分配和调度的一个独立单位。因此,进程具有其独立性,另一方面进程间又具有相互制约性,这种特性表现在进程之间的同步与互斥。 (上面所讲的进程,是在没引进线程的情况下而言) 例 2.5 线程概念 2.5.1 线程的引入 2.5.2 线程的描述 2.5.3 线程的模式 2.5.1 线程的引入 为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?什么样的系统应该选用多线程? 为使程序能并发执行,系统内必须进行以下的一系列操作。 1) 创建进程 2) 撤消进程 3) 进程切换 为此花费不少CPU时间和内存空间,即把进程作为系统调度的基本单位要付出较大的时空开销,从而也限制了系统中进程的数量和进程切换的频率,即限制并发度的提高。为了提高系统的并行能力,把并行粒度进一步减小,在进程内又引入了线程的的概念 时间开销:进程的切换在进程调度中是经常的,保存各自的PWS。 空间开销:以UNIX为例 当一个进程创建一个子进程时,系统必须把父进程的地址空间的所有内容都拷贝到子进程的地址空间中去。对于大地址空间来说,这样的操作是很费时的,更何况两进程还要建立共享数据。 举例: 采用线程实现并行:共享进程的同一地址空间以及其它资源。 在引入线程的OS中,线程是系统调度的基本单位,而不是独立分配资源的基本单位,使之轻装运行,而对拥有资源的基本单位又不频繁地对其切换。这样引入了线程概念后,即减少了系统的时空开销又增强了系统的并行处理能力。 2.5.2 线程的描述 1.线程的定义: 线程是进程内的一个执行单位,是CPU调度的基本单位。 引进线程的OS负责处理机调度的程序称为线程调度程序。 没引进线程的OS负责处理机调度的程序称为进程调度程序,进程被定义为具有一定功能的程序在某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。 线程: 有执行状态(状态转换) 不运行时保存上下文 有一个执行栈 有一些局部变量的静态存储 可存取所在进程的内存和其他资源 可以创建、撤消另一个线程 2.进程和线程的关系 线程是进程的一个组成部分。每个进程在创建时通常只有一个线程,需要时这个线程再创建其它线程。 进程的多线程都在进程的地址空间活动。 拥有资源的基本单位是进程,处理机调度的基本单位是线程。 真正在处理机上运行的是线程。 进程之间可以并发执行,线程之间也可以实现并发执行,有效地提高了系统资源的利用率和系统吞吐量。 一个进程可以有多个线程,而且至少有一个可执行线程。 2.5.3 线程的模式 在 Win32 环境中,线程有三种基本模式:单线程、单元线程和自由线程。 1. 单线程 单线程仅包含与应用程序进程对应的线程。进程可以被定义为应用程序的实例,拥有该应用程序的内存空间。大多数 Windows 应用程序都是单线程的,即用一个线程完成所有工作。 2. 单元线程 单元线程是一种稍微复杂的线程模式。标记用于单元线程的代码可以在其自己的线程中执行,并限制在自己的单元中。线程可以被定义为进程所拥有的实体。在单元线程模式中,所有线程都在主应用程序内存中各自的子段范围内运行。此模式允许多个代码实例同时但独立地运行。例如:在.NET之前,Visual Basic 仅限于创建单元线程组件和应用程序。 3. 自由线程 自由线程是最复杂的线程模式。在自
文档评论(0)