![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
chrysanthemumcao
这个作者很懒,什么都没留下…
展开
-
vi编译器里多行删除
vi编译器里多行删除 vi编译器里多行删除 2008-05-06 00:11 法一: 单行删除,:1(待删除行)d 多行删除 ,:1,10d 法二: 光标所在行,dd 光标所在行以下的N行,Ndd 方法1: 光标放到第6行, 输入:2yy 光标放到第9行, 输入:p 此方法适合复制少量行文本的情况,复制第6行(包括)下面的转载 2012-09-27 21:12:52 · 4759 阅读 · 0 评论 -
Manage CPU cores in Linux
转载自http://0x8086.blogspot.com/2012/12/manage-cpu-cores-in-linux.html Manage CPU cores in Linux This is going to be a short post. There are two things I need to do frequently with manycores转载 2013-07-01 10:40:34 · 768 阅读 · 0 评论 -
numa 局部性调用API
转载自http://docs.oracle.com/cd/E19082-01/820-1691/lgroups-1/index.html Memory and Thread Placement Optimization Developer's Guide Previous: Chapter 2 MPO Observability Tools转载 2013-07-03 11:41:18 · 1692 阅读 · 0 评论 -
Linux下的函数执行时间的统计方法
如何测试某个函数的执行时间是做实验时经常用到的功能,在此比较Linux下的测试函数,主要是其精确度。我们采用统一的测试标准程序(standard.c): #include #define MAX 1000 /* the loop count */ /* function: do loop operation * input: NULL * ou转载 2013-07-24 11:17:14 · 518 阅读 · 0 评论 -
linux out of memory
linux out of memery killer 今早登录虚拟 oracle 服务器 出现如下报错 Apr 18 08:35:56 primer kernel: Out of memory: kill process 3718 (oracle) score 94986 or a child Apr 18 08:35:56 primer kernel: Killed process转载 2013-08-07 22:21:43 · 3448 阅读 · 0 评论 -
brk和sbrk及内存分配函数相关
转载自:http://blog.csdn.net/ugg/article/details/4344522 brk和sbrk主要的工作是实现虚拟内存到内存的映射.在GNUC中,内存分配是这样的: 每个进程可访问的虚拟内存空间为3G,但在程序编译时,不可能也没必要为程序分配这么大的空间,只分配并不大的数据段空间,程序中动态分配的空间就是从这 一块分配的。如果这块空间不够,mall转载 2013-09-09 20:04:19 · 493 阅读 · 0 评论 -
spinlock vs. mutex
转载自:http://www.searchtb.com/2011/06/spinlock%E5%89%96%E6%9E%90%E4%B8%8E%E6%94%B9%E8%BF%9B.html 1, spinlock介绍 spinlock又称自旋锁,线程通过busy-wait-loop的方式来获取锁,任何时刻时刻只有一个线程能够获得锁,其他线程忙等待直到获得锁。spinlock在多处理器多转载 2013-11-26 11:22:44 · 2504 阅读 · 0 评论 -
Shell获取文件后缀名
file=”thisfile.txt” echo “filename: ${file%.*}” echo “extension: ${file##*.}”转载 2013-12-28 21:28:27 · 830 阅读 · 0 评论 -
linux file 命令
linux下的file命令: file 文件名 可以得到文件的类型信息.原创 2014-01-02 15:02:48 · 530 阅读 · 0 评论 -
L2_lines_in
If the data or instruction is not present in the cache, or if the cache line is invalidated, the CPU updates its cache by reading the data from the main memory. The processor event that does this is转载 2014-01-04 19:38:15 · 649 阅读 · 0 评论 -
http://blog.csdn.net/hairetz/article/details/4535920
转载自:http://blog.csdn.net/hairetz/article/details/4535920 很久没看APUE,今天一位朋友问道关于一个mutex的问题,又翻到了以前讨论过的东西,为了不让自己忘记,把曾经的东西总结一下。 先大体看下网上很多地方都有的关于pthread_cond_wait()的说明: 条件变量 条件变量是利用线程间转载 2014-01-07 11:08:54 · 696 阅读 · 0 评论 -
pthread处理线程私有变量
pthread中可以为每个线程设置一个私有变量.具体步骤如下: 1.声明一个pthread_key_t pid_key变量. 2.为每个线程创建key,如pthread_key_create(&pid_key, NULL); 3.为每个线程设置私有变量的值,如pthread_setspecific(pid_key, &tid); 4.每个线程中访问私有变量的操作为:调用pthread_ge原创 2014-01-15 15:58:25 · 2480 阅读 · 0 评论 -
编译linux内核源码
第一步,下载linux内核源码,网址:http://www.kernel.org/ $wget -r http://www.kernel.org/pub/linux/kernel/v3.0/testing/linux-3.2-rc5.tar.bz2 第二步,解压linux-3.2.0-rc5.tar.gz $cd ~;转载 2013-11-02 21:55:09 · 693 阅读 · 0 评论 -
快速读取进程内存
快速读取进程内存(摘自《Debug Hacks》,略做修改) 转载自http://www.kankanews.com/ICkengine/archives/3763.shtml Linux下使用ptrace调用可以监视和控制其他进程,并能够改变进程的寄存器值和内核映像。ptrace提供了PTRACE_PEEKDATA来实现进程内存读取,这是原语级的操作,在x转载 2013-07-05 23:04:11 · 2596 阅读 · 0 评论 -
linux释放内存命令
linux释放内存命令 转载 2011-04-29 13:53:54 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://linux008.blog.51cto.com/2837805/556272 1、首先查看linux内存使用 #free -m 2、把内存数据同步到硬盘 #syn转载 2013-06-16 18:41:40 · 658 阅读 · 0 评论 -
sched_setscheduler用法
设置调度策略 #include int sched_setscheduler(pid_t pid, int policy, const struct sched_param *param); sched_setscheduler()函数将pid所指定进程的调度策略和调度参数分别设置为param指向的sched_param结转载 2013-06-05 22:05:54 · 1148 阅读 · 0 评论 -
linux fork函数的精辟解说
#include ; #include ; main () { pid_t pid; pid=fork(); if (pid printf("error in fork!"); else if (pid == 0)转载 2012-11-30 22:41:00 · 545 阅读 · 0 评论 -
offsetof(TYPE, MEMBER)
offsetof(TYPE, MEMBER) 2008-03-23 14:12:55 offsetof(TYPE, MEMBER) 该宏在Linux内核代码(版本2.6.22)中定义如下: #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER); 分析: (TYPE *)0,将 0 强制转换为 TY转载 2013-03-17 13:53:06 · 508 阅读 · 0 评论 -
在应用程序中替换Linux中Glibc的malloc的四种方法
打算优化系统的内存分配,接管glibc提供的内存管理,但是整个工程的代码量很大,使用malloc、realloc、calloc和free的地方到处都是,如果自己写好的接口需要重命名所有的调用,先不说工作量,部分没有权限查看代码的.a文件就搞不定了。所以需要替换掉系统的malloc,保证原有调用的名称不变。经过尝试,共有四种方法可以替换,各有优缺点吧。 方案1 使用环境变量LD_PRELOAD转载 2013-04-22 23:55:25 · 840 阅读 · 0 评论 -
内存映射
内存映射 linux内核磁盘 内存映射分为文件映射和匿名映射。 文件映射是指代表这个映射的vma对应到一个文件中的某个区域。这种映射方式相对较少被用户态程序显式地使用,用户态程序一般习惯于open一个文件、然后read/write去读写文件。 而实际上,用户程序也可以使用mmap系统调用将一个文件的某个部分映射到内存上(对应到一个vma),然后以访存的方式去读写文件。尽管用户程转载 2013-04-18 10:26:13 · 528 阅读 · 0 评论 -
linux动态链接库的使用
linux静态链接库与动态链接库的区别及动态库的创建 一、引言 通常情况下,对函数库的链接是放在编译时期(compile time)完成的。所有相关的对象文件(object file)与牵涉到的函数库(library)被链接合成一个可执行文件(executable file)。程序在运行时,与函数库再无瓜葛,因为所有需要的函数已拷贝到自己门下。所以这些函数库被成为静态转载 2013-04-21 11:16:25 · 430 阅读 · 0 评论 -
linux进程创建:fork、vfork和clone联系与区别
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://qhwang.blogbus.com/logs/46874395.html 注意: 文章已迁至新博客: http://www.eyelifes.net/?p=178 fork,vfork,clone都是linux的系统调用,用来创建子进程的,但是大家在使用时经常混淆,这里给出具体例子讲解三者的联转载 2013-04-29 14:17:30 · 542 阅读 · 0 评论 -
linux中用mtrace 检查内存泄漏
使用mtrace检查内存溢出 对于内存溢出之类的麻烦可能大家在编写指针比较多的复杂的程序的时候就会遇到。Debug起来也是比较累人。其实linux系统下有一个使用的工具可以帮忙来调试的,这就是mtrace。Mtrace主要能够检测一些内存分配和泄漏的失败等。下面我们来学习一下它的用法。 使用mtrace来调试程序有4个基本的步骤,需要用到GNU C 函数库里面的一些辅助的函数功能转载 2013-04-20 23:45:22 · 808 阅读 · 0 评论 -
linux getopt函数 分析命令行参数
表头文件 #include 定义函数 int getopt(int argc,char * const argv[ ],const char * optstring); 函数说明 getopt()用来分析命令行参数。参数argc和argv是由main()传递的参数个数和内容。参数optstring 则代表欲处理的选项字符串。此函数会转载 2013-05-02 09:43:52 · 480 阅读 · 0 评论 -
SMP vs NUMA
转载请注明,来自:http://blog.csdn.net/skyman_2001 SMP(Symmetric Multi-Processor):对称多处理器结构 NUMA(Non-Uniform Memory Access) :非一致性内存访问 下面是一些摘自互联网上的SMP和NUMA的对比图片: Cache-coh转载 2013-05-15 19:37:41 · 2025 阅读 · 0 评论 -
[kernel] linux在多核处理器上的负载均衡原理
[kernel] linux在多核处理器上的负载均衡原理 转载自:http://rdc.taobao.com/blog/cs/?p=379 现在互联网公司使用的都是多CPU(多核)的服务器了,Linux操作系统会自动把任务分配到不同的处理器上,并尽可能的保持负载均衡。那Linux内核是怎么做到让各个CPU的压力均匀的呢? 做一个负载均衡机制,重点在于: 1. 何转载 2013-05-30 21:09:15 · 710 阅读 · 0 评论 -
linux安装分区大小分配
●文件系统 在windows下,我们常见到的文件系统有 FAT、 FAT32、 NTFS 在linux里可使用的文件系统有: Ext2:早期的格式,不支援日志 Ext3:是ext2改良版,增加了日志功能,是最基本且最常用的使用格式了。 ReiserFS:也有日志功能,其特点是处理小档案时速度快。 XFS : 稳定与高效,在大小档案混合的系统里有优越的表现转载 2013-01-27 17:13:13 · 23077 阅读 · 0 评论 -
Linux 进程间通信 - 共享内存shmget方式(转)
共享内存区域是被多个进程共享的一部分物理内存。如果多个进程都把该内存区域映射到自己的虚拟地址空间,则这些进程就都可以直接访问该共享内存区域,从而可以通过该区域进行通信。共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容。这块共享虚拟内存的页面,出现在每一个共享该页面的进程的页表中。但是它不需要在所有进程的虚拟内存中都有相同转载 2013-06-02 17:38:56 · 608 阅读 · 0 评论 -
Linux下进程通信
转载自:http://ohl50ohl.iteye.com/blog/1363390 Linux下进程通信的八种方法[连载-记1]:所有方法登场 本连载是我对《Linux Programming by Example》《Linux Aplication Development》《Linux应用开发技术详解》等书中介绍的Linux下进程通信的方法的相关章节作的笔记,具体细节的还请参照以上书籍。转载 2013-06-02 17:26:10 · 529 阅读 · 0 评论 -
查看CPU Cache大小
转载自:http://blog.csdn.net/zhuliting/article/details/6744090 因为论文需要CPU cache的相关信息,但intel官方网站上http://ark.intel.com/#desktopprocessors只能查到L2 cache的大小。于是从网络上找到了linux系统下查看Cache大小的两种方法。 第一种方法就是从开机信息中查找转载 2014-03-28 22:48:38 · 3921 阅读 · 0 评论