
深入理解计算机
文章平均质量分 74
bingjing12345
知行合一
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
深入理解计算机3
第5章 在所有情况下都正确是写程序的最主要目标,然后是好的用户接口用户体验,然后是易读性、易扩展易修改性,然后才是性能。这样看性能好像不太重要。 实际上,很多时候性能 不是和上述的这些评价方式并列的,而是这些评价方式的基础。正因为有好的性能,我能才可以浪费一倍在异常处理上,在用户体验上,在扩展修改上。 这一章并不讲算法与数据结构这种提高性能的方式,而是从程序运行角度来展开。这种提高是锦原创 2012-08-01 20:32:17 · 877 阅读 · 0 评论 -
深入理解计算机笔记1
第一章 本书可以使你成为凤毛麟角的权威程序员。 1系统中的所有信息都是由一串二进制表示的,区分不同数据对象的唯一方法是我们读到这些数据对象时的上下文。比如10000110,可以是一个无符号数,也可以是一个有符号数,还可以是一个ASCII码,还可能是一条指令。 2编译系统包括了预处理器、编译器、汇编器和链接器。 3编译器的工作阶段: 词法分析:识别出一个个的单词,符号。即检查单词原创 2012-07-26 14:59:07 · 1354 阅读 · 0 评论 -
虚拟存储器 与虚拟内存详解
在没有虚拟存储器之前 源程序在gcc –o 后生成的文件是可执行目标程序a.out,每条指令都有一个逻辑地址 32位。它存在硬盘上。 要执行时,只需找到该文件,将其装入内存。 装入的方式可以有多种,比如分页,分段等等。但是,必须将该程序完全装入内存。 分页:将一个进程的逻辑地址空间(32位)分成若干大小相等的页。 使用分页方式时有一个问题,必须清楚: os是根据文件系统找到的a.原创 2012-07-06 17:11:22 · 5452 阅读 · 2 评论 -
深入理解计算笔记2
第3章 现代的编译器产生的代码至少与一个熟练地汇编语言程序员手工编写的代码一样高效,即编译器可以承担产生汇编代码的大部分工作,所以我们学习汇编的目标是能够阅读和理解编译器产生的代码。 1得到汇编代码的命令 gcc –O1 -S code.c 反汇编语句 objdump –d code.o 汇编以后的原创 2012-07-27 17:06:56 · 848 阅读 · 0 评论 -
深入理解计算机4
第7章 链接器的存在使得分离编译成为可能。 链接就是将各种代码和数据部分收集起来组合成一个文件的过程。 在开始之前明确一下输入输出: 链接的输入是,汇编生成的二进制可重定位目标程序(包括共享目标文件),即多个.o 文件。 在32位linux系统的输出是 代码段起始位置为0x0848000, _start的地址为0x08480c0,这些位置是固定的。 数据段在接下来的下一个4k对齐的原创 2012-08-17 17:11:10 · 889 阅读 · 0 评论 -
多线程和网络编程
1996年Linux2.0以后,内核才开始支持线程 在os中引入进程是为了使程序能并发执行,此时进程是一个可拥有资源的独立单位(如已打开的文件,io设备),进程也是一个可独立调度和分派的基本单位。 引入线程是为了减少程序在并发执行时的时空开销。 多线程os中的进程已不再是一个可执行的实体。对进程施加的与进程状态有关的操作,实际上是通过线程实现的 每个线程都只能属于某一个进程,一个进程至少有原创 2012-09-13 13:54:56 · 4719 阅读 · 0 评论