1、,第一章 引言,2,本章目标,了解计算机组织与计算机结构的区别 理解计算机系统常用计量单位 了解计算机发展史 了解计算机系统分层的概念 了解并能够解释von Neumann 体系结构及计算机基本部件的功能,3,容量和速度的单位: Kilo- (K) = 1 thousand = 103 and 210(1024) Mega- (M) = 1 million = 106 and 220(1048576) Giga- (G) = 1 billion = 109 and 230 Tera- (T) = 1 trillion = 1012 and 240 Peta- (P) = 1 quadrilli
2、on = 1015 and 250,1.3 计算机系统的实例,采用二进制还是十进制取决于测量的是什么。,4,Hertz = 每秒钟循环次数(频率) 1MHz = 1,000,000Hz 处理器速度MHz 或 GHz. Byte = 存储单位 1KB = 210 = 1024 Bytes 1MB = 220 = 1,048,576 Bytes 主存以MB为单位 磁盘存储以GB 或TB为单位,1.3 计算机系统的实例,5,1.3 计算机系统的实例,时空的度量: Milli- (m) = 1 thousandth = 10 -3 Micro- () = 1 millionth = 10 -6 Nan
3、o- (n) = 1 billionth = 10 -9 Pico- (p) = 1 trillionth = 10 -12 Femto- (f) = 1 quadrillionth = 10 -15,6,Millisecond = 千分之一秒=毫秒 硬盘存取速度通常是10 -20 milliseconds. Nanosecond = 纳秒=1 billionth of a second 主存存取速度50 -70 nanoseconds. Micron (micrometer) = 百万分之一米=微米 计算机集成电路器件的集成尺寸。,1.3计算机系统的实例,7,周期是频率的倒数 总线133MH
4、z频率,周期就是7.52纳秒从109 X1133X106得来,1.3计算机系统的实例,133,000,000 cycles/second = 7.52ns/cycle,8,1.3 计算机系统的实例,充分理解下列广告中列出的各项数据的含义:,9,几个常见标准化组织: The Institute of Electrical and Electronic Engineers (IEEE) 促进世界电机工程一体化进程 建立计算机行业部件标准、数据标准和信号协议标准等等。,1.4 标准化组织机构一览,10,The International Telecommunications Union (ITU)国
5、际电联 电信系统标准的制定,包括数据通信、电报电话等 The American National Standards Institute (ANSI) The International Organization for Standar-dization (ISO),1.4 标准化组织机构一览,11,第0代: 机械计算机(1642 - 1945) 第1代: 真空管计算机 Vacuum Tube Computers (1945 - 1953) 第2代: 晶体管计算机(1954 - 1965) 第3代:集成电路计算机(1965 - 1980) 第4代: 超大规模集成电路计算机(1980 - ),1
6、.5 计算机发展历程,12,摩尔定律(1965): “集成电路中晶体管的密度每年将翻一番。The density of transistors in an integrated circuit will double every year.” 当代版本: “硅芯片集成密度将18个月翻一番。The density of silicon chips doubles every 18 months.”,1.5 计算机发展历程,13,Rocks Law 洛克定律 Arthur Rock, Intel 财务专家 “建设一个生产半导体产品的资金每4年翻一番” 1968年,建设一个芯片生产厂需要 $12,0
7、00,此时,一个主管经理年薪$12000 $12,000 可在大城市的郊区购买一套豪华别墅。,1.5 计算机发展历程,14,每一个“虚拟机器层”是其下面的底层的抽象 每一层通过召唤其底层的功能,来执行该层特有的指令 最底层的计算机电路是最终执行各层功能的载体,1.6 计算机系统的层级结构,Level 6level 0 各层解释,15,1.7 von Neumann 模型,如今的程序存储计算机具有如下特点: 三大硬件系统: CPU 主存 一个输入输出系统 连续的指令执行能力 在主存和CPU之间有单一的数据通路,称为von Neumann瓶颈(bottleneck),16,1.7 von Neum
8、ann 模型,von Neumann系统的一般描述如图所示 都是利用取值-译码-执行循环往复的过程来执行程序,17,1.7 von Neumann 模型,在过去的若干年中,以提高计算机的处理效率和处理能力为目的,传统的程序存储计算机获得了持续改进。 逐渐演变成为如今的“三总线”结构。数据、控制和地址总线、采用变址寄存器寻址以增加批量访问数据时的方便、浮点数据提高数据精度和表数范围、外设中断和异步输入输出访问方式、虚拟存储/高速缓存和指令流水线技术等。,计算机的基本组成,计算机由五个基本部分所组成运算器(arithmetic unit)控制器(control unit)存储器(memory)输入
9、设备(input device)输出设备(output device),计算机的基本组成,Improved Noueman Architecture,20,60年代后期,曾尝试过双处理器来增加计算机的吞吐量 70年代,曾使用32个处理器制造出超级计算机系统 80年代超级计算机甚至发展到了1,000个处理器 1999年, IBM 曾宣称其蓝色基因计算机系统包含了超过1百万个处理器,1.8 非von Neumann 模型,21,并行处理是另一种提高计算机计算能力的方法 更激进想法的是试图从根本上重新发明计算机的计算的概念 例如遗传计算机、量子计算机和数据流计算机 至今还难以确定这些计算机是否会成为
10、未来新一代计算机的基础,1.8 非von Neumann 模型,第 2 章 计算机系统中 数据表示方法,字和字节的概念 数制及其之间的转换 计算机中数值的运算:补码体系,浮点运算 计算机中字符编码,什么是基数?什么是位置(权重)编码系统?234.56=2x102+3x101+4x100+5x10-1+6*10-2,计算机中常用数制及其之间的转换: 二进制 十六进制 八进制,1. 无符号整数的转换十进制数转换成任意x进制数 除x取余,从下向上 二进制转换成十进制 (位值x位权)倍乘转换法 2 分数转换十进制数转换成任意x进制数: 乘x取整,从上到下 3 二进制数转换成八进制或十六进制数 (1)
11、二到八:三位一组,直接写出 (2)二到十六:四位一组,直接写出,符号幅值表示法符号(1=负,0=正)+幅值. 表数范围=-(2N-1-1)+(2N-1-1) 补码运算的概念,利用“计算9的个数”算术理论实现补码运算 正数的补码=原码负数的补码=反码+1,浮点表示法: 符号位指出了数值的正负 指数部分的长度决定了表数范围的大小 尾数部分的长度决定了表数的精度 两种方法表达一个小数:(1)在指数带符号位;(2)偏移指数 什么是规格化浮点数? 什么是浮点误差?如何克服? 什么是IEEE-754浮点标准?,什么是字符编码? unicode编码标准的5部分内容,第3章 布尔代数和数字逻辑,布尔代数是一种
12、处理二值变量的逻辑数学,布尔表达式表达了对布尔变量的操作 常见的三种操作是与(AND),或(OR), 非( NOT),31,32,真值表是描述布尔操作的有效工具之一 布尔表达式越简单电路实现起来越容易,为此,需要千方百计化简布尔表达式,布尔表达式化简的0-1定律:,33,注:幂等律(idempotent)恒等式(identity),交换律、结合律、分配律,34,吸收律、反演律(德摩根)、互补律,35,吸收律(补充) x+ y=x+y x( +y)=xy 反演律的扩充:可以扩展到任意多个变量,36,通常采用两种标准的规范表达式: 与-或(积之和)形式:变量之间先“与”后“或”或-与(和之积)形式
13、:变量之间先“或”后“与”,37,什么是逻辑门电路?逻辑符号,38,三种基本的逻辑门符号:直接对应着其布尔操作(“与”门、“或”门、“非”门),39,“异或”门,40,试写出其表达式?,41,什么是组合逻辑电路? 给定表达式可以画出逻辑电路,反之亦然。例如半加器和全加器,42,全加器实现电路,43,等价符号,(xy) carry_in,(xy),xy,sum=xycarry_in carry_out = xy+ (xy) carry_in,译码器的作用:对出现在地址总线上的地址信号进行译码,44,多路选择器作用:用于从多个输入中选择一个输出,45,选择控制线,输入线,什么是时序逻辑电路? SR
14、-触发器及其逻辑符号(2-或非门),46,(2或非门),理解状态特征表: Q(t)原态和Q(t+1) 新态,47,事实上,SR触发器可看作有三个输入: S, R 和 Q,所以其真值表如右 注意:当S=R=1时,存在输出状态不定的可能,48,改进SR触发器,得到J-K触发器,49,J-K触发器的特征表,50,D-触发器特征表,51,52,实例,状态转换表,53,答案,完成下列时序逻辑电路的真值表,54,练习,55,答案,第4章 简单计算机模型MARIE,57,4.1 概述,58,计算机由哪几部分组成?各部分的功能是什么?例如,输入输出接口的主要功能 实现外围设备与CPU之间数据的交换 为CPU提
15、供外设的状态信息(输入输出状态寄存器) 实现系统总线与外设之间的信号转换 计算时钟周期 (clock cycle time)的大小: 一个 800 MHz 的计算机,时钟周期是多少?1.25 ns,4.1 概述,59,CPU性能方程改善CPU吞吐量的方法: 减少一个程序中指令的数量(编写短小精悍的程序) 减少每条指令所用的时钟周期个数(指令系统设计问题)减少每个时钟周期的长度(提高主频时钟频率),4.1 概述,60,对于2N个需要编址的单元,需要使用多少条地址线? 例如,4M 16的存储器,分别需要多少根地址线? 按照字节编址 按照字编址 什么是低位和高位交叉存取技术?,4.1 概述,61,4
16、.1 概述,例子:若采用256k 8的RAM芯片构建一个2M 16的主存储器,且按字编址,回答: 需要多少片 RAM芯片? 每个字需要多少RAM芯片? 每个RAM芯片需要多少个地址线? 这个存储器有多少组? 所有存储器需要多少地址线? 采用高位交叉方式,地址14存储单元位于什么位置? 采用低位交叉方式,地址14存储单元位于什么位置?,62,4.1 概述,BANK0,BANK1,BANK7,63,4.1 概述,答案: 需要多少片 RAM芯片? 16 每个字需要多少RAM芯片?2 每个RAM芯片需要多少个地址线? 2 18 这个存储器有多少组?8 (2片一组) 所有存储器需要多少地址线?2M16
17、=221 采用高位交叉方式,地址14单元位于什么位置?BANK0 (000-000000000000001110) 采用低位交叉方式,地址14存储单元位于什么位置?BANK6 (000000000000000001-110),64,什么是中断?中断产生有哪些原因?哪些方式? CPU响应中断的过程?,4.1 概述,65,4.2 MARIE,学习汇编语言编程有哪几步? 了解具体CPU的硬件体系结构:多少个寄存器,每个寄存器的用途 理解数据通路:数据沿着哪条线路传送 指令体系结构:指令格式和每条指令可完成的操作 指令的执行过程 研读实例 动手编程,66,4.2 MARIE,理解MARIE 体系结构,
18、67,4.2 MARIE,MARIE 数据通路,68,4.2 MARIE,7个寄存器的各自功能,69,4.2 MARIE,MARIE 的指令格式:MARIE的指令集:,出现在IR中的形式,70,4.3 指令的执行过程,MARIE指令的执行过程,取指,译码,执行,71,实例:作业做过的练习题,4.4 一个简单的程序,72,4.5 A 编译程序的讨论,什么是汇编器?汇编器(assembler)和编译器(compiler)有什么区别?,73,实例:用MARIE汇编语言编写实现下列功能的程序代码:if X 1 doX := X + 1;elseY := Y + 1;,4.5 A 编译程序的讨论,74,
19、答案: ORG 100 If, 100 Load X / X载入AC101 Subt One /-1, 结果保存在AC102 Skipcond 800 /IR第11和10位=10,If AC0 (表明X1), 跳过一条指令103 Jump Else /否则,跳到另一分支104 Load X / X载入AC Then, 105 Add One / AC+1保存到AC106 Store X /X:= X + 1107 Jump Endif /跳转到结束 Else, 108 Load Y /载入 Y到AC109 Add One /+110A Store Y /Y:= Y + 1 Endif, 10B
20、 Halt /程序终止 One, 10C DEC 1 /变量One的值是1 X, 10D DEC ? Y, 10E DEC ?,4.5 A 编译程序的讨论,75,MARIE支持4条新指令,其中ADDI X和JUMPI X支持间接寻址,4.6 MARIE指令集的扩充,76,4.7 关于译码讨论,计算机控制单元的作用是什么?一般采用哪两种方法实现控制?,77,软件(微程序)控制:调用保存在ROM, PROM, EPROM或E2ROM硬件中的程序来实现控制,4.7 关于译码的讨论,78,4.7 关于译码讨论,回顾实验内容:微程序控制器实验 接好线路,给出微指令地址,写微程序 变换线路,给出指令(SD
21、27SD20),执行指令,微地址寄存器,转移地址逻辑,OP,IR,微指令信号,24位微指令,6位微地址,79,描述计算机模型整机工作过程:根据模型计算机实验数据通路图,说明计算机执行程序时的取指、译码、执行三个步骤中各部件(寄存器、存储器、ALU等)的工作时序,4.8 现实计算机体系结构,80,4.8 现实计算机体系结构,第5章,指令系统体系结构概览,82,衡量一个指令系统的效能指标: 一个程序占用主存空间大小 指令复杂度 指令长度 指令总数目,5.2 指令格式,83,设计一套指令系统主要考虑下列因素: 指令长度 长指令、短指令、可变 操作数的个数(一般为0,1,2,3) 可访问寄存器的个数
22、内存访问方式 支持字节寻址或字寻址 寻址方式 直接、间接、变址,5.2 指令格式,84,大端(big endian)和小端(little endian)的概念,5.2 指令格式,85,假设保存12345678H(从高字节到低字节),5.2 指令格式,86,会使用逆波兰书写格式,5.2 指令格式,87,x y+w z+v u =xy wz vu + b) w x+w (u v+z)=wx wuv*z+*+ c) (w (x+y (u v)/(u (x+y),5.2 指令格式,88,c) (w (x+y (u v)/(u (x+y) =W X Y U V * * + * U X Y + * /,5
23、.2 指令格式,89,根据操作数的数目(地址数目),指令分为4种结构: 0地址指令(只有操作码) 1地址指令(操作码+1个存储器地址) 2地址指令(操作码+2个地址) 3地址指令(操作码+3个地址),5.2 指令格式,90,根据指令操作码长度有定长和可变长指令: 定长指令,5.2 指令格式,91,若操作码长度可变,指令集可大大地丰富:,5.2 指令格式,92,5.3 指令类型,一般计算机指令的分类 数据移动 : mov , load, store 算术运算: sub, add, mult, div 逻辑运算: or, and, not 位操作(移位): shl, rhl I/O: in, ou
24、t 控制转移: jump, jns 专门用途: xchg,93,5.4 寻址,什么是寻址模式?什么是有效地址?,94,常见的操作数寻址模式: 立即寻址(immediate):操作数是指令的一部分 直接寻址(direct):指令中直接给出操作数地址 寄存器寻址(register):操作数在指定的寄存器中 间接寻址(indirect):操作数在指令所指定地址的地址当中 寄存器变址寻址(Indexed ):用一个寄存器(隐含或者明确地)作为偏移地址,该偏址与操作数的地址相加得到操作数的有效地址 基址变址寻址(Based ):与上相同,区别仅在于使用基址寄存器代替变址寄存器 堆栈寻址(stack),5
25、.4 寻址,95,5.5 指令流水线,什么是指令流水线技术?,96,在每个时钟周期执行一小步,各小步可在时间上重叠,S1. Fetch instruction. S4. Fetch operands. S2. Decode opcode. S5. Execute. S3. Calculate effective S6. Store result.address of operands.,5.5 指令流水线,97,提速比:取极限 ,理论上:,5.5 指令流水线,98,练习:p158: 15 答案: k=5(步), n=200(指令), tp=40ns/步 tn=200ns/指令 不采用流水线技术
26、需要时间:n*tn=200*200=40000ns 采用流水线技术后需要时间:(k+n-1)*tp=(5+200-1)*40=8160ns加速比=4.9 接近 k=5,5.5 指令流水线,99,JAVA编程环境,5.6 ISA现实案例,第 6章,存储器,101,6.2 存储器的类型,有两种类型的主存储器:RAM(random access memory:动态 (DRAM)和静态 (SRAM) )ROM(read-only-memory),102,6.2 存储器的类型,DRAM的单管MOS动态存储电路(用于内存),103,由D-触发器组成的SRAM电路(用于cache),6.2 存储器的类型,1
27、04,金字塔(pyramid)形状的存储结构,6.3 存储器的层次结构,105,CPU存取数据的路径: 先到cache中寻找,若没有, 再到存储器中寻找,若没有, 再到硬盘中寻找; 找到数据后读入到内存再读入到cache,再到寄存器进行处理,6.3 存储器的层次结构,106,局部性原理及三种基本的局部读取方式: 时间、空间关联、串行序列,6.3 存储器的层次结构,107,6.4 高速缓存存储器,高速缓存器的用途和特点:基于局部性原理,CPU内部接近寄存器的位置设置高速缓存器,用于存储最近使用过的数据可以提高存取速度。比直接从内存或磁盘读取效率要高 空间远小于内存 按照内容而非地址寻址,108,
28、主存块到高速缓存的直接映射关系( direct mapped cache )图:,6.4 高速缓存存储器,109,主存分块的大小取决于cache块的大小(二者相等) 设主存大小=16K (214),cache=16块(24),每块8byte主存可以分为16k8byte=2048(=211)块 域划分如下:字域word=3bits,块域block=4bits,标记域tag=7bits,6.4 高速缓存存储器,110,直接映射模式的缺点以及全关联高速缓存模式,6.4 高速缓存存储器,111,全关联高速缓存模式: 内存地址被分成两部分: tag 和 word 例如对于14-bit 主存,16块cac
29、he,每块8byte,域格式划分如下:寻址可能有2048种,比16种多很多,6.4 高速缓存存储器,112,组关联高速缓存映射,组关联映射地址格式包含三部分:tag(标记), set(组域), 和word(字域),6.4 高速缓存存储器,113,例如: 对于14-bit 主存,把其映射到有16块,每块8byte的cache中。可以把16块分成8组,每组2块,域格式划分如下: 3bit用于块内字,3bit用于组划分,其余8bit用于标记,6.4 高速缓存存储器,114,组关联映射模式中有哪些数据的置换策略?,6.4 高速缓存存储器,115,什么是脏块?高速缓存的写回策略有哪些?,6.4 高速缓存
30、存储器,116,什么是物理地址?什么是虚拟存储地址?,6.5 虚拟存储,117,什么是页帧?什么是页域(page )和偏移量域 (offset )?,6.5 虚拟存储,118,什么是页表专用存储区?(TLB:translation look-aside buffer ),6.5 虚拟存储,119,6.5 虚拟存储,组合使用TLB、页表、cache和主存 流程图,120,综合练习 p187:14,6.5 虚拟存储,121,答案: 27,因为进程P分成8页每页16字,所以偏移量域offset=24, 页域page=23 b)26,因为物理地址为4页,每页16字,共64字,6.5 虚拟存储,122,
31、c) 1810的虚拟地址:在第1页内 ,偏移量2转换成物理地址:查页表第1页对应第0页帧,6.5 虚拟存储,123,d)虚拟地址6在第0页,查页表对应着页帧3,物理地址54在其中:,6.5 虚拟存储,124,d) 按照2路组关联映射,每路8字,cache 32字可以分为32/8/2=2组,每组2块,set=1bit地址54=1101102应该在cache中组 0内,但实际不在。,6.5 虚拟存储,125,e) 25的虚拟地址如下,位于第1页偏移量9处以下过程参见图6-18: 把其转换为物理地址的过程:TLB表中保存着虚拟页和页帧的对应关系,CPU寻址先从TLB表开始,看虚拟页1是否对应着有物理
32、页帧。若是,用00代替001,可直接从TLB中得到物理地址00 1001;否则,到页表中查询转换得到00 1001,此题TLB表中不存在,所以需要到页表中查询。 访问数据的过程:无论使用TLB还是页表,当得到物理地址后就要开始查看cache块中是否存有指定物理地址中的数据,001001分成tag=00,set=1,word=001,到组1查tag是否匹配,显然25在组1的D块中,于是直接使用即可。若不再cache中还要到主存中去取。参见图6-18,6.5 虚拟存储,第 7章,输入输出和存储系统,127,7.2 Amdahls 定律,Amdahl定律,其中 S 代表系统整体性能的速度的提升;f
33、代表关键部件在系统中所占工作量,k 代表新关键部件能够获得的速度提升,128,控制输入输出的四种方式: 轮询(programmed)方式 DMA(direct memory access)方式 通道(channel)方式 中断(interrupt)方式,7.3 I/O 体系结构,129,轮询方式及其缺陷:利用编写的程序不断地查询一个或若干个外部设备的接口寄存器,通过判断其状态来决定是否开始输入输出数据。CPU被占用 例如:在Intel系列的汇编语言中 label1: in al, 27h /从口地址27h读入外设状态字节test al,00000100b / 测试第2位是否为1jnz proc
34、ess /是,则转去处理jmp lable1 /否则,继续查询 process: ,7.3 I/O 体系结构,130,DMA方式:用于提高外设和内存之间数据传输效率,7.3 I/O 体系结构,131,通道输入输出方式图,7.3 I/O 体系结构,132,中断方式:由外部设备主动发起使用总线并请求CPU为其提供数据输入输出处理,7.3 I/O 体系结构,133,什么是硬中断,软中断?,7.3 I/O 体系结构,134,7.4 磁盘技术,135,如何计算存储容量 C=nKSb n是磁盘机的盘面数(heads) K磁道数(cylinders) S磁盘扇区数(sectors) b每个扇区可存储的字节数
35、(缺省值为512字节) 假设一个磁盘的heads=16,cylinders=6256,sectors=63,则其磁盘容量约为3228MB,7.4 磁盘技术,136,7.5 光盘,137,RAID【Redundant Array of Independent Disks】独立磁盘冗余阵列的用途,7.7 独立磁盘冗余阵列(RAID),138,RAID Level 0 通过跨盘驱动(drive spanning),提供性能最佳(高速读写)但可靠性最低的存储 数据以块为单位跨越存储在整个磁盘阵列中缺点:可靠性低 用途:视频图像编辑,7.7 独立磁盘冗余阵列(RAID),139,RAID Level 1
36、, 称为磁盘镜像【disk mirroring】,提供 100% 的数据冗余和好的性能 两套系统完全一致缺点:成本高 用途:财务等重要数据的处理,7.7 独立磁盘冗余阵列(RAID),140,RAID Level 2 由一组数据磁盘按位跨盘存取,另外一组磁盘依照Hamming码组成校验盘 Hamming码驱动提供多数据驱动系统的错误校验缺点:由于需要Hamming码校验,速度慢,性能不佳;成本相对较高,难以实用,7.7 独立磁盘冗余阵列(RAID),141,RAID Level 3 使用一组磁盘跨盘按位存储并仅使用另一个磁盘用作奇偶校验 把其他位进行异或,得到奇偶校验位RAID 3 不适于商用
37、,但适用与个人系统,7.7 独立磁盘冗余阵列(RAID),142,RAID Level 4 是在RAID 0基础上增加一组校验盘 数据以块为单位跨盘存放,奇偶校验盘提供跨盘校验数据的存放块的大小完全一致才行,7.7 独立磁盘冗余阵列(RAID),143,RAID Level 5 是RAID 4版本的分布式校验配置 分布式校验配置支持并发存取,既提供了较好的性能也提供了较高的可靠性RAID 5 用于许多商业场合,7.7 独立磁盘冗余阵列(RAID),144,RAID Level 6 对跨盘存储方式提供了两级纠错能力:奇偶校验和 Reed-Soloman纠错编码 当两个磁盘故障时也能够恢复数据RA
38、ID 6 写入性能差,但高度容错 迄今未有商用,7.7 独立磁盘冗余阵列(RAID),第 8 章 系统软件,146,8.1 概述,软件和硬件之间相互依存,正如一个完整的人一样。硬件是“身体”,软件是“思想”,147,8.1 概述,软件的组成,148,8.2 操作系统,操作系统的定义,149,按照功能特性操作系统的分类,8.2 操作系统,150,分时多用户程序运行:不同时间段使用CPU,8.2 操作系统,151,松耦合多处理器系统 紧耦合多处理器系统 实时操作系统,8.2 操作系统,152,操作系统的主要任务是什么?管理好软件和硬件两大系统资源: 提供界面友好、方便易用的用户界面:命令行方式(C
39、LI)、图形用户界面(GUI) 进程管理(处理器管理) 存储器管理 I/O设备管理(文件管理) 安全保护管理,8.2 操作系统,153,进程管理包括: 进程创建 监测进程的执行 提供进程之间的通信服务 防止资源使用上的冲突,冲突发生后等待 执行完后撤销,8.2 操作系统,154,长/短程调度(long-term and short-term scheduling),8.2 操作系统,长程调度,短程调度,关联转换,155,8.2 操作系统,Unix支持多进程,每个进程仅有一个线程,Windows 2000支持多进程和多线程,156,存储器管理: 管理计算机存储器(包括内存、虚拟内存和高速缓存)
40、为了扩展内存容量引入了虚拟存储的概念 为了提高速度引入了高速缓存的概念,8.2 操作系统,157,I/O设备的管理 使用系统资源调用及其设备驱动程序调用为进程I/O提供服务。设备管理技术:中断、缓冲区、假脱机技术、设备虚拟化技术,8.2 操作系统,158,安全和保护 在并发进程之间、操作系统进程和用户进程之间都需要保护,避免相互之间产生资源共享冲突 三种常用进程环境隔离技术是:虚拟机(virtual machines)、子系统(subsystems)、分区(partitions),8.2 操作系统,159,8.3 保护环境,160,8.3 保护环境,161,8.3 保护环境,162,什么是可重
41、定位?,8.4 编程工具,163,动态链接的优缺点?某些特定的外部模块可以在装载执行时再进行链接,这样的外部模块称为动态链接模块 动态链接的优点: 被链接的模块公用性很强,可节省磁盘空间 链接模块代码的修改不会影响其他模块 方便用户创建专门目的的链接库 动态链接的缺点: 由于是执行时才装载,所以可能产生装载延迟 动态链接库的变化可能导致用户无法跟踪的软件bug,8.4 编程工具,164,动态地址重定位示例,8.4 编程工具,165,8.4 编程工具,166,带有装载时地址解析的动态链接,8.4 编程工具,167,计算机仅能够理解第一代语言!,8.4 编程工具,168,解释器:一种程序执行工具。
42、使用解释器执行的程序称为解释语言程序 边解释(翻译)边执行 速度慢 错误在执行的时候才被发现 由于其能够即时的反馈而且不需要考虑语言的性能,所以很适用于做计算机语言概念性的教学,8.4 编程工具,169,JVM可以看成是一个微型操作系统 JVM可以完成程序装载、链接、执行、资源管理等功能。JAVA类文件的编译和执行过程如下:JVM 的性能不及传统的编译语言编写的程序,原因在于运行时增加了许多额外任务,8.5 Java: 一种综合语言,第 9 章,可选择的体系结构,171,对RISC和CISC做出比较,9.2 RISC 计算机,172,RISC和CISC机器的对比,表9.1 p288,9.2 R
43、ISC 计算机,173,Flynn 把处理器数量和数据流数量做不同组合,总结出了下面四种类型: SISD: 单指令流单数据流。这就是经典的单处理器计算机系统 SIMD: 单指令流,多数据流。多个处理器运行相同的指令但数据值不同。例如向量处理器 MIMD: 多指令流,多数据流。例如并行体系结构计算机 MISD: 多指令流,单数据流,9.3 Flynns 分类法,174,两种常见的MIMD 并行体系结构的多处理机计算机 对称多处理机 (SMP)计算机系统 大块头的多处理机(massively parallel processors:MPP)计算机系统 二者主要区别:如何使用主存储器 MPP :较多
44、的处理器+分布式内存+通过网络通信; SMP : 处理器较少+共享内存+通过内存通信,9.3 Flynns 分类法,175,总结:计算机体系结构的分类方法如下图所示,9.3 Flynns 分类法,176,9.4 并行和多处理器体系结构,并行处理能够在提供更好容错性的基础上增加系统的吞吐量,177,三种提高吞吐量的并行处理技术:超标量体系结构(superscalar) 非常长的指令字体系结构(Very long instruction word :VLIW) 矢量处理器(Vector processor)技术,9.4 并行和多处理器体系结构,178,超标量计算机采用的技术主要包括: 超流水线作业
45、 同时提取多条指令 综合译码单元(确定指令的相关性和动态组合) 足够多的硬件资源 上述过程的优化调度(编译器) 综上,超标量计算机比仅仅采用流水线技术更提高一大步 应用实例:Intel Pentium计算机处理器都支持超标量技术,9.4 并行和多处理器体系结构,179,非常长的指令字体系结构(Very long instruction word :VLIW)使用VLIW 编译器,把许多独立指令打包组合在一起成为一条长指令送入流水线执行部件去执行 实例:Intel 的 Itanium IA-64,长指令可以同时在其CPU中并行执行,9.4 并行和多处理器体系结构,180,矢量处理器计算机(vec
46、tor processors):又称为超级计算机,专门设计的支持高度流水线作业处理,算术运算指令可以相互重叠,能够对整个矢量和矩阵进行处理,9.4 并行和多处理器体系结构,181,多处理器系统之间的通信利用互联网实现,互联网之间特性比较,9.4 并行和多处理器体系结构,182,共享存储器的多处理器:,9.4 并行和多处理器体系结构,183,基于存储空间如何共享,MIMD计算机分为两类: UMA类型 NUMA类型,9.4 并行和多处理器体系结构,184,关于分布式计算系统有一个共识:分布式计算系统处理器之间是非常松散的耦合。例如:使用大批的微机组合起来计算大规模的难解问题,9.4 并行和多处理器
47、体系结构,185,支持远程过程调用的流行软件: 微软:分布式组件对象模型(DCOM:distributed component object model) 微软:开放组织的分布计算环境(DCE: distributed computing environment) 民间组织: 通用对象请求代理结构(CORBA:common object request broker architecture) JAVA:远程方法调用(RMI:remote method invocation),9.4 并行和多处理器体系结构,186,9.5 新的并行处理方法,三个具有较典型的特质的新的体系结构 数据流计算(da
48、taflow computing) 神经网络计算(neural networks) 脉动阵列处理(systolic processing),187,利用计算n!的数据流程序及其数据流图解释数据流计算机的计算过程,9.5 新的并行处理方法,188,神经网络计算机和脉动阵列计算机分别适用于解决什么问题?,9.5 新的并行处理方法,第 10 章,性能度量和分析,190,两个执行等量任务的系统性能优劣可以比较如下: A比B快n倍A比B快x%,10.3 数学预备知识,191,利用统计学的方法来评价一个系统,注重的是该系统的集中趋势度量。常用的方法之一是算数平均值、几何平均值和调和平均值,它们各自有优缺点
49、和适应场合,10.3 数学预备知识,192,下表总结了上述内容,做系统性能比较时适用的方法,10.3 数学预备知识,193,10.4 基准,性能基准(benchmark)为不同系统之间相互比较提供了一个可行的平台。性价比(price-performance ratios)可通过与基准平台做出比较而获得 CPU的速度常作为基本的性能基准,但不完全可靠和科学 时钟振荡周期(MHz或GHz) 每秒钟百万指令数(MIPS:millions of instructions per second ) FLOPs,194,秉持公平公正的原则,标准性能评价公司(SPEC)为各种计算机系统编写不同的benchmark程序,专门应付系统性能测试 最著名的套件是专门测试CPU的性能的SPEC CPU 基准套件 SPEC 2000基准套件由两部分组成: CINT2000 CFP2000,10.4 基准,195,CINT2000 : 测试整数算术运算性能 由12个应用程序组成 (11 个使用 C语言编写,一个用C+编写)CFP2000: 测试浮点运算性能 由14 个应用程序组成 (6个用 FORTRAN 77编写, 4个用 FORTRAN 90编写,4 个用C编写),