下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第四章线程4,1举两个多线程程序设计的例子来说明多线程不比单线程方案提高性能答:1)任何形式的顺序程序对线程来说都不是一个好的形式。例如一个计算个人报酬 的程序。2)另外一个例子是一个空壳程序,如 C-shell 和korn shell 。这种程序 必须密切检测其本身的工作空间。如打开的文件、环境变量和当前工作目录。4.2 描述一下线程库采取行动进行用户级线程上下文切换的过程答:用户线程之间的上下文切换和内核线程之间的相互转换是非常相似的。但它依赖于线程库和怎样把用户线程指给内核程序。一般来说,用户线程之间的上下文切换涉 及到用一个用户程序的轻量级进程(LWP)和用另外一个线程来代替。这种行为
2、通常涉及到寄存器的节约和释放。4.3 在哪些情况下使用多内核线程的多线程方案比单处理器系统的单个线程方案提供更好 的性能。答:当一个内核线程的页面发生错误时,另外的内核线程会用一种有效的方法被转换成使用交错时间。另一方面,当页面发生错误时,一个单一线程进程将不能够发挥有 效性能。因此,在一个程序可能有频繁的页面错误或不得不等待其他系统的事件的 情况下,多线程方案会有比单处理器系统更好的性能。4.4 以下程序中的哪些组成部分在多线程程序中是被线程共享的?a. 寄存值b. 堆内存c.全局变量d,栈内存答:一个线程程序的线程共享堆内存和全局变量,但每个线程都有属于自己的一组寄存值和栈内存。1.1 5
3、 一个采用多用户线程的多线程方案在多进程系统中能够取得比在单处理器系统中更好 的性能吗?答:一个包括多用户线程的多线程系统无法在多处理系统上同时使用不同的处理器。 操作系统只能看到一个单一的进程且不会调度在不同处理器上的不同进程的线程。 因此,多处理器系统执行多个用户线程是没有性能优势的。4.6 就如4,5.2 章节描述白那样,Linux 没有区分进程和线程的能力。且 Linux 线程都 是用相同的方法:允许一个任务与一组传递给clone()系统调用的标志的进程或线程。但许多操作系统,例如 windows XP 和Solaris ,对进程和线程都是一视同 仁。基本上,这种使用 notation
4、的系统,一个进程的数据结构包括一个指向属于进程的不同线程的指针。区别建模过程和在内核中线程的两种方法。答:一方面,进程和线程被视为相似实体的系统中,有些系统代码可以简化。例如, 一个调度器可以在平等的基础上考虑不同的进程和线程,且不需要特殊的代码,在 调度中审查有关线程的进程。另一方面,这种统一会使进程资源限制更加困难。相 反,一些额外的复杂性被需要,用来确定哪个线程与哪个进程一致和执行重复的计 数任务。4.7 由4.11给出的程序使用了 Pthread 的应用程序编程接口( API ),在程序的第c行 和第p行分别会输出什么?答:c行会输出5, p行会输出0.4.8 考虑一个多处理器系统和用
5、多线程对多线程模式编写的多线程程序。让程序中的用户线程数量多于系统中的处理器的数量,讨论下列情况下的性能意义:a. 由程序分配的内核线程的数量比处理器少b. 由程序分配的内核线程的数量与处理器相同c. 由程序分配的内核线程的数量大于处理器数量但少于用户线程的数量答:当内核线程的数量少于处理器时,一些处理器将仍然处于空闲状态。因为,调度图中只有内核线程的处理器,而不是用户线程的处理器。当程序分配的内核线程的数量 与处理器相同时,那么有可能所有处理器将同时使用。然而,当一个内核块内的内 核(因页面错误或同时援引系统调用)相应的处理器将闲置。当由程序分配的内核 线程的数量大于处理器数量时,封锁一个内
6、核线程并调出,换入另一个准备执行的 内核线程。因此,增加多处理器系统的利用率。第五章CPU调度5.1 为什么对调度来说,区分 I/0 限制的程序和CPU限制的程序是重要的?答:I/0限制的程序有在运行I/O操作前只运行很少数量的计算机操作的性质。这种 程序一般来说不会使用很多的CPU。另一方面,CPU限制的程序利用整个的时间片,且不做任何阻碍I/O 操作的工作。因此,通过给 I/O 限制的程序优先权和允许在 CPU限制的程序之前运行,可以很好的利用计算机资源。5.2 讨论以下各对调度标准在某种背景下会有的冲突a.CPU 利用率和响应时间b.平均周转时间和最大等待时间c.I/O 设备利用率和CP
7、U利用率答:a.CPU利用率和响应时间:当经常性的上下文切换减少到最低时,CPU利用率增加。通过减少使用上下文切换程序来降低经常性的上下文切换。但这样可能会导致进程 响应时间的增加。b.平均周转时间和最大等待时间:通过最先执行最短任务可以使平均周转时间最短。然而,这种调度策略可能会使长时间运行的任务永远得不到调度且会增加他们 的等待时间。c.I/O设备利用率和CPU禾1J用率:CPU利用率的最大化可以通过长时间运行CPU限制的任务和同时不实行上下文切换。I/O设备利用率的最大化可以通过尽可能调度已经准备好的I/O 限制的任务。因此,导致上下文切换。5.3 考虑指数平均公式来预测下一次CPU区间
8、的长度,使用以下参数值会有什么影响?a.a=0 和 t=100 毫秒b.a=0.99 和 t=10 毫秒答:当a=0和t=100 毫秒时,公式总是会预测下一次的CPU区间为100毫秒。当a=0.99 和t=10毫秒时,进程最近的行为是给予更高的重量和过去的就能成相比。因此,调度算法几乎是无记忆的,且简单预测未来区间的长度为下一次的CPU执行的时间片。5.4 考虑下列进程集,进程占用的CPU区间长度以毫秒来计算:进程区间时间优先级Pi103P211P323P414P552假设在时刻0以进程Pi, P2, P3, P4, P5的顺序到达。a画出4个Gantt图分别演示用FCFS、SJF、非抢占优先
9、级(数字小代表优先级高)和 RR (时间片=1)算法调度时进程的执行过程。b.在a里每个进程在每种调度算法下的周转时间是多少?c.在a里每个进程在每种调度算法下的等待时间是多少?d.在a里哪一种调度算法的平均等待时间对所有进程而言最小?答:a.甘特图略b.周转时间FCFSRRSJF非抢占优先级P110191916P211211P3137418P4144219P5191496c.等待时间FCFSRRSJF非抢占优先级P10996P210100P3115216P4133118P514942d.SJF5.5 下面哪些算法会引起饥饿a.先来先服务b.最短工作优先调度c.轮换法调度d.优先级调度答:最短
10、工作优先调度和优先级调度算法会引起饥饿5. 6考虑RR调度算法的一个变种,在这个算法里,就绪队列里的项是指向PCB的指针。a.如果把两个指针指向就绪队列中的同一个进程,会有什么效果?b.这个方案的主要优点和缺点是什么?c.如何修改基本的 RR调度算法,从而不用两个指针达到同样的效果?答.a.实际上,这个过程将会增加它的优先权,因为通过经常得到时间它能够优先得以运行。b.优点是越重要的工作可以得到更多的时间。也就是说,优先级越高越先运行。然而,结果将由短任务来承担。c,分配一个更长的时间给优先级越高的程序。换句话说,可能有两个或多个时间片在 RR调度中。5.7 考虑一个运行十个I/O限制任务和一
11、个 CPU限制任务的系统。假设,I/O限制任务一次 分配给一个I/O操彳1毫秒的CPU十算,(1每个I/O操作的完成需要10毫秒。同时,假设 间接的上下文切换要 0.1毫秒,所有的进程都是长进程。对一个 RR调度来说,以下情况时 CPU的利用率是多少:a.时间片是1毫秒b.时间片是10毫秒答:a.时间片是1毫秒:不论是哪个进程被调度,这个调度都会为每一次的上下文切换花费一个0.1毫秒的上下文切换。CPU的禾【J用率是1/1.1*100=92% 。b.时间片是10毫秒:这I/O限制任务会在使用完 1毫秒时间片后进行一次上下文切换。这 个时间片要求在所有的进程间都走一遍,因此, 10*1,1+10
12、.1(因为每个I / O限定任务执行 为1毫秒,然后承担上下文切换的任务,而CPU限制任务的执行10毫秒在承担一个上下文切换之前)。因此,CPU的利用率是 20、21.1*100=94%。5.8 考虑一个实施多层次的队列调度系统。什么策略能够使一个计算机用户使用由用户进程分配的最大的CPU时间片。答:这个程序可以使分配给它的没有被完全利用的CPU时间最大化。它可以使用分配给它的时间片中的绝大部分,但在时间片结束前放弃CPU因此提高了与进程有关的优先级。1. 5.9考虑下面的基于动态改变优先级的可抢占式优先权调度算法。大的优先权数代表高优先权。当一个进程在等待CPU时(在就绪队列中,但未执行),
13、优先权以a速率改变;当它运行时,优先权以速率 3改变。所有的进程在进入就绪队列时被给定优先权为0。参数a和3可以设定给许多不同的调度算法。a. 3 a 0时所得的是什么算法?b.a 3 0时所得的是什么算法?答:a.FCFS b.LIFO5.10 解释下面调度算法对短进程编程度上的区别:a.FCFSb.RRc .多级反馈队列答:a.FCFS-区别短任务是因为任何在长任务后到达的短任务都将会有很长的等待时间。b.RR-对所有的任务都是能够相同的(给它们相同的CPU寸间区间),所以,短任务可以很快的离开系统,只要它们可以先完成。c.多级反馈队列和RR调度算法相似一一它们不会先选择短任务。5.11
14、用Window XP的调度算法,下列什么是数字优先的线程。a.相对优先级的值为 REALTIME_PRIORITY_CLASS属于实体优先类型的线程b.相对优先级的值为 NORMAL_PRIORITY_CLAS于NORMAL型的线程c.相对优先级的值为 HIGH_PRIORITY_CLAS的属于ABOVE_NORMAL的线程答:a.26b.8c.145. 12考虑在Solaris操作系统中的为分时线程的调度算法:a: 一个优先权是10的线程的时间片是多少?优先权是55的呢?b:假设优先权是35的一个线程用它所有的时间片在没有任何阻止的情况下,这调度算 法将会分配给这个线程什么样新的优先权?c:
15、假设一个优先权是 35的线程在时间片结束前阻止I/O操作。这调度算法将会分配给这个线程什么样新的优先权?答:a:160 和 40b:35C : 545.13传统UNIX调度在优先数和优先级间成反比关系:数字越高,优先权越低。该调度进程利用下面的方程重新计算进程的优先权一次一秒:优先权=(最近CPU用率/ 2 ) +基本数这里的基本数=60,最近的CPU使用率是指一个表明优先权从上一次重新计算后开始进程被 CPU用的情况。假设最近进程p1的CPU1用率是40个,p2是18 , p3是10。当优先权重新计算后这三个 进程的新的优先权是什么?在此信息的基础上,传统UNIX的调度会不会提高或降低 CPU艮制的进程的相对优先权?答:分配给这些进程的优先权分别是80, 69和65.这调度降低了 CPU限制的进程的相对优先权。第六章管程6.1第一个著名的正确解决了两个进程的临界区问题的软件方法是Dekker设计的。两个进程P0和P1共享以下变量:boolean flag2; /*initially false*/int turn;进程Pi(i=0 或1)和另一个进程 Pj(j=0 或1)的结构见图7.27。证明这个算法满足临界区问题
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能物流系统招标合同三篇
- 医疗销售年终汇报
- 外科护理学手术人员的准备
- 人文让医疗更温暖
- 外科护理讲解直播课
- 血管瘤手术出院指导
- 湖南工商大学《运筹学》2022-2023学年第一学期期末试卷
- 湖南工商大学《CFA衍生品I》2022-2023学年第一学期期末试卷
- 简笔画社团活动总结
- 中考数学复习第6章圆第27课时圆的基本概念及性质课件
- (通用版)水利安全员考试试题(含答案)
- 可编辑修改中国地图模板
- 最新电大市场调查与商情预测作业1-4参考答案小抄汇总
- 外研版九年级英语上册课件 Module 11 Unit 1 (共12张PPT)
- CJJ-T 34-2022 城镇供热管网设计标准
- 河南省地图含市县地图矢量分层地图行政区划市县概况ppt模板
- 府谷县东鑫莱煤化工有限责任公司煤泥烘干项目报告书
- 蜂巢格式生态护坡施工方案
- TSCQA 208-2021 砼肋混凝土叠合板应用技术规程
- 银行保险从业人员销售服务初级培训考试题库
- 多路温度采集系统设计与实现
评论
0/150
提交评论