E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
深入理解计算机系统
CS:APP3e
深入理解计算机系统
_3e Attacklab 实验
详细的题目要求和资源可以到http://csapp.cs.cmu.edu/3e/labs.html或者http://www.cs.cmu.edu/~./213/schedule.html获取。getbuf()实现为:unsignedgetbuf(){charbuf[BUFFER_SIZE];Gets(buf);/*没有边界检查*/return1;}其中的BUFFER_SIZE是在编译时候就确定的常
a_18067
·
2020-08-18 19:17
内存对齐机制
《
深入理解计算机系统
》Chapter3程序的机器级表示3.9.32.百度百科http://baike.baidu.cn/view/4786260.htm3.内存对齐的原理,作用……http://lc7cl.iteye.com
weixin_30414635
·
2020-08-18 17:17
探究C语言标准库limits.h关于INT_MIN宏的奇怪定义
最近在读《
深入理解计算机系统
》(顺便打个广告,卡内基梅隆出品的这本书绝对精品),在书的48页提到了在C语言标准库limits.h中将int类型的最小值INT_MIN定义为-INT_MAX-1。
weixin_33713503
·
2020-08-18 09:02
CSAPP =1= 计算机系统漫游
思维导图预计阅读时间:15min阅读书籍《
深入理解计算机系统
》参考视频【精校中英字幕】2015CMU15-213CSAPP
深入理解计算机系统
课程视频参考文章《
深入理解计算机系统
(1.1)---计算机概述
旻天clock
·
2020-08-18 09:00
深入理解计算机系统
——优化程序性能学习笔记
文章目录优化编译器的能力和局限性表示程序性能消除循环的低效率减少过程调用消除不必要的内存引用理解现代处理器整体操作循环展开提高并行性多个累计变量一些限制因素寄存器溢出分支预测和预测错误处罚理解内存性能应用:性能提高技术确认和消除性能瓶颈程序剖析优化编译器的能力和局限性编译器只对程序进行安全的优化,尽量不改变程序的行为。例如有以下两个函数:voidtwiddle1(long*xp,long*yp){
一切如来心秘密
·
2020-08-18 09:50
计算机系统
深入理解计算机系统
_第8章 异常控制流
异常控制流发生在计算机系统的各个层次:1)硬件层面,硬件检测到事件会触发控制,跳转到异常处理程序;2)操作系统层面,内核通过上下文切换,实现进程切换,也是异常控制流;3)应用程序层面,信号的信号处理程序,也是异常控制流;语言层面的try,catch,throw也是异常控制流;非本地跳转setjmp,longjmp也是异常控制流;8.1异常异常就是控制流中的突变,用来响应处理器状态的某些变化;异常事
rens111
·
2020-08-17 13:09
操作系统
《
深入理解计算机系统
》——第7章(链接)
链接链接:将各种代码和数据部分收集起来并组合成为一个单一文件的过程。(这个文件可被加载或拷贝到存储器并执行)链接可以执行于编译,加载或运行时。静态链接:两个主要任务:1符号解析:将目标文件中的每个全局符号都绑定到一个唯一的定义2重定位:确定每个符号的最终存储器地址,并修改对那些目标的引用符号表:typedefstruct{intname;//字符串表中的字节偏移,指向符号的以NULL结尾的名字in
pianogirl123
·
2020-08-17 13:48
Linux
计算机专业应该读得书
你面试微软前必须要读的十本书:Code:TheHiddenLanguageofComputerHardwareandSoftware(《编码的奥秘》)ComputerSystem:AProgrammer’sApproach(《
深入理解计算机系统
aican_yu
·
2020-08-17 11:35
linux
《
深入理解计算机系统
》读书笔记(二)信息的表示和处理
前言继续阅读《
深入理解计算机系统
》这本经典书籍本节是第二章信息的表示和处理1、信息存储小端法:最低有效字节在最前面,如android和IOS大端法:最高有效字节在最前面字符串最常见的是用ASCII码代码的机器表示则每个机器不同
思源湖的鱼
·
2020-08-16 22:54
system
信息
系统
《
深入理解计算机系统
》读书笔记(一)计算机系统漫游(绪论)
前言开始阅读《
深入理解计算机系统
》这本经典书籍本节是第一章计算机系统漫游可以看做整本书的绪论整本书有800多页1、信息就是位+上下文这本书致力于让读者了解在系统上执行hello程序时系统发生了什么以及为什么会这样
思源湖的鱼
·
2020-08-16 22:54
system
操作系统
计算机系统
《
深入理解计算机系统
》读书笔记(三)程序的机器级表示
前言继续阅读《
深入理解计算机系统
》这本经典书籍本节是第三章程序的机器级表示1、程序编码对机器级编程来说,两种抽象极为重要指令集体系结构(ISA):定义处理器的状态、指令的格式,以及每条指令对状态的影响内存地址是虚拟地址一个例子其汇编和十六进制如下
思源湖的鱼
·
2020-08-16 22:54
system
系统
汇编
程序
switch与跳转表(jump table)
20434957&do=blog&id=1680357关于【CSAPP】的介绍:CSAPP是《ComputerSystemsAProgrammer'sPerspective》一书的简称,中文版名称为《
深入理解计算机系统
pangshaohua
·
2020-08-16 19:56
C++相关
table
编译器
汇编
gcc
linux
c
深入理解计算机系统
-----动态链接
1、建立C文件,构造共享库。前面和静态链接一样。(https://blog.csdn.net/zl6481033/article/details/85340096)。-fpic选项指示编译器生成与位置无关的代码,-shared选项指示链接器创建一个共享的目标文件。一旦创建了这个库就可以链接到程序中。2、链接,创建可执行文件。这样就创建了一个可执行文件,文件的形式使它在运行时可以和libvector
吾之求索
·
2020-08-16 17:01
【CSAPP】
深入理解计算机系统
:链接(第二章:符号解析、重定位和可执行目标文件)
1、符号解析链接器解析符号引用的方法是将每个引用与它输入的可重定位目标文件的符号表中的一个确定的符号定义关联起来,即使用的符号一定要找到相应的定义。可分为局部符号解析和全局符号解析。局部符号解析:引用定义在相同模块中的局部符号的引用,符号解析非常的简单明了,就不用介绍了。全局符号解析:当编译器遇到一个不是当前模块中定义的符号时,会假设该符号时在其他某个模块中定义的,生成一个连接器符号表条目,并把它
YoungYangD
·
2020-08-16 16:23
计算机基础
浅谈缓冲区溢出(整理自《
深入理解计算机系统
》)
一、综述在x86体系结构下,C++/C对数组引用不进行任何边界检查,而且函数调用过程中局部变量和状态信息(例如寄存器值和返回指针)都存放在栈中。当这两种情况结合到一起的时候,就有可能导致严重的程序错误,一个对越界的数组元素的写操作会破坏存储在栈中的状态信息,而当程序使用这个被破坏的状态,并试图重新加载寄存器或执行ret指令(返回调用函数)时,就会产生严重的错误。二、C++/C中的数组在C++/C语
snowq
·
2020-08-16 14:35
C与C++
关于进程的虚拟地址空间
下面的内容总结自:《
深入理解计算机系统
》进程的虚拟地址空间:两种一样的方式自上而下地址递减:内核虚拟存储器(用户代码不可见)(向低地址扩展)(向高地址扩展)读写数据只读的代码和数据未用自左而右地址递增:
linyingzhan
·
2020-08-16 13:58
大排档
关于程序员应该如何学习的一些思考
为什么有的人看《Thinkinjava》《现代操作系统》《
深入理解计算机系统
》等砖头一两周就能看完一本,有的人一年都看不完一本?为什么有的人学了就不会忘记,而我学完很快就又忘记了?
追yi流年
·
2020-08-16 07:55
读书与思考
浮点数到底能不能用 == 进行比较
《
深入理解计算机系统
》中这样说过,浮点数普遍的作为实数运算的近似值的计算,是很有用的。这里说的是实数的近似值的计算,所以浮点数在计算机中其实是一种不精确的表示。它存在舍入(rou
shandongdaya
·
2020-08-16 01:03
《
深入理解计算机系统
》读书笔记——第三章、程序的机器级表示
一、历史观点Intel系列处理器的每个后继处理器的设计都是向后兼容的——较早版本上编译的代码可以在较新的处理器上运行。许多公司(比如AMD)生产出了与Intel处理器兼容的处理器,能够运行完全相同的机器级程序。二、程序编码gcc编译器的-Og参数选项告诉编译器使用会生成符合原始C代码整体结构的机器代码的优化等级。使用较高级别优化产生的代码会严重变形,以至于产生的机器代码和初始源代码之间的关系非常难
不睡觉的怪叔叔
·
2020-08-15 19:39
计算机原理
BSS段
(
深入理解计算机系统
)bss段,data段、text段、堆(heap)和栈(stack)1关于BSS段的大小21.BSS段中的内容22.BSS段在加载运行前的处理33.BSS段的作用34.代码优化对BSS
剑之所向
·
2020-08-15 14:54
S3C2440
流水线的通用原理
在流水线化的系统中,待执行的任务被划分成了若干个独立de阶段以《
深入理解计算机系统
》一书上的图做说明,而不是我们常见的五段流水线,我想能更好的说明一些问题。
aut_whisper
·
2020-08-15 00:41
计算机组成原理
(
深入理解计算机系统
) bss段,data段、text段、堆(heap)和栈(stack)
bss段:bss段(bsssegment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。bss是英文BlockStartedbySymbol的简称。bss段属于静态内存分配。data段:数据段(datasegment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态内存分配。text段:代码段(codesegment/textsegment)通常是指用来存放程序执行
段刘昌
·
2020-08-14 15:54
C语言
CSAPP-----异常控制流
本节目录:1、异常2、进程3、系统调用错误处理4、进程控制5、信号6、非本地跳转7、操作进程工具8、小结本系列文章的观点和图片均来自《
深入理解计算机系统
第3版》仅作为学习使用现代系统通过使控制流发生突变来应对一些情况
吾之求索
·
2020-08-14 12:45
【CSAPP】
深入理解计算机系统
第三章理解和习题解析之数据格式和mov指令
文章目录关于本文的说明写在前面数据格式mov指令关于操作数指示符的理解mov后缀b、w、l、q的确定方法总结mov中的数据转换关于本文的说明本文主要记录的是本人对于《
深入理解计算机系统
》一书中第三章部分章节个人理解和总结分析
不羁之路
·
2020-08-14 12:11
计算机基础
深入理解计算机系统
-第三章-程序的机器级表示-3.1-3.3
3.2程序编码假设我们写一个C程序,有两个文件p1.c和p2.c,我们用unix命令行来编译这段代码gcc-o2-opp1.cp2.co2:告诉编译器会使用第二级优化,会使得最终程序运行得更快,但是编译时间会变长,对代码进行调试会变得更加困难这个命令实际上调用了一系列的程序,将源代码转化为可执行的代码C预处理器会扩展源代码,插入所有用#include命令指定的文件,并扩展所有的宏。编译器会产生两个
草丛蔡一零
·
2020-08-14 12:08
深入理解计算机系统
深入理解计算机系统
(3.2)---数据格式、访问信息以及操作数指示符
引言本文的内容其实可以成为汇编语言的基础,因为汇编语言大部分时候是在操作一些我们平时开发看不到的东西,因此本文的目的就是搞清楚,汇编语言都是在操作些什么东西。或者更准确的说,各种汇编指令都是在操作什么样的对象。汇编层次的对象在平时的开发过程中,CPU处理器的状态对开发者是隐藏的,我们看不到CPU当中各个对象的状态。但是在汇编语言中,我们可以清楚的看到这些对象的状态,其中CPU主要包含以下几个对象。
weixin_34390105
·
2020-08-14 12:42
深入理解计算机系统
(3.3)---数据传送(或者说复制)指令详解
引言上一章我们已经介绍了汇编语言的基础部分,包括数据格式、寄存器以及操作数的标识方式,接下来我们就应该去认识一下汇编语言当中的各个指令了。这些指令大多数都非常简单,但是组合在一起却能模拟出我们程序当中想要的任何效果,确实是十分神奇的一件事。数据传送指令数据传送指令的目的是为了将一个数据从一个位置复制到另外一个位置。既然如此,那么数据传送指令就会包含一个源操作数和一个目的操作数,指令会将原操作数的值
weixin_34161083
·
2020-08-14 12:21
深入理解计算机系统
:第3-4章
第3章程序的机器级表示3.4访问信息操作数指示符立即数:用来表示常数;寄存器:ra表示任意类型的寄存器,R[ra]表示引用其值;内存引用:根据有效地址访问内存类型格式操作数值名称立即数$ImmImm立即数寻址寄存器raR[ra]寄存器寻址存储器ImmM[Imm]绝对寻址存储器(ra)M[R[ra]]间接寻址存储器Imm(rb)M[Imm+R[rb]]基址+偏移量寻址存储器(rb,ri)M[R[rb
十里清风
·
2020-08-14 11:19
计算机系统
【笔记】
深入理解计算机系统
(edition3)
深入理解计算机系统
第一章计算机系统漫游1.1信息就是位+上下文1.2程序被其他程序翻译成不同的格式1.3编译系统是如何工作益处1.4处理器读并解释存储在内存中的指令1.4.1系统的硬件组成1.4.2运行
Antrn
·
2020-08-14 11:21
Computer
汇编语言学习 操作数指示符
以下为读书笔记,摘抄自《
深入理解计算机系统
》汇编程序为程序员提供了更多处理器状态:程序计数器:将要执行的下一条指令在存储器中的地址%eip整数寄存器堆:8个32位的寄存器条件码寄存器:记录控制流状态(if
iteye_1222
·
2020-08-14 10:05
C++
编译原理
读书笔记
《
深入理解计算机系统
》练习题3.13-3.16 set指令 跳转指令编码
文章目录set指令访问条件码3.13跳转指令编码3.15cmp指令操作数顺序3.163.21set指令访问条件码SET指令根据条件码或者条件码的组合来将一个字节设置为0或1(所以如果set指令后面跟的是寄存器,那么必须是单字节的寄存器)。在经过了比较指令a=0这里负溢出,所以两个部分都为负,a为负,-b为负,所以b为正,既然a为负,b为正,那儿必有a*p,所以这里本应是cmpq(%rsi),%rd
anlian523
·
2020-08-14 09:16
CSAPP.3e
深入理解计算机系统
(3.3)------操作数指示符和数据传送指令
在上一篇博客程序编码以及数据格式中我们给出了一个简单的C程序,然后编译成了汇编代码。大家看不懂没关系,后面的博客我们将逐渐揭开一些汇编指令的神秘面纱。本篇博客我们将对操作数指示符和数据传送指令进行详细的介绍。1、整数寄存器上一篇博客我们讲了在汇编语言中,如下的几个处理器状态是可见的:一、程序计数器(在IA32中通常称为PC,用%eip表示):指示将要执行的下一条指令在存储器中的地址。二、整数寄存器
IT可乐
·
2020-08-14 09:31
swap函数
在编写程序是,经常会用到swap函数,今天看了《
深入理解计算机系统
》看到一个问题:swap函数的实现方式1voidswap(int*x,int*y){*y=*x^*y;*x=*x^*y;//*x=*x^
baorongquan
·
2020-08-13 13:06
读书笔记
CS:APP3e
深入理解计算机系统
_3e MallocLab实验
详细的题目要求和资源可以到http://csapp.cs.cmu.edu/3e/labs.html或者http://www.cs.cmu.edu/~./213/schedule.html获取。在这个实验中我们需要实现自己的动态内存申请器(malloc、free、realloc)前期准备:完全阅读书本第9章man3realloc注意事项:1.先从小的测试文件开始,例如short1-bal.rep2.
a_18067
·
2020-08-13 12:53
深入理解计算机系统
-之-内存寻址(三)--分段管理机制(段描述符,段选择子,描述符表)
逻辑地址-=>线性地址-=>物理地址前面我们提到了当使用80x86微处理器时,有三种不同的地址:逻辑地址(logicaladdress):包含在机器语言指令中用来指定一个操作数或一条指令的地址。这个寻址方式在80x86著名的分段结构中表现得尤为具体,它促使MS-DOS或Windows程序员把程序分成若干段。每一个逻辑地址都由一个段(segment)和偏移量(offset或displacement)
JeanCheng
·
2020-08-12 01:37
┈┈【操作系统的设计与实现】
♥LinuxKernel
♥
《CSAPP
深入理解计算机系统
》读后标记
陆陆续续花了一个月的时间,终于看完了CSAPP(ComputerSystem:Aprogrammer‘sperspective注:第二版已出:英文版中文版),头一次看那么厚(900页)的原版书,看完还是有一点点成就感的。从同宿舍的鲁博士那里第一次听说这本书,了解到该书从一个程序员的视角详细剖析了整个计算机系统,涵盖了组成原理、汇编语言、体系结构、操作系统、网络等计算机基础知识,当时就决定找工作之前
mafia1986
·
2020-08-11 22:43
计算机基础
linux 堆、栈、全局变量存放
在学习《
深入理解计算机系统
》中链接这一章中,数据讲一个可执行文件包含多个段。
bigxu
·
2020-08-11 17:47
《linux
C一站式学习》笔记
《
深入理解计算机系统
》——(一)
一、条件数据传送和条件控制转移首先我们先从代码层面看下这两者的不同点,先给出结论:条件数据传送性能>条件控制转移性能publicclassIfTest{privatestaticintabsDiff(intx,inty){intresult;if(x=y;if(nTest){rval=eval;}returnrval;}publicstaticvoidmain(String[]args){intx
hy_coming
·
2020-08-11 16:59
深入理解计算机系统
【Back to base】
深入理解计算机系统
读书笔记 第一章 计算机系统漫游
计算机系统是由硬件和系统软件组成的只由ASCII字符组成的文件成为文本文件,所有其他文件都成为二进制文件。(ASCII字符可以转换成ASCII码都是由一串位(bit)组成的)编译系统预处理阶段.i编译阶段.s汇编阶段.o链接阶段一个典型系统的硬件组成总线I/O设备,通过控制器或者适配器于总线相连主存,DRAM处理器,中央处理单元(CPU)由于处理器和主存之间的速度差距,引入了告诉存储器的设计,L1
雨果虾滑
·
2020-08-11 11:01
编程技术
学习计算机系统必看的5本书
1、《
深入理解计算机系统
》作者:兰德尔E.布莱恩特、大卫R.奥哈拉伦计算机系统入门的经典书籍,从程序员视角全面剖析的实现细节,使读者深刻理解程序的行为,将所有计算机系统的相关知识融会贯通。
秋叶无边
·
2020-08-11 11:52
计算机系统
深入理解计算机系统
读书笔记
文章目录前言基础硬件架构CPU的常见操作Intel处理器历史操作系统作用进程虚拟内存空间文件前言这个系列的文章是摘自
深入理解计算机系统
我看过这方面的书,但是一直没有形成一个系统的理解。
猫不在
·
2020-08-11 10:08
操作系统
深入理解计算机系统
cp1:存储单位与编码
原文:
深入理解计算机系统
cp1:存储单位与编码作者:ChorFundebug经授权转载,版权归原作者所有。1.存储单位位:即bit,表示二进制位,要么是0,要么是1。它是计算机内部数据存储的最小单位。
dichu2296
·
2020-08-11 03:09
java
游戏
javascript
《
深入理解计算机系统
》3.38题解——缓冲区溢出攻击实例(续1)
《
深入理解计算机系统
》3.38题解——缓冲区溢出攻击实例(续1)1.问题描述见http://blog.csdn.net/livelylittlefish/archive/2009/12/27/5087640
阿波321
·
2020-08-09 22:55
底层研究
《
深入理解计算机系统
》阅读笔记三——位运算 逻辑运算 移位运算
位级运算二进制位的布尔运算,这里查了网上的一个例子:用位级的异或运算来做两个变量的数值交换:inta=3,b=5;a=a^b;b=b^a;a=a^b;代码执行后:a为5,b为3这是为什么呢?异或是如何交换的呢?首先,我们看一下异或的原理:a=3^5;3的二进制是0011,5的二进制是0101。异或发现两者的不同之处,所以a最终为0110。了解了异或的基本原理后,接下来看上述的代码。a=a^b;这一
wondye76
·
2020-08-09 13:20
stm32内存分配(全解释详细)
(
深入理解计算机系统
)bss段,data段、text段、堆(heap)和栈(stack)https://www.cnblogs.com/yanghong-hnu/p/4705755.htmlSTM32的内存管理和堆栈相关的认知
shengDay
·
2020-08-09 12:36
嵌入式&C&C++&单片机
书:
深入理解计算机系统
(P614) 之 网络编程:简单echo客户端和服务端的实现
SectionIProblemSpecification实验要求:本次实验是实现一个简单的C/S模型,是基于客户端和服务端的网络编程。服务端的程序启动后,会在在某端口监听来自客户端的连接,连接后,客户端会发送一个条字段给服务端,服务端接到字段后打印出来,然后再把接收到的字段返还给客户端,算是完成了一次完整的通信。此外,服务器不只只能为一个客户端服务,也就是,有多少不同的客户端连接服务端,服务端都需
silent狼
·
2020-08-09 04:49
林老师的作业
深入理解计算机系统
(第3版) 第三章 程序的机器级表示(1)
1.机器代码计算机执行机器代码,用字节序列编码低级的操作,包括数据处理、管理内存、读写存储设备上的数据,以及利用网络通信。编译器基于编程语言的规则、目标机器的指令集和操作系统遵循的惯例,经过一系列的阶段生成机器代码。汇编代码是机器代码的文本表示,给出程序中的每一条指令,然后GCC调用汇编器和链接器,根据汇编代码生成可执行的机器代码。2.机器级代码计算机系统使用了多种不同形式的抽象,利用更简单的抽象
zjd873721519
·
2020-08-09 04:59
system
深入理解计算机系统
(第二版) 家庭作业 第五章
这一章我觉得问题还是比较多的,也不是特别理解CPE的计算。如果对题目有什么其他见解,欢迎大家一起讨论。5.15A.关键路径是%xmm1更新路径上的加法。B.CPE下界是浮点加法的延迟。C.两个load操作的吞吐量界限。(我觉得是2.00)D.因为乘法不在关键路径上,乘法也是流水线执行的,其限制因素为吞吐量界限。整个程序的限制因素为最后的浮点数加法的延迟,这个延迟对float和double都是3.0
FrostFighter
·
2020-08-09 04:23
深入理解计算机系统
(第二版) 家庭作业 第八章
8.9进程对是否并发ABNoACYesADYesBCYesBCYesCDYes8.10A.调用一次,返回两次:forkB.调用一次,从不返回:execve,longjmpC.调用一次,返回一次或者多次:setjmp8.114行8.128行8.13->x=2->x=4->x=3满足这种拓扑即可。8.14主进程只打印一行。主进程的直接子进程会打印一行,子进程的子进程又打印一行。所以是3行。8.15这里
FrostFighter
·
2020-08-09 04:23
深入理解计算机系统
(第二版) 家庭作业 第三章
3.54intdecode2(intx,inty,intz){intret;z-=y;//line2ret=z;//line3ret>=15;//line5returnret*(z^x);}3.55大概算法如下:x的高32位为xh,低32位为xl。y的符号位扩展成32位之后为ys(ys为0或者-1)。dest_h=(xl*ys)_l+(xh*y)_l+(xl*y)_hdest_l=(xl*y)_l
FrostFighter
·
2020-08-09 04:52
上一页
6
7
8
9
10
11
12
13
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他