深入学习计算机系统(2版)笔记

来源:互联网 发布:看看电视剧的软件 编辑:程序博客网 时间:2024/05/16 15:03

文本文件:文件的所有内容都只由ASCII字符构成的文件;二进制文件:除文本文件外的其它所有文件。

系统中的所有数据对象,包括磁盘文件、存储器中的程序、存储器中的用户数据以及网络传输数据,都由二进制位表示,区分不同数据对象的唯一方法是根据其被使用时的上下文来判断。一个数据对象,可以根据不同的上下文,被解释为一个整数、浮点数、字符串或机器指令

每个I/O设备通过一个适配器或控制器与I/O总线相连。控制器和适配器的区别在于封装方式不同,控制器芯片组被封装在I/O设备本身中,或系统的主板中;而适配器芯片组则位于一块插在主板插槽上的卡,简言之,控制器不能与主板分离,而适配器可以。

通常,输入设备输入数据时,需要CPU 将它们复制到寄存器,然后把它们再写回内存。在此期间,CPU 无法进行其它的工作,这大大降低系统性能。DMA(Direct Memory Access,直接内存存取) 通过I/O设备本身的控制器,将数据直接复制到内存,这样,不需要对 CPU产生中断请求,解放了CPU的大量时钟周期。


操作系统中的几个抽象概念:1、文件:对I/O设备的抽象;2、虚拟存储器:对内存和硬盘的抽象3、进程:对处理器、内存和I/O设备的抽象,它是操作系统对一个正在运行的程序的一种抽象。在一个系统上可以同时运行多个进程,而每个进程好像都独占地使用硬件。并发运行,指一个进程的指令和另一个进程的指令交错执行。

操作系统保持对每个进程运行所需的所有状态信息的跟踪,这种状态,称为上下文,上下文包含IP及其它寄存器的值,以及内存的内容等。当操作系统决定把控制权从当前进程转移到另一个进程时,就会进行上下文切换,即保存当前进程的上下文,并恢复新进程的上下文,然后将控制权交给新进程。新进程将从上次停止的指令处开始执行。

超线程(simultaneous multi-threading):允许一个CPU执行多个控制流的技术,从而实现在一个实体处理器中,同时处理两个或多个逻辑线程。超线程技术利用特殊的硬件指令,把一个物理内核模拟成两个逻辑内核,让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和软件,减少了CPU的闲置时间,提高的CPU的运行速度。简单地说,超线程技术可以使CPU在一个时钟周期内同时进行多个线程处理。而以前的线程并发技术,只是通过将不同的线程分配不同的CPU周期时间,实际上,每个时钟周期,只运行一个线程。

超标量(superscalar):如果CPU在一个时钟周期内,能够执行多条指令,就称为超标量

单指令多数据并行(SIMD):一条指令又可以并行地执行多条操作,就称SIMD,该技术主要用来提高图像,声音,及视频(图音)文件的执行速度

这样,从软件到硬件,从上层到底层,形成一个由上向下不断并行优化性能的架构:多进程-——> 超(多)线程-——>超标量 -——>SIMD


无符号数实现了正整数的二进制编码,补码实现了正负数的二进制编码,而浮点数则实现了实数的二进制编码

溢出:每个数可以被编码为相应位数的二进制编码,但是,当其二进制编码位数大于计算机中用来存储该数的存储器的位数时,就会产生溢出

编写网络应用程序时,应注意遵守关于字节顺序的规则,以确保发送方将它的内部存储标准(小/大端),转换成网络标准,而接收方,则将网络标准转换为内部标准。


不同的机器类型使用不同且不兼容的指令和编码方式,即使完全一样的进程,运行在不同的操作系统上也会有不同的编码规则,因此二进制代码是不兼容的。


c语言的逻辑运算符”||、&&、!“与按位进行的逻辑运算不同。它们类似于OR、AND和NOT,但它们不是按位进行逻辑运算的,而是把整个数值进行逻辑运算,简单说就是只有最右边一位是有效的,0或1.同时,如果逻辑运算符表达式中,对第一个参数求值就能确定表达式的结果,那么就不会对第二个参数求值。例如:0&&5/0中,将不会发生除零错误。

0 0
原创粉丝点击