Chinaunix首页 | 论坛 | 博客
  • 博客访问: 26564
  • 博文数量: 6
  • 博客积分: 135
  • 博客等级: 入伍新兵
  • 技术积分: 70
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-09 15:51
文章存档

2011年(6)

我的朋友

分类: LINUX

2011-09-13 16:59:37

一些概念
1.文本文件:只由ASCii字符构成的文件。
2.二进制文件:除了文本文件以外的所有文件。
3.32位处理器:计算机中的位数指的是CPU一次能处理的最大位数。32位计算机的CPU一次最多能处理32位数据
4.寄存器:每个处理器都具备一些内建的内存,这些能够在不延迟的状态下存取的内存就称为寄存器。可以用来处理数据,暂时储存结果,或者做间接寻址等等
5.ISA(指令集结构):操作类型(operand)、数据类型(data type)和寻址模式(addressing mode)。
6.微结构:ISA对应的实现。
7.进程:操作系统对一个正在运行的程序的一种抽象。
8.并发运行:一个进程的指令和另一个进程的指令交错执行。
9.上下文切换:操作系统实现这种交错执行的机制。
10.线程:一个进程可以由多个称为线程的执行单元组成,每个线程都运行在进程的上下文中,并共享同样的代码和全局数据。
11.并发:指一个同时具有多个活动的系统。
12.并行:使用并发使一个系统运行更快。
基础知识
1.系统中所有的信息都是由一串位表示的。区分不同的数据对像的唯一方法是我们读到这些数据对象时的上下文。
2.源文件到目标文件的转化的四个阶段
hello.c(文本)经过预处理器(cpp)得到hello.i(文本)
hello.i (文本)经过编译器(cc1)  得到汇编程序hello.s(文本)
hello.s(文本)经过汇译器(as) 得到可重定位目标程序hello.o(二进制)
hello.o和printf.o经过链接器(ld)得到可执行目标程序hello(二进制)   
3.  32位处理器和64位处理器的比较
运算性能。如果我们将总长128位的指令分 别按照16位、32位、64位为单位进行编辑的话:旧的16位处理器,比如Intel 80286 CPU需要8个指令,32位的处理器需要4个指令,而64位处理器则只要两个指令,显然,在工作频率相同的情况下,64位处理器的处理速度会比16位、 32位的更快。
系统对内存的控制。传统32位处理器的寻址空间最大为4GB,使得很多需要大容量内存的数据处理程序在这时都会显得捉襟见肘,形成了运行效率的瓶颈。
4.处理器读并解释存储在存储器中的指令
外壳:一个命令行提示符。如果该命令行的第一个单词不是一个内置外壳命令,那么外壳假设它是一个可执行文件。
当我们在键盘输入字符串"./hello",并敲回车时,外壳就知道我们已经结束了命令的输入。然后外壳执行一系列指令来加载hello文件,将hello目标文件中的代码和数据从磁盘复制到主存。数据包括"hello,world\n"。然后处理器开始执行hello程序的main程序中的机器语言指令。
5.高速缓存
系统花费了大量时间把信息从一个地方挪到另一个地方。hello程序的机器指令最初放在磁盘上,当程序加裁时,它们被复制到主存;当处理器运行程序时,指令又从主存复制到处理器。从程序员的角度看,这些复制减缓了工作。
高速缓存,作为暂时的集结区域,用来存放处理器近期可能会需要的信息。
6.操作系统两个基本功能
防止硬件被失控的应用程序滥用。
向应用程序提供简单一致的机制来控制复杂而又通常大相径庭的低级硬件设备。
7.上下文切换
上下文:包括PC(程序读数器)和寄存器文件的当前值,以及主存的内容。
在任何时刻,单处理器系统都只能执行一个进程的代码。当操作系统决定要把控制权从当前进程权转移到某个新进程时,就会进行上下文切换,即保存当前进程的上下文、恢复新进程的上下文,然后将控制权传递到新进程。
8.虚拟存储器
每个进程看到的是一致的存储器,称为虚拟地址空间。32位操作系统对应4G(2^32)虚拟内存空间。    从低的地址开始,向上介绍。
程序代码和数据。对于所有进程来说,代码是从同一固定地址开始,紧接着的是和C全局变量相对应的数据位置。代码和数据区是直接按照可执行目标的内容初始化的。
堆。当调用如malloc和free这样的C标准库函数时,堆可以在运行时动态的扩展和收缩。
共享库。存放像C标准库和数学库这样共享库的代码和数据的区域。
栈。编译器用它来实现函数调用。和堆一样,用户栈在程序执行期间可以动态扩展和收缩。每次调用一个函数时,栈应付增长;从下一个函数返回时,栈应付收缩。
内核虚拟存储器。内核总是驻存在内存中,是操作系统的一部分。
9.线程级并发
一个系统执行多个程序,导致了并发。而使用线程,我们能在一直进程中执行多个控制流。
超线程:例如,假设一个线程必须等到某些数据被装载到高速缓存,那CPU就可以继续去执行另一个线程。又,Intel Core i7处理器可以让一个核执行两个线程,4个核实际上可以并行执行8个线程。
10.指令级并行
现代处理器可以同时执行多条指令的属性称为指令级并行。
时钟周期。CPU完成一个基本动作(如取指令、存储器读、存储器写)的时间。
一个时钟多条指令?多处理器可以达到20个周期执行100条指令。利用流水线(pipelining),能够达到接近于一个时钟一条指令的执行速率。
超标量处理器。可以达到比一个周期一条指令更快的执行速率的处理器。
11.单指令、多数据并行
SIMD并行:允许一条指令产生多个可以并行执行的操作。例如,较新的Intel处理器具有并行地对4对单精度浮点数(C数据类型float)做加法的指令。
12.四个抽象
文件是对I/O的抽象。
虚拟存储器是对程序存储器(主存和磁盘)的抽象。
进程是对一个正在运行的程序(处理器、主存、和I/O设备)的抽象。
虚拟机是对整个计算机(包括操作系统、处理器和程序)的抽象。






阅读(1076) | 评论(1) | 转发(0) |
0

上一篇:没有了

下一篇:位向量和INT_MIN

给主人留下些什么吧!~~

teee_u2011-09-14 16:45:04

可以写点自己的认识,用自己的语言,自己的理解,而不是把书本上的文字码到网上。