随笔分类 - 计算机系统与云计算
摘要:John Hennessy and David Patterson 2017 ACM A.M.Turing Award Lecture SISC 不同指令耗费时间不同 Micro programming 每条指令有一套程序 不能共享 设计指令集 机器中基本的微指令 用微指令实现基本指令 微程序设计
阅读全文
摘要:1.存储器层次结构 关于局部性的理解详见https://www.jianshu.com/p/fa9aa1db0c0f 主存 高速缓存 和CPU寄存器 按地址访问 磁盘 按 块访问 光盘顺序访问 金字塔从下往上单位容量越小 造价越高 性能越好 访问速度越快 在任何时刻 第k层的缓存包括第k+1层块的一
阅读全文
摘要:what is cloud computing1.1云计算的定义 通过互联网以服务方式提供的应用程序,也包括应用中心提供这些服务的硬件和软件1.2分类 公有云 pay-as-you go 在这种系统中 个人或组织在发生某事时要支付费用,而不是在事前或事后举例:amazon web service,
阅读全文
摘要:并行数据架构 https://csruiliu.github.io/blog/20170323-parallel-db-arch/ 共享内存 两个不同的进程A.B共享内存说明,同一块物理内存被映射到A.B不同的进程地址空间。A可以及时看到B对共享内存的更改 优点:数据的共享使得进程间通行非常方便,函
阅读全文
摘要:CSAPP第七章 7.1 1.函数后没跟函数体则为声明,跟了则为定义 下列情况仅为声明 1: 仅仅提供函数原型:void display(); 2: extern int a; 3: class A; 4: typedef 声明; 5: 在类中定义的静态数据成员的声明 class A{ public
阅读全文
摘要:CSAPP第八章 参考https://www.cnblogs.com/zy691357966/p/5480537.html 8.1异常 异常是异常控制流的一种形式,一部分由硬件实现,一部分由操作系统实现 a transfer of control to the OS kernel in respon
阅读全文
摘要:B.miss rate 25% char* 每个结构体会做4次赋值操作,第一次赋值会miss,把整个结构体放到缓存中,后三次分量的赋值会hit. int*每个结构体只做一次赋值操作,指针运算+4跳到下一个结构体去赋值,每一次赋值都是cold miss. int*不会对每个分量都赋值,一次赋值把四个分
阅读全文
摘要:touch1 disas getbuf 0x28 前40个字节的内容无关紧要,因为它们属于未溢出的部分。这段攻击代码中而真正起作用的是缓冲区溢出的部分,即最后的8个字节。同时要注意到机器是小端表示的字节序,即低位放在低字节,高位放在高字节,并且栈的增长方向是由低地址增长到高地址。 touch2 注入
阅读全文
摘要:CSAPP第九章概念 1.虚拟地址数=2^(虚拟地址位数) 最大可能的虚拟空间=虚拟地址数-1 2. 使用虚拟寻址,CPU需要将虚拟地址转换成物理地址,这样才能访问真实的物理内存 concepts:1)VM on disk,PM (DRAM cache) 2)page--cache blocks 3
阅读全文
摘要:CSAPP第六章概念 1.时间局部性:程序有在一段时间多次访问同一数据块的倾向 空间局部性:程序往往有访问一个聚集空间数据块的倾向 空间局部性的例子:我们可以选择在读取内存块的时候,把它附近的内存块也读进来(prefetch) 2.B KB MB 1GB=1024MB=1024*1024KB=102
阅读全文
摘要:Welcome to my fiendish little bomb. You have 6 phases withwhich to blow yourself up. Have a nice day!I am not part of the problem. I am a Republican.P
阅读全文
摘要:http://cenalulu.github.io/linux/about-denormalized-float-number/ 一个有趣的实验 本文从一个有趣而诡异的实验开始。最早这个例子博主是从 Stackoverflow上的一个问题中看到的。为了提高可读性,博主这里做了改写,简化成了以下两段代
阅读全文
摘要:/* * bitAnd - x&y using only ~ and | * Example: bitAnd(6, 5) = 4 * Legal ops: ~ | * Max ops: 8 * Rating: 1 */int bitAnd(int x, int y) { z=~(~x|~y); re
阅读全文
摘要:练习2.1320世纪70年代末至80年代末,DigitalEquipment的VAX计算机是一种非常流行的机型。它没有布尔运算AND和OR指令,仅仅有bis(位设置)和bic(位清除)这两种指令。两种指令的输入都是一个数据字x和一个掩码字m。 他们生成一个结果z。z是有依据掩码m的位来改动x的位得到
阅读全文
摘要:1.编程习惯 代码不要写中文。 只能用局部变量,不能用全局变量。 单目操作符:~按位取反 !取反 双目操作符 与 或 非 加 移位 2.复习 1.Shell 包裹内核的壳 2.Kernel 内核 每个操作系统都有一个内核 不与程序交互 function:系统调用:提供函数 e.g file open
阅读全文
摘要:ubuntu编写C程序 root@ :~# touch flow.croot@ :~# vim flow.croot@ :~# gcc flow.cflow.c: In function ‘main’:flow.c:5:13: warning: integer overflow in express
阅读全文
摘要:1.有CPU和内存就是计算机 2.固态硬盘SSD 持久存储 3.src是源代码 4.文件是被命名的二进制的串 5.控制台上写东西如printf 6.scanf从标准输入(键盘)来读,标准输出(显示器) 7.stdin/stdout 即stdio 8.出错时 stderror 9.r w x 可读 可
阅读全文