- 博客(26)
- 资源 (27)
- 收藏
- 关注
原创 在?一起翻车。。。
CSAPP第一次小测——汇编在?一起翻车。错了四道四道,老哥,您这是干啥啊?好好补一补,博客记一下,警戒+积累,本次大坑是:有符号整型是补码表示cmpl SRC,Dsc是Dcr - Srcjmp 指令种与PC相关的条件转移你竟意识全无T1考察add指令两个正整数相加,结果存放在%edx=0x2729 5700T2考察cmpl指令和有符号跳转指令jge注意有符号整型数据以二进制补码的形式存放,而jge指令为有符号大于等于Greater or Equal(Signed),因
2020-05-31 21:17:33 1180 3
原创 排列问题
问题描述设计一个递归算法生成 n个元素{r1,r2,…,rn}的全排列。设R={r1,r2,…,rn}是要进行排列的n个元素,Ri=R-{ri}。 集合X中元素的全排列记为perm(X)。 (ri)perm(X)表示在全排列perm(X)的每一个排列前加上前缀得到的排列。R的全排列可归纳定义如下:当n=1时,perm( R )=( r ),其中r是集合R中唯一的元素当n>1时,perm( R )由( r1 )perm(R1),(r2)perm(R2),…,(rn)perm(Rn)构成。算法
2020-05-30 11:30:53 931
原创 斐波拉契数列浅析
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用。这里我们将推导斐波拉契数列的通项公式以及生.
2020-05-30 09:17:32 2410
原创 布线问题
问题描述印刷电路板将布线区域划分成nXm个方格阵列。精确的电路布线问题要求确定连接方格a的中点到方格b的中点的最短布线方案。在布线时,电路只能沿直线或直角布线。为了避免线路相交,已布了线的方格做了封锁标记,其他线路不允许穿过被封锁的方格。现给定起始点位置,求出一条从起点到终点的最短路径。算法思想广度搜索用二维数组表示网格,并且在网格的外围预处理一层“墙壁”,初始化为-1,表示不通网格grid[i][j]存储从起点开始到达(i,j)的步长也就是层数用两个数组表示搜索方向:int offs
2020-05-27 13:22:28 4107 1
原创 CSAPP bufLab 缓冲炸弹
实验题目 CS:APP BufLab实验目的:本实验将帮助您详细了解IA-32调用约定和堆栈组织。它涉及到对lab目录中的可执行文件bufbomb应用一系列缓冲区溢出攻击。注意:在本实验室中,您将获得使用操作系统和网络服务器中的安全漏洞的常用方法之一的第一手经验。我们的目的是帮助您了解程序的运行时操作,并理解这种形式的安全缺陷的性质,以便您在编写系统代码时可以避免它。实验环境:ubuntu12.04 (32位)环境一.实验内容及操作步骤Level0:(1)问题描述Level0任务是让BUFBO
2020-05-26 21:50:58 3317
原创 寄存器山分析——CSAPP discuss
解读所附 mountain 程序,并将该 mountain 程序在本组内不同(品牌/配置)PC 的 linux 系统上运行它。尝试绘制自己的存储器 山三维图(或两张二维图),并解读该存储器山,根据结果分析该系统上的高速缓存的大小。建议可在组内不同配置机器上运行,比较不 同机器上高速缓存的设置。一. 解读 mountain 程序:int main(){ int size; /* Working set size (in bytes) 工作集*/ int stride; .
2020-05-21 11:47:35 2416 1
原创 perflab实验smooth函数前缀和优化
实验内容本次实验要求修改kernel.c中的smooth函数,优化其加速比。优化策略优化策略:使用前缀和避免不必要的重复计算前缀和算法本次实验慎用,不一定符合实验的要求,在实验要求范围内的改进才被认作是好的改进,虽然你的算法达到了50.3的加速比!这里将虽然没有改动avg但是其实是变相的改变了avg的均值算法。优化思路刚开始拿到smooth优化时,想了很多方法,包括避免函数调用,分...
2020-05-18 16:39:33 1386
原创 算法复杂性分析
博客简介本博客是算法分析与设计H的复杂度分析方法总结,持续完善中…1.复杂度分析的内容算法复杂性 = 算法所需要的计算机资源,包括:算法的时间复杂性T(n)算法的空间复杂性S(n)。其中n是问题的规模(输入大小)(1)时间复杂度分析最坏情况下的时间复杂性 Tmax(n) = max{ T(I) | size(I)=n }最好情况下的时间复杂性Tmin(n) = min{ T(I) | size(I)=n }平均情况下的时间复杂性Tavg(n) =其中I是问题的规模为n的实例
2020-05-18 15:12:21 1684
原创 IIC总线随机读VHDL实现&FIFO实现乒乓操作&HM62256测试&定制IP核
博客简介本博客是本人大二上学期数字系统实验硬件描述3的内容,在此记录以防丢失。目录如下:IIC串行总线时序分析VHDL编程设计专门状态机与2片异步FIFO来实现乒乓操作设计HM62256测试电路并对其仿真验证定制开发一个1-port RAM的IP核IIC串行总线时序分析① 理解IIC总线读取任意地址数据的时序首先scl保持高电平,sda下拉,开始start。主机发送器件的7位地址码+写方向“0”(“伪写”),发送完释放SDA线并在SCL线上产生第9个时钟信号。被选中的器件确认是自己的地
2020-05-18 07:58:52 3582
原创 NP完全性理论
1.引言在计算机算法理论中,最深刻的问题之一是“从计算的观点来看,要解决的问题的内在复杂性如何?”它是“易”计算的还是“难”计算的?如果知道了一个问题的计算时间下界,就知道了对于该问题能设计出多有效的算法,从而可以较正确地评价对该问题提出的各种算法的效率,并进而确定对已有算法还有多少改进的余地。在许多情况下,要确定一个问题的内在计算复杂性是很困难的。已创造出的各种分析问题计算复杂性的方法和工具可以较准确地确定许多问题的计算复杂性。问题的计算复杂性可以通过解决该问题所需计算量的多少来度量。如何区分一个问
2020-05-17 22:06:15 2225
原创 第七章家庭作业——符号解析,重定位绝对引用,重定位相对引用
分析过程如下:① buf由关键字extend引入,是外部变量,swap.o.symtab条目中会存放由其他模块定义并被模块 m 引用的全局符号,这个外部是指的main.o,查看CSAPP前面的main.c代码可以发现buf是已经被初始化的全局变量,因此保存在节.data中② bufp0是定义在全局的已初始化变量,因此会被swap.o.symtab条目存放;它在swap.o中定义,存放于.data节③ bufp1是带static属性的静态未初始化全局变量,因此会被swap.o.symtab条目存放;由.
2020-05-17 15:08:18 2117 3
原创 链接2静态库和动态库——CSAPP总结
博客简介本篇博客是CSAPP链接章节的库部分总结,目录如下:链接静态库链接动态库如何打包编程者经常使用的功能函数? 在静态库提出之前有2中方法:Option 1: 将所有函数写入一个源代码文件编程者需要将一个很大的目标文件链接到其程序空间和时间性能都低Option 2: 每一个函数形成一个单独的源文件编程者需将自己的程序显示地链接到相应的二进制文 件更有效,但对于编程者是额外负担以上两种库处理方式并不能很好处理库链接链接静态库将所有相关的目标模块打
2020-05-16 22:27:34 582
原创 链接1——CSAPP总结
define 链接 (linking)是将各种代码和数据部分收集起来并组合成为一个单一文件的过程,这 个文件可被加载(或被拷贝)到存储器并执行。链接可以执行于编译时 (compile time), 也就 是在源代码被翻译成机器代码时;也可以执行于加载时 (load time) , 也就是在程序被加载器 (loader) 加载到存储器并执行时;甚至执行于运行时 (run time), 由应用程序来执行。在早期 的计算机系统中,链接是手动执行的。在现代系统中,链接是由叫做链接器 (linker) 的程序自 动
2020-05-16 17:38:32 800
原创 用GNU READELF工具分析ELF文件
readelf命令是Linux下的分析ELF文件的命令,在分析ELF文件时非常方便,在此记录:使用方法:linux> readelf -h test.olinux> readelf -l test.olinux> readelf -S swap.o参数选项 选项 描述 -a –all 显示全部信息,等价于 -h -l -S -s -r -d -V -A -I. -h
2020-05-16 14:07:06 994
原创 圆排列问题
1.问题描述给定n个大小不等的圆c1,c2,…,cn,现要将这n个圆排进一个矩形框中,且要求各圆与矩形框的底边相切。圆排列问题要求从n个圆的所有排列中找出有最小长度的圆排列。例如,当n=3,且所给的3个圆的半径分别为1、1、2时,这3个圆的最小长度的圆排列如图,其最小长度为2+4√2。2.算法分析该问题是一个排列问题,问题的解存储在序列r={r1,r2,r3…}中,问题的解空间树是一颗排列树。用x={x1,x2,x3…}表示当前排列的各个圆的圆心。下界函数:用Center(t)计算新增圆的圆心,
2020-05-13 14:19:25 964
原创 图的m着色问题
问题描述给定无向连通图G和m种不同的颜色。用这些颜色为图G的各顶点着色,每个顶点着种颜色。是否有一种着色法,使G中每条边的2个顶点着有不同颜色?这个问题是图的m可着色判定问题。若一个图最少需要m种颜色才能使图中每条边连接的2个顶点着不同颜色,则称这个数m为该图的色数。求一个图的色数m的问题称为图的m可着色优化问题。如果一个图的所有顶点和边都能用某种方式画在平面上且没有任何两边相交,则称这个图是可平面图。著名的平面图的四色猜想是图的m可着色性判定问题的特殊情形。讨论一般连通图的可着色性问题,不仅限于平面图
2020-05-12 17:45:29 2607 1
原创 n皇后问题
问题描述:在nXn格的棋盘上放置彼此不受攻击的n个皇后。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n后问题等价于,在nxn格的棋盘上放置n个皇后,任何2个皇后不放在同一行或同一列或同一斜线上。算法分析此题用回溯法求解,可以构造排列树解空间,解向量:(x1,x2,…,xn)显约束:x=1,2…n隐约束:(1)不同列:xi≠xj(2)不处于同一正、反对角线:|i-j|!=|xi-xj|...
2020-05-12 08:49:28 1251
原创 符号三角形问题
问题描述下图是由14个“+”和14个“-”组成的符号三角形。2个同号下面都是“+”,2个异号下面都是“-”。在一般情况下,符号三角形的第一行有n个符号。符号三角形问题要求对于给定的n,计算有多少个不同的符号三角形使其所含的“+”和“-”的个数相同。算法思想回溯,...
2020-05-12 00:18:46 1026
原创 cacheLab partB
blog简介本博客是HNUcacheLab的B部分,在此记录以防丢失。1. 以M32N32矩阵为例,并通过csim ref详细选项(-v)在缓存跟踪 trace.f文件中观察结果。① 执行指令linux> make linux>./test-trans -M 32 -N 32生成trace.f0和trace.f1文件② 执行指令./csim-ref -v -s 5 -E 1 -b 5 -t trace.f0在缓存跟踪 trace.f文件中观察结果2.编写csim.c处理
2020-05-11 07:20:25 2074 1
原创 分治法&动态规划&贪心法的比较
关于分治法&动态规划&贪心法,有一个共同的特性,就是原问题要划分为子问题,通过子问题进行求解。以下对这三者进行比较分治法求解过程原问题分解——>求解子问题——>合并子问题——>得到原问题的解难点在于如何分解,如何合并一般采用递归在分解过程中与动态规划不一样的是,每一个原问题的分解方式是固定的。二动态规划法的分解方式可以又多种自顶向下划分子问题,向上合并代表问题马的哈密尔顿回路问题:https://blog.csdn.net/weixin_44307
2020-05-09 23:25:38 1624
原创 程序性能优化gprof&循环展开极限&常见优化方法举例
博客简介本博客是大二下学期CSAPP课程的第六次小班讨论课内容,本博客记录如何用gprof剖析程序性能,以及循环展开极限和常见的优化方法gprof简介GNU gprof 是一款linux平台上的程序分析软件(unix也有prof)。借助gprof可以获得C/C++程序运行期间的统计数据,例如每个函数耗费的时间,函数被调用的次数以及各个函数相互之间的调用关系。gprof可以帮助我们找到程序运行...
2020-05-07 21:26:39 1997 2
原创 cacheLab PartA
实验要求Writing a Cache Simulatorcache高速缓存用于实现CPU和MM之间的数据交互,起到一个缓存的作用,高速缓存技术大大增强了CPU的数据利用率。本次实验的内容是编写代码来模拟高速缓存的运作并且统计某一组指令执行后的hit ,miss,eviction个数。在这之前,我们先来了解cache的工作原理。cache高速缓存工作原理...
2020-05-06 00:07:19 1175
原创 磁带最优存储问题
问题描述有n 个程序{1,2,…, n }要存放在长度为L的磁带上。程序i存放在磁带上的长度是Li, 1<= i<= n。这n 个程序的读取概率分别是p1,p2,…,pn,且pi+p2+…+pn = 1。如果将这n 个程序按 i1,i2,…,in 的次序存放,则读取程序tr 所需的时间tr=c*(Pi1Li2+Pi2Li2+…+Pir*Lir)。这n 个程序的平均读取 时间为t1+t...
2020-05-05 22:24:10 7065 1
原创 APP Bomb Lab
实验题目:CS:APP Bomb Lab实验目的:binary bomb is a Linux executable C program that consists of sixphases. Each phase expects the student to enter a particular stringon stdin. If the student enters the exp...
2020-05-05 14:47:02 1119 1
原创 储存器山和矩阵乘法
博客简介关于cache的性能,影响因素由很多。固有的cache大小即cache组规模会影响cache的性能,这由计算机内部硬件属性决定。而对于编码者来说,可以考虑编写对Cache友好的代码,提高空间局部性进一步来优化cache性能。本博客也将对这两方面展开讨论,用两个具体的例子来测算cache性能的影响因素;其中储存器山的例子展示固有的cache大小,空间局部性对吞吐量的影响。矩阵乘法的例子则考...
2020-05-03 13:25:37 1898 1
理解多线程,写一个多线程应用程序,要求能在用户级实现线程的调度,如启动、挂起、恢复、停止,的C thread、java thread实现。
2020-11-06
STC-B单片机项目《基于485通信的双人井字棋对战》
2020-09-20
用SRF04、BUZZER和和数字电路芯片设计单次启动测距系统的电路.zip
2020-07-08
在QuartusII上,设计一个每1秒启动的距离连续测量与计算系统电路.zip
2020-07-08
在VS2010上用C#设计一个上位机图形软件.zip
2020-07-08
moutain && matrix.zip
2020-05-03
算法设计讨论1-google 网页排名技术.pptx
2020-02-28
Geany编辑器.zip
2020-02-20
mingw-w64.zip
2020-02-20
贪吃蛇小游戏.zip
2020-02-12
Ubuntu.zip
2020-02-12
VMware-workstation-full-12.5.2.zip
2020-02-12
网页设计案例——马拉松
2020-02-06
图片库(提高网页的可访问性和可用性).zip
2020-01-21
sportCube.zip
2020-01-19
Web run test.zip
2020-01-13
模型机设计CPU3版本3.0
2019-12-22
模型机CPU设计CPU2.版本2.0(时序资源性能优)
2019-12-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人