谦让度与进程优先级的调整

上传人:汽*** 文档编号:500249668 上传时间:2022-12-31 格式:DOC 页数:4 大小:36.50KB
返回 下载 相关 举报
谦让度与进程优先级的调整_第1页
第1页 / 共4页
谦让度与进程优先级的调整_第2页
第2页 / 共4页
谦让度与进程优先级的调整_第3页
第3页 / 共4页
谦让度与进程优先级的调整_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《谦让度与进程优先级的调整》由会员分享,可在线阅读,更多相关《谦让度与进程优先级的调整(4页珍藏版)》请在金锄头文库上搜索。

1、实验:进程和线程的应用实验目的:1. 向进程发送信号以控制进程。2. 调整进程优先级。实验内容:设置进程的谦让度来调整进程的优先级实验步骤:一、谦让度与进程优先级的调整由于CPU资源的有限性造成了进程间需要轮流使用CPU,而操作系统更倾向于让优先级更高的进程获得CPU资源。谦让度反映了进程对CPU资源要求的迫切程度,用户可以通过设置进程的谦让度来调整进程的优先级,从而让目标进程在CPU资源竞争中更具优势或者相反。本案例将通过实验演示进程谦让度是如何调整进程的优先级并以此影响进程在竞争CPU资源时的表现。实验的思路是编写一个对CPU资源要求较高的脚本,通过同时启动若干个关于该程序的测试进程,并且

2、对这些进程分别设置不同的谦让度,以此观察它们CPU竞争中是处于优势还是劣势。以下是本案例的操作步骤:1、编写并执行测试脚本。编写测试脚本的目的是创建一个大量消耗CPU时间的进程,测试脚本process.sh的代码如下:#!/bin/shcount=$1while$count-gt0docount=$count-1sleep0.001doneecho“process$finish.”脚本根据用户所给的第一个参数执行若干次循环,每次循环内部通过sleep命令延迟0.001秒。为简化脚本代码,这里并没有检查用户输人参数的合法性2、测试和检查硬件情况。在测试脚本process.sh中设定脚本需要一个参

3、数来设置脚本执行的循环次数,然而脚本的执行时间不仅取决于所设参数,还与当前执行脚本的CPU硬件条件有关。为了在后面设置一个较为合理的参数,建议用以下命令测试到前硬件条件下脚本的执行速度,其中设置了系统时间的显示格式为“分钟:秒”:rootlocalhost#date+“%M:%S”;./process.sh1000;date+“%M:%S”57:02Process12401finish.57:10从测试结果可知当给定参数为1000时脚本执行时间约为810秒。注意不同CPU硬件条件下脚本执行的速度会略有所不同,在后面的实验中可以根据实际情况设定合适的参数值。此外,值得注意的是为了突出实验效果,应

4、在VMware中设置虚拟机的CPU个数仅为1个(CPU核心),这样能够避免向虚拟机提供过多的CPU资源而导致了进程间竞争不明显。3、启动两个测试进程并观察竞争结果。一个进程的谦让度设为“-20”,而另一进程的谦让度设为“19”,也即设置两个测试进程之间在谦让度上差异最大。以下是启动进程的命令:rootlocalhost#(nice-n-20./process.sh100000&);(nice-n19./process.sh100000&);top-d10top-21:58:02up1day,20:40,4users,loadaverage:0.98,1.69,1.02Tasks:162tota

5、l,2running,160sleeping,0stopped,0zombieCpu(s):8.5%us,88.0%sy,1.4%ni,2.0%id,0.0%wa,0.1%hi,0.0%si,0.0%stMem:15511512ktotal,770104kused,781408kfree,84368kbuffersSwap:4161528ktotal,0kused,4161528kfree,365980kcachedPIDUSERPRNIVIRTRESSHRS%CPU%MENTIME+COMMAND23120root0-20663611561020S14.10.10:01.87process.

6、sh23122root3919663611561020S3.90.10:00.58process.sh从CPU占用率(字段%CPU)以及累计使用的CPU时间(字段TIME+)的结果上可见,谦让度“-20”的进程在竞争中明显优于谦让度为“19”的进程。注意记录两个测试进程的PID后及时进人第4步操作。4、暂停两个测试进程并调整谦让度。记录下两个测试进程PID后,需要在其他终端上向两个测试进程发送SIGSTOP信号让它们暂停运行,然后缩小两个进程在谦让度上的差距:rootlocalhost#kill-SIGSTOP2312023122rootlocalhost#renice-n-523120231

7、200:oldpriority-20,newpriority-5rootlocalhost#renice-n-52312223122:oldpriority19,newpriority55、恢复执行两个测试进程并观察竞争结果。调整好两个进程的谦让度后,继续输入如下命令:rootlocalhost#kill-SIGSTOP2312023122继续观察原来启动两个测试进程的终端,经过一段时间后可发现两个进程在CPU占比上的差距缩小了:top-22:03:20up1day,20:45,4users,loadaverage:1.30,1.07,0.92Tasks:161total,1running,1

