Windows下,大家可以使用任务理器来查看系统的各种资源使用情况,我们常常比较关心的就是CPU使用率,在Linux,同样有这样可视化的软件,但是大家可能会好奇那些不断变化的数字是怎样计算出来的? 下面,我就来分析一下psutil是怎样计算CPU的使用率的。 简单介绍一下psutil,psutil是一个python获取当前系统资源的第三方模块,可以跨平台的获取系统的各方面资源。 psutil获取系统cpu使用率的方法是cpu_percent(),其有两个参数,分别是interval和percpu,interval指定的是计算cpu使用率的时间间隔,percpu则指定是选择总的使用率还是每个cpu的使用率 描述系统cpu使用情况主要有一下几点: user          从系统启动到现在,CPU处于用户态的运行时间。不包含nice值为负的进程。 nice          从系统启动到现在,CPUnice为负值的进程占用的cpu时 继续阅读 >>


周攀 16/07/26 17:07:23
Permutation Bo Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 0    Accepted Submission(s): 0 Special Judge Problem Description There are two sequences h1∼hn and c1∼cn. h1∼hn is a permutation of 1∼n. particularly, h0=hn+1=0. We define the expression [condition] is 1 when condition is True,is 0 继续阅读 >>


楚东方 16/07/26 17:05:18
0386开始,CPU有三种工作方式:实模式,保护模式和虚拟8086模式。只有在刚刚启动的时候是real-mode,等到操作系统运行起来以后就切换到protected-mode。实模式只能访问地址在1M以下的内存称为常规内存,我们把地址在1M 以上的内存称为扩展内存。在保护模式下,全部32条地址线有效,可寻址高达4G字节的物理地址空间; 扩充的存储器分段管理机制和可选的存储器分页管理机制,不仅为存储器共享和保护提供了硬件支持,而且为实现虚拟存储器提供了硬件支持; 支持多任务,能够快速地进行任务切换(switch)和保护任务环境(context); 4个特权级和完善的特权检查机制,既能实现资源共享又能保证代码和数据的安全和保密及任务的隔离; 支持虚拟8086方式,便于执行8086程序。 实模式(Real Mode) 它是 Intel公司80286及以后的x86(80386,80486和80586等)兼容处理器(CPU)的一种操作模式。实模式被特殊定义为20位地址内存可访问空间上,这就意 继续阅读 >>


王瑞欣 16/07/26 16:25:47
**部分和问题** 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 给定整数a1、a2、…….an,判断是否可以从中选出若干数,使它们的和恰好为K。 输入 首先,n和k,n表示数的个数,k表示数的和。 接着一行n个数。 (1<=n<=20,保证不超int范围) 输出 如果和恰好可以为k,输出“YES”,并按输入顺序依次输出是由哪几个数的和组成,否则“NO” 样例输入 4 13 1 2 4 7 样例输出 YES 思路 简单dfs,递归注意结束条件 /************************************************************************* > File Name: dfs1.cpp > Author: > Mail: > Created Time: 2016年0 继续阅读 >>


余海 16/07/26 15:23:42
一:内核编码规范总结(转) 第一章:缩进 制表符是8个字符,所以缩进也是8个字符。有些异端运动试图将缩进变为4(乃至2)个字符深,这几乎相当于尝试将圆周率的值定义为3。 理由:缩进的全部意义就在于清楚的定义一个控制块起止于何处。尤其是当你盯着你的屏幕连续看了20小时之后,你将会发现大一点的缩进会使你更容易分辨缩进。 现在,有些人会抱怨8个字符的缩进会使代码向右边移动的太远,在80个字符的终端屏幕上就很难读这样的代码。这个问题的答案是,如果你需要3级以上的缩进,不管用何种方式你的代码已经有问题了,应该修正你的程序。 简而言之,8个字符的缩进可以让代码更容易阅读,还有一个好处是当你的函数嵌套太深的时候可以给你警告。留心这个警告。 在switch语句中消除多级缩进的首选的方式是让“switch”和从属于它的“case”标签对齐于同一列,而不要“两次缩进”“case”标签。比如:     switch (suffix) {     case 'G':   & 继续阅读 >>


校园 16/07/26 15:15:23
/**************************** > File Name: fork_stdio.c > Author: dulun > Mail: dulun@xiyoulinux.org > Created Time: 2016年07月26日 星期二 09时22分08秒 **********************/ #include<stdio.h> #include<stdlib.h> #include<unistd.h> int main() { printf(" %d hello world\n", getpid()); write(STDOUT_FILENO, "Ciao\n", 5); if( -1 == fork()) { exit(1); } return 0; } 如上代码,生成输出结果乍看令人费解。 以上输出有两件怪事: prin 继续阅读 >>


