
Linux
文章平均质量分 79
傻红就是不爱跑步
这个作者很懒,什么都没留下…
展开
-
CPU核心温度获取
转自:http://blog.youkuaiyun.com/xiaibiancheng/article/details/8979011要获取cpu的温度可以通过汇编指令来读取,这里以intel cpu为例,用rdmsr指令读取 IA32_THERM_STATUS_MSR(0x019C)的值,然后用TjunctionMax 减去这个值就是当前cpu的温度,对于一般的intel cpu 的Tj转载 2016-06-01 16:37:16 · 17661 阅读 · 3 评论 -
CPU亲和性(affinity)sched_setaffinity() 和 sched_getaffinity()
简单地说,CPU 亲和性(affinity) 就是进程要在某个给定的 CPU 上尽量长时间地运行而不被迁移到其他处理器的倾向性。Linux 内核进程调度器天生就具有被称为 软 CPU 亲和性(affinity) 的特性,这意味着进程通常不会在处理器之间频繁迁移。这种状态正是我们希望的,因为进程迁移的频率小就意味着产生的负载小。2.6 版本的 Linux 内核还包含了一种机制,它让开发人员可转载 2016-06-23 08:52:28 · 572 阅读 · 0 评论 -
如何将所有的进程运行在一个指定的CPU上
转载:http://blog.youkuaiyun.com/sunvince/article/details/6533016这是CU上的一个问题... from: http://bbs.chinaunix.net/viewthread.php?tid=2330394 在SMP上,想把所有的用户 态进程运行在一个CPU上,腾出其它CPU干其它事。Linux能通过转载 2016-06-22 17:11:35 · 8382 阅读 · 1 评论 -
Linux进程控制块
进程在操作系统中都有一个户口,用于表示这个进程。这个户口操作系统被称为PCB(进程控制块),在linux中具体实现是 task_struct数据结构,它记录了一下几个类型的信息:1.状态信息,例如这个进程处于可执行状态,休眠,挂起等。2.性质,由于unix有很多变种,进程有自己独特的性质。3.资源,资源的链接比如内存,还有资源的限制和权限等。4.组织,例如按照家族关转载 2016-06-22 15:44:27 · 1191 阅读 · 0 评论 -
linux进程调度函数浅析
转自:http://www.cnblogs.com/liangning/p/3885933.html众所周知,进程调度使用schedule()函数来完成,下面我们从分析该函数开始,代码如下(kernel/sched/core.c):1 asmlinkage __visible void __sched schedule(void)2 {3 struct task转载 2016-06-16 14:54:50 · 1270 阅读 · 0 评论 -
内核源码分析之进程调度机制
转自:http://www.cnblogs.com/liangning/p/3892306.html进程调度所使用到的数据结构:1.就绪队列内核为每一个cpu创建一个进程就绪队列,该队列上的进程均由该cpu执行,代码如下(kernel/sched/core.c)。1 DEFINE_PER_CPU_SHARED_ALIGNED(struct rq, runqueu转载 2016-06-16 14:52:41 · 3864 阅读 · 0 评论 -
系统级性能分析工具 — Perf
转自:http://blog.youkuaiyun.com/zhangskd/article/details/37902159perf Performance analysis tools for Linux.Performance counters for Linux are a new kernel-based subsystem that provide a fram转载 2016-06-30 16:08:13 · 2264 阅读 · 0 评论 -
PARSEC benchmark 编译
1、配置环境source env.sh2、使用下面的命令可以查看parsec中所有的benchmarkparsecmgmt -a info下面是parsec中的部分benchmark: Benchmark 内容 FFT 核心程序,用于计算快速傅里叶变换 OCEAN-CP 非核心程序,用于通过海洋的边缘的海流模拟整个海洋的运动 BLACKSCHOLES 计算财务应用,基于原创 2016-06-13 09:21:48 · 4230 阅读 · 0 评论 -
cc、gcc、g++、CC的区别概括
gcc是C编译器;g++是C++编译器;linux下cc一般是一个符号连接,指向gcc;gcc和g++都是GUN(组织)的编译器。而CC则一般是makefile里面的一个名字,即宏定义,嘿,因为Linux/Unix都是大小写敏感的系统,这点一定要注意。cc是Unix系统的C Compiler,而gcc则是GNU Compiler Collection,GNU编译器套装。gcc原名为Gun转载 2016-06-12 15:33:06 · 472 阅读 · 0 评论 -
如何指定进程运行的CPU
coolshell最新的文章《性能调优攻略》在“多核CPU调优”章节,提到“我们不能任由操作系统负载均衡,因为我们自己更了解自己的程序,所以,我们可以手动地为其分配CPU核,而不会过多地占用CPU0,或是让我们关键进程和一堆别的进程挤在一起。”。在文章中提到了Linux下的一个工具,taskset,可以设定单个进程运行的CPU。同时,因为最近在看redis的相关资料,redis作为单进程模转载 2016-06-27 08:59:49 · 555 阅读 · 0 评论 -
线程绑定CPU核
Linux系统提供API函数sched_setaffinity和sched_getaffinity用于设置或获取线程的可以使用的CPU核。int sched_setaffinity(pid_t pid, unsigned int cpusetsize, cpu_set_t *mask);这个函数中pid表示需要设置或获取绑定信息的线程id(或进程id),如果为0,表示对当前调用的线转载 2016-06-27 08:57:20 · 1673 阅读 · 0 评论 -
Linux的基本知识(1)
1、各寄存器的简介AX:累加器 BX:基址寄存器(存放存储器地址) CX:计数器 DX:数据寄存器(存放数据) SI:源变址寄存器(常保存存储单元地址) DI:目的变址寄存器(常保存存储单元地址) BP:基址指针寄存器(Base Pointer),表示堆栈区域中的基地址 SP:堆栈指针寄存器(Stack Pointer),指示堆栈区域的栈顶地址 IP:指令指针寄存器(Instr原创 2016-06-03 11:18:07 · 2787 阅读 · 0 评论 -
重新编译Linux内核
我的虚拟机上装的是14.04的Ubuntu。1、make mrproper 把原来编译产生的垃圾删除(如果是第一次编译就不用这条了)2、查看当前系统源码版本apt-cache search linux-source输出结果:linux-source - Linux kernel source with Ubuntu patcheslinux-source-3.13.0 - Linux kernel原创 2016-06-07 16:28:44 · 1048 阅读 · 0 评论 -
Linux动态加载内核模块
Linux属于单内核,为了弥补单内核扩展性与维护性差的缺点,Linux引入动态可加载内核模块,模块可以在系统运行期间加载到内核或从内核卸载。模块是具有独立功能的程序,它可以被单独编译,但不能独立运行。它在运行时被链接到内核作为内核的一部分在内核空间运行。模块通常由一组函数和数据结构组成,用来实现一种文件系统、一个驱动程序或其他内核上层的功能。下面是一个简单的例子: (1)模块hello.c文件#i原创 2016-06-23 16:32:37 · 24272 阅读 · 5 评论