- 浏览: 239239 次
- 性别:
- 来自: 北京
文章列表
测试Context Switch time(进程上下文切换时间)
--------------------------------------------------
创建两个进程(实时进程)并在它们之间传送一个令牌,如此往返传送一定的次数。其中一个进程在读取令牌时就会引起阻塞。另一个进程发送令牌后等待其返回时也处于阻塞状态。发送令牌带来的开销与上下文切换带来的开销相比,可以忽略不计。 (利用管道传递令牌)
测试程序(1) 使用gettimeofday()获取当前时间
--------------------------------------------------
#includ ...
看到水木上的一道题,Write a C program which measures the speed of a context switch on a UNIX/Linux system.刚开始想了好久都没有思路,后来想到了一个办法,不过不知道是不是出题者想要的东西,但是我觉得这个已经算是精度比较高的一个办法了。
具体做做法是:
在父子进程之间切换,来计算context switch的时间,于是写了一段代码(Linux only 的程序)
1.通过sched_setaffinity将进程绑定在某一个CPU上(如果是多核的话,比如CPU0),fork出来的子进程也会继承这个属性
2. 通 ...
diff和patch是一对工具,在数学上来说,diff是对两个集合的差运算,patch是对两个集合的和运算。
diff比较两个文件或文件集合的差异,并记录下来,生成一个diff文件,这也是我们常说的patch文件,即补丁文件。
patch能将diff文件运用于 原来的两个集合之一,从而得到另一个集合。举个例子来说文件A和文件B,经过diff之后生成了补丁文件C,那么着个过程相当于 A -B = C ,那么patch的过程就是B+C = A 或A-C =B。
因此我们只要能得到A, B, C三个文件中的任何两个,就能用diff和patch这对工具生成另外一个文件。
这就 ...
不同于其他常见的linux distro (如 ubuntu等), 两个系统都是属于 “从零”做起,默认系统安装好后,除了最基本的系统软件(如shell,及一些核心软件如sed/find等)外,其他任何应用程序(比如 X系统, 桌面程序,firefox, office, 邮件工具等)都没有安装。 这时你需要根据自己的需要来逐步安装。
Arch 于 Gentoo 的区别在于, Gentoo 的任何一个软件(包括linux kernel)安装时,实际上是下载源代码然后在本机上编译获得,这样用户可以根据自己的物理硬件情况 (CPU类型,单核或多核等) 来调节编译选项从而获得更好的优化 (比如编译内核 ...
wuyu@xa192:~$ cat /proc/loadavg
1.41 1.61 1.79 6/149 2331
前三个数字大家都知道,是1、5、15分钟内的平均进程数(有人认为是系统负荷的百分比,其实不然,有些时候可以看到200甚至更多)。后面两个呢,一个的分子是正在运行的进程数,分母是进程总数;另一个是最近运行的进程ID号。
1.mix:最近去得最多的,也不知道为什么,最近认识的爱玩的朋友都去mix。我也盲从了。对那里没有特别的喜欢,总体感觉:mix的人应该算是比较不土气的了,mix也比较正规,至少不像banana里面那么多明显的hooker.朋友多了有座比较好玩,因为跳累了可以休息。但是mix的座不好定, 9;30之后就没有了,预定也不管用,除非你定vip房间。消费情况:一般去了就开瓶芝华士,500大洋,还不包括绿茶果盘什么的,我跟姐妹们都不知道跟那贡献了多少银子了。还可以大家一起跳,比较不孤单。因为我不会跟男人跳,也不是我的原则,只是到目前为止,mix没有我能看上的所谓帅哥!
优点:音乐不错,气氛还 ...
/dev/null,外号叫无底洞,你可以向它输出任何数据,它通吃,并且不会撑着!
/dev/zero,是一个输入设备,你可你用它来初始化文件。
/dev/null------它是空设备,也称为位桶(bit bucket)。任何写入它的输出都会被抛弃。如果不想让消息以标准输出显示或写入文件,那么可以将消息重定向到位桶。
/dev/zero------该设备无穷尽地提供0,可以使用任何你需要的数目——设备提供的要多的多。他可以用于向设备或文件写入字符串0。
oracle@localhost oracle]$if=/dev/zero of=./test.txt bs=1k count=1
oracl ...
分布式系统范围涵盖很大,从DNS,P2P网络,分布式操作系统,网格计算,云计算,虚拟化,超级计算,等等等等。网格计算和云计算有说不清的关系,有两篇入门论文可以读,伯克利云计算白皮书http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-28.pdf 和 http://www.cs.iit.edu/~iraicu/research/publications/2008_GCE08_Clouds_Grids.pdf
网格计算有几支流派,Miron Livny的Condor, 在集群和网格里应用广泛,他偏好reliability,他们有一个 ...
“简单的东西不容易出问题。”
至理名言!事实上,削减操作系统中那些对你没用的功能是一件非常重要的事情。这不仅仅意味着一个更小的操作系统,占用更少的磁盘空间(现在的硬盘少说也有几十GB,几兆的空间根本就是九 ...
更新FreeBSD
完成了安装、配置,FreeBSD基本上就算装完了。不过,目前为止没有哪个通用操作系统能够保证“bug-free”,FreeBSD也一样。在重新启动之后,我们需要做一些调整;并且,通过重新配置内核,我们可以得到一个更小、 ...
对于许多电脑用户来说,FreeBSD还是一个比较陌生的系统。本文将以FreeBSD 4.7 Release为例,一步一步地带您安装一份完整的FreeBSD操作系统。
安装前的准备
FreeBSD对于系统的硬件适应能力比较强(相比Linux可能稍差,特别是对于新 ...
首先,编译过程中需要cmake的支持,并且cmake并不是系统自带工具,所以,需要自己去下载,然后编译安装。
可以到cmake官网下载源码包,然后编译安装。
(1)解压缩
tar -zxvf cmake-2.8.4.tar.gz (当然也不一定非是这个版本号)
(2)编译前检查
./configure 或 ./bootstrap 都行
(3)编译并安装
make
make install
安装好cmake后,就可以开始mysql的编译安装了。
第二步,到mysql官网下载源码包,不要告诉我你不知道。
(1)解压源码包
tar -zxvf mysql-5.5.11.tar.gz
(2)先来c ...
Summary
Internet computers, mostly servers, sometimes send packets too large for part of a given path. Not handling this correctly can make the server unusable for some people.
Correct handling of oversize packets is by one of two means, as chosen by the sending computer (the server):
...
sk_buff结构可能是linux网络代码中最重要的数据结构,它表示接收或发送数据包的包头信息。它在<include/linux/skbuff.h>中定义,并包含很多成员变量供网络代码中的各子系统使用。
这个结构在linux内核的发展过程中改动过很多次,或者是增加新的选项,或者是重新组织已存在的成员变量以使得成员变量的布局更加清晰。它的成员变量可以大致分为以下几类:
* Layout 布局
* General 通用
* Feature-specific功能相关
* Management functions管理函数
这个结构被不同的网络层(MAC ...
一,LINUX系统中动态链接库的创建与使用
大家都知道,在WINDOWS系统中有很多的动态链接库(以.DLL为后缀的文件,DLL即Dynamic Link Library)。这种动态链接库,和静态函数库不同,它里面的函数并不是执行程序本身的一部分,而是根据执行程序需要按需装入,同时其执行代码可在多个执行程序间共享,节省了空间,提高了效率,具备很高的灵活性,得到越来越多程序员和用户的青睐。那么,在LINUX系统中有无这样的函数库呢?
答案是肯定的,LINUX的动态链接库不仅有,而且为数不少。在/lib目录下,就有许多以.so作后缀的文件,这就是LINUX系统应用的动态链接库,只不过与WINDO ...