进程动态排名

1)安装cpuburn测试软件
2)运行cpuburn测试软件10分钟
3)再开启另一个终端,输入top动态查看
4)按CPU占用率降序排列
5)杀掉其中CPU占用最高的进程
6)查看原终端cpuburn程序是否已杀死
方案
top命令是Linux中动态查看进程的命令,可以输入“P”(大写),来进行CPU占用率降序排列,我们可以按快捷键Ctrl+Shift+t在开启一个终端,在其中运行cpuburn程序,该程序会持续占用CPU。
我们可以在原终端运行top命令,观察cpuburn进程状态。可以输入“k”,在写上该进程的PID,将其杀死。
步骤
实现此案例需要按照如下步骤进行。

步骤一:安装cpuburn测试软件

分析: 上传该软件可以使用VMware tools工具,该软件解压完了就可直接使用。此软件是一个测试软件,运行后会耗用CPU非常高。
命令操作如下所示:

[root@localhost ~]# ls
anaconda-ks.cfg    install.log         公共的  视频  文档  音乐
cpuburn-in.tar.gz  install.log.syslog  模板    图片  下载  桌面
[root@localhost ~]# rm -rf /opt/*
[root@localhost ~]# tar -zxf /root/cpuburn-in.tar.gz -C /opt/  
[root@localhost ~]# ls /opt/
cpuburn-in  README
[root@localhost ~]#

步骤二:运行cpuburn测试软件10分钟

分析: 按Ctrl+Shift+t再开一个终端,运行cpuburn程序,如图

在这里插入图片描述
命令操作如下所示:

[root@localhost ~]# ls /opt/
cpuburn-in  README
[root@localhost ~]# grep cpuburn-in /opt/README   	//在README里有使用方式的介绍
        "./cpuburn-in 10" will run the test for ten minutes.

[root@localhost ~]# /opt/cpuburn-in 10     			//以绝对路径方式执行
-bash: /opt/cpuburn-in: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录      //出现报错看报错提示,缺少 ld-linux.so.2文件,利用yum安装即可


  [root@localhost /]# yum -y install ld-linux.so.2
    [root@localhost ~]# /opt/cpuburn-in 10

CPU Burn-in v1.00 - Linux
-------------------------
Michal Mienik (c) 2000. cluster2k@hotmail.com

0 iterations complete.
5000 iterations complete.
10000 iterations complete

… …

步骤三:再开启另一个终端,输入top动态查看

命令操作如下所示:

[root@localhost /]# top
top - 12:43:18 up  1:08,  2 users,  load average: 0.91, 0.57, 0.28
Tasks: 117 total,   2 running, 115 sleeping,   0 stopped,   0 zombie
Cpu(s):100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    486284k total,   350248k used,   136036k free,    24260k buffers
Swap:  8388600k total,        0k used,  8388600k free,   203716k cached

   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                    
 23592 root      20   0  2416 1004  328 R 99.7  0.2   1:25.26 cpuburn-in                 
 23564 root      20   0 98.0m 4016 3044 S  0.3  0.8   0:00.21 sshd                       
 23595 root      20   0 15036 1220  944 R  0.3  0.3   0:00.02 top                        
     1 root      20   0 19356 1448 1140 S  0.0  0.3   0:01.10 init           
…… 

按Shift+p可以按CPU使用率排序
按k键杀死CPU使用率最高者,按两次回车
top - 12:44:45 up 1:09, 2 users, load average: 0.98, 0.67, 0.34
Tasks: 117 total, 2 running, 115 sleeping, 0 stopped, 0 zombie
Cpu(s): 94.7%us, 2.6%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 2.6%si, 0.0%st
Mem: 486284k total, 350248k used, 136036k free, 24268k buffers
Swap: 8388600k total, 0k used, 8388600k free, 203716k cached
PID to kill: 23592
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
23592 root 20 0 2416 1004 328 R 99.7 0.2 1:25.26 cpuburn-in
… …

步骤四:查看原终端cpuburn程序是否已杀死

命令操作如下所示:

2755000 iterations complete.
已终止
[root@localhost ~]#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
  本模拟程序实现对n个进程根据优先权的高低调度的模拟,创建进程描述符PCB,进程的优先权在运行过程中动态改变,每个时间片结束后显示当前各进程的状态。具体要求如下: 用C语言来实现对n个进程采用不同调度算法的进程调度。 每个用来标识进程进程控制块PCB用结构来描述,包括以下字段:  进程标识数 ID。 进程优先数 PRIORITY,并规定优先数越大的进程,其优先权越高。 进程已占用的CPU时间CPUTIME。 进程还需占用的CPU时间NEEDTIME。当进程运行完毕时,NEEDTIME变为0。 进程的阻塞时间STARTBLOCK,表示当进程再运行STARTBLOCK个时间片后,将进入阻塞状态。 进程被阻塞的时间BLOCKTIME,表示已阻塞的进程再等待BLOCKTIME个时间片后,将转换成就绪状态。 进程状态STATE。 队列指针NEXT,用来将PCB排成队列。 优先数改变的原则: 进程在就绪队列中呆一个时间片,优先数加1。 进程每运行一个时间片,优先数减3。 假设在调度前,系统中有5个进程,它们的初始状态如下: ID 0 1 2 3 4 PRIORITY 9 38 30 29 0 CPUTIME 0 0 0 0 0 ALLTIME 3 3 6 3 4 STARTBLOCK 2 -1 -1 -1 -1 BLOCKTIME 3 0 0 0 0 STATE READY READY READY READY READY 为了清楚的观察各进程的调度过程,程序应将每个时间片内的情况显示出来,参照的具体格式如下: RUNNING PROG:i READY-QUEUE:-〉id1-〉id2 BLOCK-QUEUE:-〉id3-〉id4 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = == = = ID 0 1 2 3 4 PRIORITY P0 P1 P2 P3 P4 CUPTIME C0 C1 C2 C3 C4 ALLTIME A0 A1 A2 A3 A4 STARTBLOCK T0 T1 T2 T3 T4 BLOCKTIME B0 B1 B2 B3 B4 STATE S0 S1 S2 S3 S4

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值