本来没想现在去找实习的,不过既然腾讯来了,就去打一次酱油吧。这算是我第一次参加正式的招聘吧,虽然是实习生的,但是也有必要写篇博客记录一下。
1、流水帐
2、总结 (更多…)
乐者为王
本来没想现在去找实习的,不过既然腾讯来了,就去打一次酱油吧。这算是我第一次参加正式的招聘吧,虽然是实习生的,但是也有必要写篇博客记录一下。
1、流水帐
2、总结 (更多…)
Linux Kernel实现的链表与众不同,大多数人所熟悉的方式应该是在“链表中包含结构体”,而Linux内核的实现方式则是所谓的“结构体中包含链表”。这样的说法听起来很玄乎,不如给出具体的定义和实例。
struct list_head {
struct list_head *next, *prev;
};
这就是内核代码中Linked List的结构体定义,从list_head定义可以看出,内核的链表是循环链表。我们可以这么用它:
这是Linux操作系统分析的实验,
要求是这样的:“通过glibc API函数追踪glibc代码和内核代码的调用过程,理解其关键机制,并能现场查找代码回答问题”
工欲善其事,必先利其器。
首先需要安装一下额外的工具包,一个是 libc6-dbg,这是带有debug symbol信息的 libc.so;另一个是libc6-dev,这是glibc的源代码,获取之后我们就可以在gdb中查看代码了。
在Ubuntu/Debian 系统上,我们可以通过以下2条命令获得: (更多…)
2月8日凌晨紧张激烈的选课结束,很高兴想选的课都选到了,比如《编译工程》《Linux操作系统分析》《分布式与并行算法》等。
选课本身没什么好说的,但是其中的一些现象让我忍不住写下这篇博客。
早在选课前一天,班级的QQ群,学院QQ群,09级、10级的交流群变得异常的活跃,充斥着各种询问课程的消息。
本来,听取同学的意见、师兄师姐的经验作为自己的选课参考也是一件好事,但是事实上群里的讨论已经偏离这种意图。 (更多…)
要求:模拟一个缓存管理器。给出的测试文件中包含50万个页面请求,每一行用(X,Y)表示,其中X=1表示对页面号为Y的页面写操作,X=0表示对页面号为Y的页面读操作。例如 0,6558 1,3024 等。
规定:磁盘上的页面大小等于Buffer的一个块大小,为4KB;磁盘上的数据库文件data.dbf包含5000个页面,缓冲区有1024个Buffer。设计一个缓存管理器,并统计页面请求的命中和不命中次数。
先说下我的思路,如图,问题牵涉到下面三个部分的协同工作,其中省略了磁盘的读写部分。
在上一篇博客里提到了一个简单的聚类算法kmeans。这里是用C语言写的一个命令行的版本,它似乎可以运行,也能产生结果,不过我也没有仔细验证过是否正确 :-) 这里是在GitHub上托管的源代码。
使用方法以Linux环境为例,首先make一下,生成可执行文件kmeans
然后 ./kmeans input.csv ouput.csv 3 random means
input.csv和ouput.csv是输入数据和输出数据文件,CSV文件不神秘,用文本编辑器打开看就是几行点坐标数据。
3是指定要把点集分成几个类。
中心点Center计算有两种方式:1.mean(均值); 2.median(中位数)
初始化方法有以下两种方式:1.random partition(随机初始化); 2.k-means++(Knuth的弟子想出的方法) (更多…)
K-means Clustering Algorithm 中文名也许叫“K均值聚类算法”,是统计学和数据挖掘领域中常用的一种算法。维基百科上是这样介绍的:k-means clustering is a method of cluster analysis which aims to partition n observations into k clusters in which each observation belongs to the cluster with the nearest mean (更多…)
时间倒回到2011年5月的一天,大学的最后一门课《计算机信息安全技术》,讲到《缓冲区溢出》这一章,并且给出了一段示例代码来演示缓冲区溢出,回到宿舍后出于好奇我运行了一下这段代码,发现结果并不是书上所说的那样,当时在人人网也发过一篇吐槽的日志,但是一直拖到现在都没有仔细的去研究过,正好现在十一放假没事,就花点时间搞搞啦。
书第136页-137页。代码如下,出于简单考虑(其实书上的C++代码格式也是错的),我除去了头文件和cout函数,这样就跟纯C语言代码是一样了。 (更多…)
Python 新旧版本之间的语法不兼容,导致iBus图标不显示,候选词框也不显示;导致Wicd无法启动。如下图所示。
问题产生:
由于Ubuntu默认安装了python2.6 ,后来我自己又装了python3.1,但是在终端里面输入python启动的是2.6版本的,这个是系统的默认,我们可以查看/usr/bin/目录,如图: (更多…)