求二进制中1的个数查看网友评论有这样一句话:一个分支判断会耗上14个左右的时钟周期。
这里我就联想到了我看CSAPP中的几个知识点。
现在CPU一般都是一条指令一个时钟周期
普通线程之间的切换需要消耗20000个时钟周期,但是在现在cpu中基本都是超线程的,比如我笔记本是酷睿i5,2个实际内核,4个逻辑内核。也可以说是2房间4个门吧。在这种超线程的cpu中,线程切换只需要1个时钟周期。
上面只是...
分类:
其他好文 时间:
2015-07-26 17:23:43
阅读次数:
119
1. Introduction We now turn to the process control provided by the UNIX System. This includes the creation of new processes, program execution, and pr...
分类:
移动开发 时间:
2015-07-23 19:48:11
阅读次数:
238
六星经典CSAPP-笔记(12)并发编程(上)1.并发(Concurrency)我们经常在不知不觉间就说到或使用并发,但从未深入思考并发。我们经常能“遇见”并发,因为并发不仅仅是操作系统内核的“绝招”,它也是应用开发中必不可少的技巧:
访问慢I/O设备:就像当应用程序等待I/O中的数据时内核会切换运行其他进程一样,我们的应用也可以用类似的方式,将I/O请求与其他工作重叠从而挖掘并发的潜能。
推迟工作...
分类:
移动开发 时间:
2015-07-18 15:40:05
阅读次数:
229
#include?"csapp.h"
/*本代码将点分十进制形式的ip地址转化为十六进制数并且输出*/
//返回一个字符串代表的整数
int?str2int(char?*str)
{
??//要注意变量的初始化
??int?value=0;
??//字符串长度
??...
分类:
其他好文 时间:
2015-07-02 12:27:29
阅读次数:
735
include?"csapp.h"
void?main(int?argc,char*?argv[])
{
??char?*hex=argv[1];
??if(argc<2||*hex!=‘0‘||*(hex+1)!=‘x‘)
????printf("input?error!you?should?input?like?this:%s?0x8002c2f...
分类:
其他好文 时间:
2015-06-25 19:46:29
阅读次数:
211
下的第一UBUNTU12.04下Y86模拟器的安装:(參考http://archive.cnblogs.com/a/1865627/ 作适当改动)1.安装bison和flex词法分析工具sudo apt-get install bison flex2.下载sim解压。地址http://csapp.c...
分类:
移动开发 时间:
2015-06-23 10:04:32
阅读次数:
735
很久之前就听过有过CSAPP这本书的传闻了,今天终于决定上手这本神作;既然是神作,就要仔细拜读一下,今天看了一下前言部分还真的令人耳目一新,单单是前言部分就让我学习到几个新的知识点:1.c和Java:指针,显式的动态内存分配与格式化IO2.经典书记:K&R(待收藏)3.x - y < 0 与 x.....
分类:
移动开发 时间:
2015-06-20 13:08:58
阅读次数:
158
CSAPP缓冲区溢出实验(下)3.3 Level 2: 爆竹实验要求这一个Level的难度陡然提升,我们要让getbuf()返回到bang()而非test(),并且在执行bang()之前将global_value的值修改为cookie。因为全局变量与代码不在一个段中,所以我们不能让缓冲区一直溢出到.bss段(因为global_value初始化为0,所以它会被放在.bss而非.data段以节省空间)覆...
分类:
移动开发 时间:
2015-06-12 22:18:46
阅读次数:
314
这是CSAPP官网上的著名实验,通过注入汇编代码实现堆栈溢出攻击。实验材料可到我的github仓库 https://github.com/Cheukyin/CSAPP-LAB/ 选择buffer-overflow分支下载 linux默认开启ASLR,每次加载程序,变量地址都会不一样,所以若要关...
分类:
移动开发 时间:
2015-06-12 20:37:41
阅读次数:
219
之前有个问题也没特别注意,今天回来看邮件发现有同学和我讨论关于函数调用压栈的问题。
废话少说,直接上对比测试图:
图一:CSAPP lab3的getbuf反汇编结果截图
图二: 我测试,节选了部分的getbuf实现,然后很简单的去测试getbuf的反汇编结果,反汇编结果如下图
我究竟是怎么测试的:
unsigned long long ge...
分类:
移动开发 时间:
2015-05-29 23:12:20
阅读次数:
239