其他
文章平均质量分 65
godspeedkaka
这个作者很懒,什么都没留下…
展开
-
深入理解计算机系统之链接(三)
静态库的概念静态库就是由一组独立的可重定向目标文件封装而成的,在Unix系统中,静态库以一种称为归档(archive)的特殊文件存放在磁盘上。存档文件是一组连接起来的可重定位目标文件的集合,有一个头部用来描述每个目标文件的大小和位置,存档文件名有后缀.a表示链接器如何使用静态库来解析引用在符号解析的阶段,链接器从左到右按照他们在编译器驱动程序命令行上出现的相同顺序来扫描可重定位目标文件和存档文件。(原创 2016-03-11 23:57:11 · 488 阅读 · 0 评论 -
深入理解计算机系统之链接(二)
符号表的深入理解编译阶段编译器将符号输出到汇编语言.s文件中,然后汇编器由此构造符号表,存放在.symtab节。符号表是一个结构数组,下面是一个elf符号的数据结构typedef struct { int name; int value; int size; char type:4, binding:4; char r原创 2016-03-10 13:31:21 · 633 阅读 · 0 评论 -
深入理解计算机系统之链接(一)
程序是怎样运行的写好的c程序怎样运行的呢?答案是一个写好的程序要先经过语言预处理器,编译器,汇编器和链接器生成最后的可执行文件,然后加载器将可执行文件加载到内存中才能运行。这里以一个c程序main.c和GNU编译系统(静态链接)为例来说明生成可执行文件的过程: 1.首先经过c预处理器(cpp)将main.c翻译成一个 ASCII码的中间文件main.i; 2.接下来驱动程序运行C编译器(原创 2016-03-10 12:49:27 · 683 阅读 · 0 评论 -
《Orange's 一个操作系统的实现》学习笔记(一) 实验环境搭建
《Orange's 一个操作系统的实现》学习笔记原创 2015-09-20 22:17:00 · 4833 阅读 · 1 评论 -
《Orange's 一个操作系统的实现》学习笔记(二) 实模式和保护模式
保护模式下的内存寻址8086一共有20位地址线,最大只有1MB的寻址能力,所以实模式下物理地址的计算公式是物理地址 = 段值 * 16 + 偏移段值被存放在段寄存器中,并且段的最大长度不超过2^16,也就是64kb。从80386开始cpu进入32位时代,寻址空间达到4GB,保护模式下段寄存器保存不了段的所有信息且寄存器的个数有限,所以不能采用实模式的寻址方式,而是一种新的方原创 2015-10-08 16:55:13 · 695 阅读 · 0 评论 -
八数码的几种做法的总结以及是否有解的判断
经典的八数码问题,这几天尝试了一些不同的做法,现在总结下。1.广搜+哈希这是最容易想到的一种做法,哈希的方法是康托展开,组合数学上有介绍。广搜+哈希2.双向广搜+哈希双向广搜的复杂度大约是单向的一半,所以效率上会有不错的提高。双向广搜+哈希3.A*+哈希+曼哈顿距离用到广搜,就可以想到能用经典的A*解决,用深度作为g(n),剩下的自然是启发函数了。对于八数码,启发函原创 2016-01-23 02:06:28 · 5111 阅读 · 0 评论 -
埃及分数(迭代加深搜索)
题意: 古埃及,人们使用单位分数的和(形如1/a的, a是自然数)表示一切有理数。 如:2/3=1/2+1/6,但不允许2/3=1/3+1/3,因为加数中有相同的。 对于一个分数a/b,表示方法有很多种,但是哪种最好呢? 首先,加数少的比加数多的好,其次,加数个数相同的,最小的分数越大越 好。 如: 19/45=1/3 + 1/12 + 1/180 19/45=1/3 + 1/15 + 1原创 2015-11-08 12:12:28 · 688 阅读 · 0 评论 -
差分约束系统学习笔记
差分约束系统中的每个约束条件是形如如下所示的简单不等式:xj - xi 例如,求解不等式组x1-x5≤-1x2-x5≤1x3-x1≤5x4-x1≤4x4-x3≤-1x5-x3≤-3x5-x4≤-3该问题的一个解为x=(-5,-3,0,-1,-4),另一个解y=(0,2,5,4,1),这2个解是有联系的:y中的每个元素比x中相应的元素大5。引理:设x=(x原创 2015-07-26 00:49:59 · 1078 阅读 · 0 评论