杜仑 16/07/26 10:32:33
文件最基础的属性时rwx,对应读读,写,可执行. #include<stdio.h> #include<unistd.h> #include<fcntl.h> #include<errno.h> #include<stdlib.h> #include<string.h> extern int errno; int main() { int fd; printf("uid study:\n"); printf("Process's uid = %d,euid = %d\n",getuid(),geteuid()); //strerror 函数获取指定错误码提示信息 if((fd = open("test.c",O_RDWR)) == -1) { printf("Open failure,errno is %d :%s \n",errno,strerror(errno)); exit(1); } els 继续阅读 >>


李余通 16/07/25 22:23:02
一、EXT2文件系统文件组织形式   EXT2文件系统是Linux系统中广泛使用的文件系统,该文件系统是一种索引式文件系统,它将分区分为inode和block,它会给每个文件分配一个inode,inode中存储文件的一些属性信息,block中存储文件真正的内容,一个block的大小有1k、4k等大小,一个block中只能存储一个文件,比如现在有一个文件占据了一个block的1B大小,那么这个block剩余的大小也无法分配给其他文件使用。大体存储结构如下图所示:          因为一个分区可能很大,可能会分成很多很多个block,为了便于管理,系统将这些block分成多个block组,每个block组中存储当前组的信息和当前block组的block,如下图:            每个分区都有如下几个项目:   引导扇区:每个分区前的引导扇区  super block:超级块,它记录的是整个文件系统的信息,文件系统的类型,inode数量,block数量等,每个分区的super block是相同的   继续阅读 >>


张根 16/07/25 22:17:01
今天在讲linux下文件的加锁之前,我要先说一说文件为什么要加锁,因为我相信很多人对文件的锁机制都是很迷惑的。 文件为什么要加锁 因为linux是一个多进用户多任务的操作系统,假如我们对一个文件进行写操作的时候,我们开了好几个进程对这个文件同时进行写操作,这时可能就会发生文件数据的不同步,而且像一些文件,比如数据库,我们必须保证每次进程只能单独的对这个文件进行写操作,为了提供这种机制,linux提供了记录锁机制。 文件的锁的种类 读锁 如果给一个文件上了读锁,那么这个文件是其他进程只能读不能写的,多个进程在一个字节上是可以有一把共享的读锁的,也就是说,一个文件是可以加多把的读锁 写锁 如果给一个文件上了写锁,那么同时其他的进程无法读也无法写的,一个字节上只能有一把写锁,不能再加任何其他的锁,这是由于写锁的独占性,但是一个文件可以被分为多个不同的区域,锁机制只能在自己的区域内起作用,也就是说如果把一个文件分为A,B两个部分,那么也是可以加两个写锁或一个写锁一个读锁的 锁的不兼容性 如果一个文件的某一区 继续阅读 >>


董恒毅 16/07/25 22:16:30
今日收获: wait()效果: 如果父进程先于子进程终止,子进程就会变成孤儿进程,被init进程收养.但如果父进程调用了wait(),他就会变成阻塞状态,一直等到子进程终止,父进程才会继续执行下去. linux目录权限解析 详见博客 >>linux系统文件权限与目录权限所对应的操作 http://blog.csdn.net/baidu_35085676/article/details/52020639 ubuntu下孤儿进程ppid为何不为1? 详见博客 >>ubuntu下孤儿进程的ppid为何不是1? http://blog.csdn.net/baidu_35085676/article/details/52021067 vfork()子进程return 0对父进程的变量的影响 详见博客 >>vfork()子进程return 0对父进程的变量的影响>> http://blog.csdn.net/baidu_35085676/article/details/52027691 linux下可执行文 继续阅读 >>


李余通 16/07/25 21:48:12