8、60sleeping,0stopped,0zombieCpu(s):4.5%us,90.9%sy,2.3%ni,2.3%id,0.0%w,a0.0%hi,0.0%si,0.0%stMem:1551512ktotal,772732kused,778780kfree,84576kbuffersSwap:4161528ktotal,0kused,4161528kfree,365996kcachedPIDUSEERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND23120root15-5663611561020S11.40.10:14.98process.sh23122root2

9、55663611641020S6.80.10:05.74process.sh6、暂停两个测试进程并在另一个终端上将两者的谦让度调整为0,然后重新恢复执行进程:rootlocalhost#kill-SIGSTOP2312023122=暂停执行两个进程rootlocalhost#renice-n-52312023120:oldpriority-5,newpriority023122:oldpriority5,newpriority0rootlocalhost#kill-SIGSTOP2312023122=重新执行两个进程继续在原来启动测试进程的终端上观察调整后的结果:top-22:03:20up1

10、day,20:53,4users,loadaverage:0.97,0.72,0.79Tasks:163total,3running,160sleeping,0stopped,0zombieCpu(s):8.5%us,89.6%sy,0.0%ni,1.9%id,0.0%w,a0.0%hi,0.0%si,0.0%stMem:1551512ktotal,773128kused,778384kfree,84808kbuffersSwap:4161528ktotal,0kused,4161528kfree,365996kcachedPIDUSEERPRNIVIRTRESSHRS%CPU%MEMTIME

11、+COMMAND23120root200663611561020S9.30.10:31.07process.sh23122root200663611641020S9.30.10:16.76process.sh7、按照上述操作反复调整进程谦让度并观察进程在竞争CPU时的表现。完成练习后可直接发送信号终止两个进程的运行:rootlocalhost#kill-SIGKILL2312023122进一步,在练习上述操作步骤时,可以同时启动两个以上的进程并分别设置不同的优先级,以此观察进程间竞争的情况二、理解平均负载在前一个案例的基础上,本案例将讨论系统的平均负载(LoadAverage)这一概念。首先,

12、系统的负载是指系统所要承担的计算工作量,而平均负载是指系统在一段时间内的负载情况。在Linux中平均负载被表示为一组3个数字,它们分别反映了5分钟、10分钟和15分钟之内的系统负载情况。可以通过查看/proc/loadavg获知系统当前的平均负载:rootlocalhost#cat/proc/loadavg0.000.610.76l/2618152=前3个数字即为平均负载也可以通过top命令获知系统的平均负载:rootlocalhost#toptop15:42:25up2days,10:10,4users,loadaverage:0.00,0.40,0.66(省略部分显示结果)为进一步从实际中

13、理解平均负载这一概念并实现更有效地监控系统,这里利用前一案例中的测试脚本进行实验,通过观察实验结果的变化讨论平均负载中3个数字的具体含义进行如下操作步骤时需要注意首先设置VMware中进行实验的虚拟机具有的CPU数量应为1个(核心)1、启动一个测试进程,观察平均负载的变化直至进程执行完毕,期间可同时观察CPU使用率的占比。以如下结果为例CPU使用占比上仍有21.8%为空闲(idel)时间,注意为不影响实验结果,应设置较长的lop命令更新时间间隔(如10秒)rootlocalhost#./process.sh10000&22891rootlocalhost#top-d10top16:36:37u

14、p2days,11:04,4users,loadaverage:0.24,1.09,1.28Tasks:168total,1running,160sleeping,7stopped,0zombieCpu(s):6.6%us,71.5%sy,0.0%ni,21.8%id,0.0%wa,0.1%hi,0.0%si,0.0%stMem:1551512ktotal,1114864kused,436648kfree,223040kbuffersSwap:4161528ktotal,0kused,4161528kfree,563436kcachedPIDUSEERPRNIVIRTRESSHRS%CPU%M

15、EMTIME+COMMAND2891root200663611601020S11.50.10:10.41process.sh2、待上一步的进程执行完毕后再启动两个测试进程,观察平均负载的变化直至所有进程结束运行,观察时注意需要等待表示平均负载的第一个数字逐渐增大并稳定。此时cpu仍有少量的空闲时间(1.7%id)rootlocalhost#(./process.sh10000&);(./process.sh10000&)rootlocalhost#top-d10top-16:40:51up2days,11:09,4usersl,oadaverage:1.110,.86,1.10Tasks:16

16、8total,1running,160sleeping,7stopped,0zombieCpu(s):6.5%us,91.8%sy,0.0%ni,1.7%id,0.0%wa,0.0%hi,0.0%si,0.0%stMem:1551512ktotal,1115160kused,436352kfree,223112kbuffersSwap:4161528ktotal,0kused,4161528kfree,563440kcachedPIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND12980root200663611641020S10.50.10:0.62process.sh12978mot200663611561020S9.9

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号