随笔分类 -  深入理解计算机系统

摘要:(一)Unix IO概述 所有的IO设备,如网络、磁盘和终端,都被模型化为文件,(一个Unix文件就是一个m个字节的序列),而所有的输入和输出都被当做对相应文件的读和写来执行。这种将设备优雅地映射为文件的方式,允许Unix内核引出一个简单、低级的应用接口,称为Unix IO: 打开文件。一个应用程序 阅读全文
posted @ 2016-12-22 10:59 wangyanphp 阅读(495) 评论(0) 推荐(0)
摘要:(一)虚拟存储器简介 虚拟存储器提供三个功能: 1. 将主存看成是一个存储在磁盘上地址空间的高速缓存,在主存中只保存活动区域;并根据需要在磁盘和主存之间来回传递数据。 2. 为每个进程提供一致的地址空间,从而简化存储器管理; 3. 保护了每个进程的地址空间不被其他进程破坏。 CPU通过生成一个虚拟地 阅读全文
posted @ 2016-12-21 17:12 wangyanphp 阅读(736) 评论(0) 推荐(0)
摘要:(一)异常 还有一些细节需要补充: 1. 事件什么时候发生? 事件可能与当前指令的执行直接相关,比如虚拟储存器缺页、算术溢出,除以0;也可能和当前指令没有关系,如IO请求、定时器信号。 2. 跳转到异常处理程序与过程调用有什么不同? 1)过程调用时,处理器要讲返回地址压栈。然而,根据异常的类别,返回 阅读全文
posted @ 2016-12-14 21:25 wangyanphp 阅读(371) 评论(0) 推荐(0)
摘要:(一)静态链接器干了什么 以此程序为例,编译器+汇编器会把main.c和swap.c翻译成两个可重定位目标文件(relocatable object file)main.o和swap.o。 链接器ld会将main.o和swap.o以及一些必要的系统目标文件组合起来,创建一个可执行目标文件(execu 阅读全文
posted @ 2016-12-12 11:42 wangyanphp 阅读(580) 评论(0) 推荐(0)
摘要:存储器系统(memory system)是一个具有不同容量、成本和访问时间的存储设备的层次结构。 (一)存储设备的种类 (二)访问主存 读写操作由CPU上的总线接口电路发起。 根据上图中的数据流,对于读操作: 1.CPU将地址A放到系统总线上,然后I/O桥将信号传递给存储器总线; 2.主存感觉到存储 阅读全文
posted @ 2016-12-07 21:53 wangyanphp 阅读(660) 评论(0) 推荐(0)
摘要:前一章叙述了c语言如何转化为汇编程序,如何使用汇编程序。但是,汇编程序具体是如何执行的呢?例如(add %eax %edx)这条指令,我们知道它的功能,处理器是何如执行指令来获得想要的结果?——这是本章的主题。 (一)Y86指令集体系结构 为了简化问题,我们不使用Intel和ATT的指令集体系结构, 阅读全文
posted @ 2016-12-04 17:14 wangyanphp 阅读(1133) 评论(0) 推荐(0)
摘要:程序员学习汇编代码的需求随着时间的推移发生了变化,开始时只要求程序员能直接用汇编语言编写程序,现在则要求他们能够阅读和理解编译器产生的代码。 下面是针对32位机器 数据格式 Intel用术语“字”(word)表示16位数据类型,32位数称为双字(double words),64位数称为四字(quad 阅读全文
posted @ 2016-04-26 20:46 wangyanphp 阅读(500) 评论(0) 推荐(0)
摘要:2.65 int even_ones(unsigned x) 要求:return 1 when x contains an even number of 1s; 0 otherwise. 假设int 有 w=32位。 分析:最应该使用的是循环,但是循环语句不能使用。如果一个一个的写成语句,需要32次 阅读全文
posted @ 2015-09-21 11:20 wangyanphp 阅读(543) 评论(0) 推荐(0)
摘要:在计算机中,使用位来存储信息。相同的位级表示,改变其解释方式,则表达出不同的信息。 0.位级运算中的异或 位级运算中需要注意的是异或这个运算,x^y异或的含义是:对于第i位,x,y在i位上的值不同时,结果为1;这意味着,在第i位上,x,y有且仅有一个1时,结果为1;有且仅有一个0时,结果为1;两者的 阅读全文
posted @ 2015-09-19 15:41 wangyanphp 阅读(908) 评论(0) 推荐(0)