计算机系统概述课件讲解_第1页
计算机系统概述课件讲解_第2页
计算机系统概述课件讲解_第3页
计算机系统概述课件讲解_第4页
计算机系统概述课件讲解_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology第一章系统概述计算机科学与技术教研室刘义军西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology学习方法及要求 对课堂教学内容及时进行复习和扩展学习相关的课程内容,包括 数字逻辑 汇

2、编语言 组成原理 操作系统 始终思考:这部分的知识支持计算机功能实现的哪个部分,具体怎么实现 以程序带动理解 参考书:Computer Systems, A Programmers Perspective西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology本章主题 硬件角度看简单加减运算的实现 计算机的功能 冯.诺依曼结构 计算机系统构成 软件 硬件 程序的开发与执行过程西南石油大学计算机科学学院Departme

3、nt of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology问题一、基本数值运算的实现(加减法)西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology数学基础 计算机中采用的进位计数制 什么是进位计数制(基和权) 二进制的运算 0+ 0 0 0+ 1 1 1+ 0 1 1+ 1 1

4、0 0 1 0 1 0 1 0 1 加数一+ 1 1 1 1 1 1 1 1 加数二 1 1 1 1 1 1 1 1 0 低位进位 1 0 1 0 1 0 1 0 0 问题:以上运算是人脑的运算过程,计算机中是怎么实现的?加数放在哪,怎么存储的硬件器件是怎么实现的?计算机怎么知道是做加法?怎么保障低位加了再加高位?西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology模电基础-二极管 二极管(Diode),电子元件

5、当中,一种具有两个电极的装置,只允许电流由单一方向流过1. 正向特性: 在电子电路中,将二极管的正极接在高电位端,负极接在低电位端,二极管就会导通,这种连接方式,称为正向偏置。2. 反向特性: 在电子电路中,二极管的正极接在低电位端,负极接在高电位端,此时二极管中几乎没有电流流过,此时二极管处于截止状态,这种连接方式,称为反向偏置。西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology二极管构成的基本与门电路1.U

6、a=Ub=0v时,D Ua=Ub=0v时,D1,D2正偏,两个二极管均会导通,此时Uy点电压即为二极管导通电压,也就是D1,D2导通电压(0.7v) 当Ua,Ub一高一低时,不妨假设Ua = 3v,Ub = 0v,先从D2开始分析,D2会导通,导通后D2压降将会被限制在0.7v,那么D1由于右边是0.7v左边是3v所以会反偏截止,因此最后Uy为0.7v,从D1开始分析,如果D1导通,那么Uy应当为3.7v,此时D2将导通,那么D2导通,压降又会变回0.7,最终状态Uy仍然是0.7v. Va=Vb=3v,这个情况很好理解, D1,D2都会正偏,Uy被限定在3.7V.西南石油大学计算机科学学院De

7、partment of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology二极管构成的与门 假设3v及以上代表高电平,0.7及以下代表低电平 二极管构成的或门的工作原理用数学表示可列表格如下A(输入端)输入端)B(输入端)(输入端)Y(输出端)(输出端)000010100111西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sci

8、encecomputer technology二极管构成的基本或门电路 当Ua=Ub=0v时,D1,D2都截至,那么y点为0v. 当Ua=3v,Ub=0v时,此时D1导通,Uy=3-0.7=2.3v,D2则截至,同理Ua=0v,Ub=3v时,D2导通,D1截至,Uy=2.3v. 当Ua=Ub=3v时,此时D1,D2都导通,Uy=3-0.7=2.3v.西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology二极管构成的

9、或门 假设3v及以上代表高电平,0.7及以下代表低电平 正负逻辑(高电平表示1还是低电平表示1) 二极管构成的与门的工作原理用数学表示可列表格如下A(输入端)输入端)B(输入端)(输入端)Y(输出端)(输出端)000011101111西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology模电基础-三级管截止状态:当加在三极管发射结的电压小于PN结的导通电压,基极电流为零,集电极电流和发射极电流都为零,三极管这时失去

10、了电流放大作用,集电极和发射极之间相当于开关的断开状态,称三极管处于截止状态。放大状态:当加在三极管发射结的电压大于PN结的导通电压,并处于某一恰当的值时,三极管的发射结正向偏置,集电结反向偏置,这时基极电流对集电极电流起着控制作用,使三极管具有电流放大作用,其电流放大倍数=Ic/Ib,这时三极管处放大状态。饱和导通状态:当加在三极管发射结的电压大于PN结的导通电压,并当基极电流增大到一定程度时,集电极电流不再随着基极电流的增大而增大,而是处于某一定值附近不怎么变化,这时三极管失去电流放大作用,集电极与发射极之间的电压很小,集电极和发射极之间相当于开关的导通状态。三极管的这种状态称之为饱和导通

11、状态。西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology三极管构成的非门电路 当Ui=0v时,三极管处于截止状态,此时Y点输出电压Uy=Vcc=5v. 当Ui=5v时,三极管饱和导通,Y点输出为低.西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer

12、technology三极管构成的非门电路 假设3v及以上代表高电平,0.7及以下代表低电平 二极管构成的与门的工作原理用数学表示可列表格如下A(输入端)输入端)Y(输出端)(输出端)0110西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology数据存储原理-D触发器 触发器是一个具有记忆功能的,具有两个稳定状态的信息存储器件(存储数据),是构成多种时序电路的最基本逻辑单元,也是数字逻辑电路中一种重要的单元电路。 在

13、数字系统和计算机中有着广泛的应用。触发器具有两个稳定状态,即0和1,在一定的外界信号作用下,可以从一个稳定状态翻转到另一个稳定状态。西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technologyD触发器工作原理(了解)SD 和RD 接至基本RS 触发器的输进端,它们分别是预置和清零端,低电平有效。当SD=0且RD=1时,不论输进端D为何种状态,都会使Q=1,Q=0,即触发器置1;当SD=1且RD=0时,触发器的状态为0,S

14、D和RD通常又称为直接置1和置0端。我们设它们均已加进了高电平,不影响电路的工作。工作过程如下: 1.CP=0时,与非门G3和G4封闭,其输出Q3=Q4=1,触发器的状态不变。同时,由于Q3至Q5和Q4至Q6的反馈信号将这两个门打开,因此可接收输进信号D,Q5=D,Q6=Q5=D。 2.当CP由0变1时触发器翻转。这时G3和G4打开,它们的输进Q3和Q4的状态由G5和G6的输出状态决定。Q3=Q5=D,Q4=Q6=D。由基本RS触发器的逻辑功能可知,Q=D。 3.触发器翻转后,在CP=1时输进信号被封闭。这是由于G3和G4打开后,它们的输出Q3和Q4的状态是互补的,即必定有一个是0,若Q3为0

15、,则经G3输出至G5输进的反馈线将G5封闭,即封闭了D通往基本RS 触发器的路径;该反馈线起到了使触发器维持在0状态和阻止触发器变为1状态的作用,故该反馈线称为置0维持线,置1阻塞线。Q4为0时,将G3和G6封闭,D端通往基本RS触发器的路径也被封闭。Q4输出端至G6反馈线起到使触发器维持在1状态的作用,称作置1维持线;Q4输出至G3输进的反馈线起到阻止触发器置0的作用,称为置0阻塞线。因此,该触发器常称为维持-阻塞触发器西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun comp

16、uter sciencecomputer technology加法运算怎么实现?一位加法实现 若两个数为A,B,相加后产生半加和S和向高位进位C,穷举所有情况为:输入输入输出输出ABSC0000011010101101S为1的情况为:A和B任意一个为1,但不能同时为1C为1的情况为:A和B同时为1西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology加法运算怎么实现?考虑低位进位的一位加法实现 若两个数为A,B,低

17、位的进位为Ci-1,相加后产生半加和S和向高位进位Ci,穷举所有情况为:西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology加法运算怎么实现?考虑低位进位的一位加法实现西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology加法运算怎么

18、实现?多位的运算 多位二进制加法电路种类很多,如四位并行输入串行进位加法电路 这种加法运算的速度是比较低的,在最不利的情况下,每做一次加法运算,需要经过4个全加器的传输延迟时间,才能得到稳定可靠的运算结果。西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology如何从低位到高位依次运算?多位的运算超前进位加法器(carry look ahead adder)是对普通的全加器进行改良而设计成的并行加法器,主要是针对普通

19、全加器串联时互相进位产生的延迟进行了改良。超前进位加法器是通过增加了一个不是十分复杂的逻辑电路来做到这点的。西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology扩展 C语言中有左移和右移的运算符,查阅移位寄存器的工作原理(百度:D触发器构成的移位寄存器)西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYiju

20、n computer sciencecomputer technology问题二、计算机的工作原理冯.诺依曼体系结构西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology计算机的作用 一句话概括计算机的作用 ? 问题 什么是信息,信息在计算机中是如何表示的? 计算机怎么知道要干什么? 怎么达到自动、高速?西南石油大学计算机科学学院Department of computer science and technolo

21、gy - Copyright by LiuYijun computer sciencecomputer technology程序在内存中的样子 通过vs编写一个简单的包含以下元素的程序 中文字符串 英文字符串 整型数 浮点数 分支结构 循环结构 函数int books=10;float bookPrice=1.58f;float discount=0.9;char *eMsg =oh, some english books;char *cMsg =光看书不练你娃还是不会编程!;float calPrice(float price,int numbers) return price *numbe

22、rs;int _tmain(int argc, _TCHAR* argv) float price; for(int i=0;i10) price=discount*price; printf(%s,cMsg);return 0;西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology变量的内存地址的情况三个连续定义的全局变量(从静态存储区域分配)变量 内存单元的编号 以字节为单位的值&books 0 x01

23、117000 0a 00 00 00 71 &bookPrices 0 x01117004 71 3d ca 3f 66 &discount 0 x01117008 66 66 66 3f 60 两个字符串常量 (从静态存储区域分配)eMsg 0 x01115760 6f 68 2c 20 73 6f 6d 65 20 65 6e 67 6c 69 73 68 20 62 6f 73 cMsg 0 x0111573C b9 e2 bf b4 ca e9 b2 bb c1 b7 c4 e3 cd de bb b9 ca c7 b2 bb bb 两个局部变量(在栈上创建)&

24、price 0 x0014F978 dd cc bb aa cc &tmp 0 x0014F984 00 00 00 00 怎么是这样?这是什么?这是什么?西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technologycalPrice函数的内存反汇编和内存情况float calPrice(float price,int numbers)011113C0 push ebp 011113C1 mov ebp,esp 0

25、11113C3 sub esp,0C4h 011113C9 push ebx 011113CA push esi 011113CB push edi 011113CC lea edi,ebp-0C4h 011113D2 mov ecx,31h 011113D7 mov eax,0CCCCCCCCh 011113DC rep stos dword ptr es:edi return price *numbers;011113DE fild dword ptr numbers 011113E1 fmul dword ptr price 011113E4 fstp dword ptr ebp-0C4

26、h 011113EA fld dword ptr ebp-0C4h 0 x011113C0 55 8b ec 81 ec c4 00 00 00 53 56 57 8d bd 3c ff ff ff b9 31 00 00 00 b8 cc cc cc cc f3 ab db 450 x011113E2 4d 08 d9 9d 3c ff ff ff d9 85 3c ff ff ff 5f 5e 5b 8b e5 5d c3 cc cc cc cc cc cc cc cc cc cc cc 西南石油大学计算机科学学院Department of computer science and tec

27、hnology - Copyright by LiuYijun computer sciencecomputer technologyMain函数的反汇编int _tmain(int argc, _TCHAR* argv)01111410 push ebpfloat price; for(int i=0;i10)01111486 cmp dword ptr books (1117000h),0Ah 0111148D jle wmain+8Bh (111149Bh) price=discount*price;0111148F fld dword ptr discount (1117008h) 0

28、1111495 fmul dword ptr price 01111498 fstp dword ptr price printf(%s,cMsg);0111149B mov esi,esp 0111149D mov eax,dword ptr cMsg (1117010h) 011114A2 push eax 011114A3 push offset string %s (111577Ch) 011114A8 call dword ptr _imp_printf (11182D4h) 011114AE add esp,8 011114B1 cmp esi,esp 011114B3 call

29、ILT+310(_RTC_CheckEsp) (111113Bh)return 0;011114B8 xor eax,eax 0 x01111410 55 8b ec 81 ec d8 00 00 00 53 56 57 8d bd 28 ff ff ff b9 36 00 00 00 b8 cc cc cc cc f3 ab c7 45 ec 00 00 00 00 0 x01111435 eb 09 8b 45 ec 83 c0 01 89 45 ec 83 7d ec 17 7d 25 a1 0c 70 11 01 03 45 ec 0f be 08 8b f4 51 西南石油大学计算机

30、科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology程序的内存情况符号符号 地址地址内存起始地址内存起始地址数据Books bookPrice discount 全局变量0 x01117000 (静态区)eMsg cMsg 全局字符串变量0 x01115760(文字常量区)Price tmp0 x0014F978(栈区)代码calPrice0 x011113C0 (代码区)main0 x01111410 (代码区)西南石油大学计算

31、机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology理解数据和指令的一个诡异的例子int x=1;/全局变量int testFunction()x+;return x;/将全局变量加1的函数int _tmain(int argc, _TCHAR* argv) /VS2012 VC+ main函数int result1,result2;/两个整型变量,用于存放调用函数的返回值unsigned char s =0 x55,0 x8b

32、,0 xec,0 x81,0 xec,0 xc0,0 x00,0 x00,0 x00,0 x53,0 x56,0 x57,0 x8d,0 xbd,0 x40,0 xff,0 xff,0 xff,0 xb9,0 x30,0 x00,0 x00,0 x00,0 xb8,0 xcc,0 xcc,0 xcc,0 xcc,0 xf3,0 xab,0 xb8,0 x01,0 x00,0 x00,0 x00,0 x5f,0 x5e,0 x5b,0 x8b,0 xe5,0 x5d,0 xc3;int (*p)();/指向函数的指针p=(int(_cdecl*)(void)&s0;/函数指针指向了一个数

33、组?result1=testFunction();/第一次调用函数result2=p();/通过指针调用数组?printf(result1=%d,result2=%d,result1,result2);return 0;这是什么?西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology程序在内存中的结论 数据(信息)和处理数据的指令等同的用二进制的格式存储在存储器中 新问题 怎么知道谁是数据谁是指令? 怎么知道从哪里

34、开始执行? 为了区分不同类型的信息(指令、数据),将所有的信息按照不同的门类放到不同的地址处 计算机从一个开始的地址开始顺序的取指令,译码后执行 循环分支和函数调用是通过改变执行的地址(跳转)执行的西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology扩展 程序装在内存后就不能移动了吗? 内存的组织形式(后续章节) 代码的重定位(后续章节) 动态链接(后续章节)西南石油大学计算机科学学院Department of

35、computer science and technology - Copyright by LiuYijun computer sciencecomputer technology怎么知道是执行什么指令?指令的编码和译码 指令的编码就是实现汇编语言到二进制机器码的过程,(编译器是将C语言转为汇编语言) 译码是编码的逆过程; 9 : int x=1; 0001ec7 45 f8 01 0000 00 mov DWORD PTR _x$ebp, 1; 10 : int y=2; 00025c7 45 ec 02 0000 00 mov DWORD PTR _y$ebp, 2; 11 : int

36、z=0; 0002cc7 45 e0 00 0000 00 mov DWORD PTR _z$ebp, 0; 12 : ; 13 : if(xy) 000338b 45 f8 mov eax, DWORD PTR _x$ebp 000363b 45 ec cmp eax, DWORD PTR _y$ebp 000397e 08 jle SHORT $LN2wmain; 14 : z=x; 0003b8b 45 f8 mov eax, DWORD PTR _x$ebp 0003e89 45 e0 mov DWORD PTR _z$ebp, eax; 15 : else 00041eb 06 jm

37、p SHORT $LN1wmain$LN2wmain:; 16 : z=y;int x=1;int y=2;int z=0;if(xy)z=x;elsez=y;西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology指令编码和译码的例子现在假设某种简单的CPU只支持4种功能: 包括 加法 ADD Rd,Rs,Rn , 结果是Rd=Rs+Rn 减法 SUB Rd,Rs,Rn , 结果是Rd=Rs-Rn 数据传送 MOV

38、 Rd,Rs,结果是Rd=Rs 数据加载 LDR Rd,Rs ,结构是将内存中以Rs寄存器的值为地址取值赋给Rd 西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology指令的编码 如何进行编码呢? 首先将指令分为操作码+操作数 两个部分,操作码即代表指令功能,如ADD、SUB等,其在CPU中就代表某种具体的电路,如ADD就代表加法电路,SUB代表减法电路;操作数即是代表功能的输入和输出,对应电路的输入和输出。 现在

39、共有4种功能,那至少需要2个比特来进行编码,如00代表ADD,01代表SUB,10代表MOV,11代表LDR; 操作数的编码,假设寄存器共有8个,Rd,Rs,Rn都是其中的一个,即d,s,n的范围是0到7,那至少需要3个比特来编码,如000代表R0,001代表R1,以此类推,111代表R7. 那要实现以上四种功能指令,总共需要2+3+3+3=11个比特进行编码。如SUB R6,R1,R2,即R1减去R2的值赋给R7,那其编码就是01 110 001 010.西南石油大学计算机科学学院Department of computer science and technology - Copyrigh

40、t by LiuYijun computer sciencecomputer technology指令的译码 取指就是根据当前程序计数寄存器PC(假设硬件电路规定R7就是寄存器PC)的值从内存中取出机器码指令,如以上指令的机器码的值是 01 110 001 010。 译码 根据最先的两个比特01送入译码器,选择为减法电路;110即译码选择为R6, 001译码选择R1, 010译码选择R2. 执行就是减法单元电路对两个输入(R1,R2)进行运算,将结果赋给R6. 西南石油大学计算机科学学院Department of computer science and technology - Copyri

41、ght by LiuYijun computer sciencecomputer technology如何自动和高速地址地址对应的指令对应的指令0 x100000000Mov ax,50 x100000004Mov bx,60 x100000008Add ax,bx0 x10000000cCall printf0 x10000000eAdd ax,10 x100000010Add bx,10 x100000014Jmp 0 x10000008 专门器件记录程序从哪个地址开始执行程序计数器 取指译码执行后,程序计数器自动顺序取下一条指令 分支和循环等流程的改变最终就是修改这个寄存器的值实现的西南

42、石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology冯.诺依曼体系结构 美籍匈牙利数学家冯诺依曼于1946年提出存储程序原理,把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式储存 计算机处理的数据和指令一律用二进制数表示 顺序执行程序:计算机运行过程中,把要执行的程序和处理的数据首先存入主存储器(内存),计算机执行程序时,将自动地并按顺序从主存储器中取出指令一条一条地执行,这一概念称作顺序执行程序。 计算

43、机硬件由运算器、控制器、存储器、输入设备和输出设备五大部分组成西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology冯.诺依曼体系结构 采用存储程序方式,指令和数据不加区别混合存储在同一个存储器 指令和数据都可以送到运算器进行运算,即由指令组成的程序是可以修改的 存储器是按地址访问的线性编址的一维结构,每个单元的位数是固定的。 指令由操作码和地址组成。操作码指明本指令的操作类型,地址码指明操作数和地址。操作数本身无

44、数据类型的标志,它的数据类型由操作码确定。 通过执行指令直接发出控制信号控制计算机的操作。指令在存储器中按其执行顺序存放,由指令计数器指明要执行的指令所在的单元地址。但执行顺序可按运算结果或当时的外界条件而改变。 以运算器为中心,I/O设备与存储器间的数据传送都要经过运算器。 数据以二进制表示。西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology计算机及五大部件 计算机(computer)是一种用于高速计算的电子

45、计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology五大部件功能概述 控制器(Control):是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。 运算器(Datapath):运算器的功能是

46、对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology 存储器(Memory):存储器的功能是存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息。西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomp

47、uter technology 输入(Input system):输入设备是计算机的重要组成部分,输入设备与输出设备合你为外部设备,简称外设,输入设备的作用是将程序、原始数据、文字、字符、控制命令或现场采集的数据等信息输入到计算机。常见的输入设备有键盘、鼠标器、光电输入机、磁带机、磁盘机、光盘机等。西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology 输出(Output system):输出设备与输入设备同样是计

48、算机的重要组成部分,它把外算机的中间结果或最后结果、机内的各种数据符号及文字或各种控制信号等信息输出出来。微机常用的输出设备有显示终端CRT、打印机、激光印字机、绘图仪及磁带、光盘机等。 西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology问题三、程序的执行过程西南石油大学计算机科学学院Department of computer science and technology - Copyright by Liu

49、Yijun computer sciencecomputer technology首先搞清楚:典型系统的物理构成The hardware organization of a typical systemCPU: Central Processing Unit 中央处理单元ALU: Arithmetic/Logic Unit 算数逻辑单元PC: Program counter 程序计数器USB: Universal Serial Bus 通用串行总线西南石油大学计算机科学学院Department of computer science and technology - Copyright by

50、LiuYijun computer sciencecomputer technology总线 总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。 总线是一种内部结构,它是cpu、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统机器字长?西南石油大学计算机科学学院Department of computer science and technology -

51、 Copyright by LiuYijun computer sciencecomputer technologyIO DEVICES Input/output (I/O) devices are the systems connection to the external world a keyboard and mouse for user input a display for user output, and a disk drive for long-term storage of data and programs. Each I/O device is connected to

52、 the I/O bus by either a controller or an adapter. The distinction between the two is mainly one of packaging. Controllers are chip sets in the device itself or on the systems main printed circuit board (often called the motherboard). An adapter is a card that plugs into a slot on the motherboard. R

53、egardless, the purpose of each is to transfer information back and forth between the I/O bus and an I/O device.西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology内存 程序执行时用于临时存放数据和代码(指令)的设备 从物理上看,内存是一系列的(触发器构成的)芯片组,从逻辑上看 从逻辑上看,内存是一个线性

54、字节单元的集合,每一个单元具有自己唯一的地址(也可以看作是个字节数组)西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology中央处理器CPU 是执行存储在内存中的指令的“引擎” 中央处理单元按照严格的顺序从内存中读取程序计数器(program counter)指明的指令,解释并执行 当一条指令执行完后,程序计数器将修改其中的值以指向下一条将要执行的指令(但这条指令也许不是真正的要执行的下一条指令?) 每条指令的执行

55、将由一系列的步骤构成西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology一个程序的执行过程-1 当操作系统启动后,操作系统的shell程序等待用户输入一个命令 当用户输入一个命令后并回车,shell程序读取所有的内容到内存中西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer scie

56、ncecomputer technologyShell? Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口 它接收用户输入的命令并把它送入内核去执行 Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核 Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果西南石油大学计算机科学学院Department of computer science and technology - Copyr

57、ight by LiuYijun computer sciencecomputer technology一个简单的shell程序示例#include #include #include #include #define PATH_LENGTH 256/This program show the operation system shell structint cmdNo(char *cmdLine)if(strcmp(cmdLine,dir)=0) return 1;if(strcmp(cmdLine,cls)=0) return 2;if(strcmp(cmdLine,cd .)=0) re

58、turn 3;if(strcmp(cmdLine,exit)=0) return 4;return -1;int _tmain(int argc, _TCHAR* argv)char tmpPathPATH_LENGTH;char cmdPATH_LENGTH;system(cls);for(;)printf(%s,_getcwd(tmpPath,PATH_LENGTH);gets(cmd);switch(cmdNo(cmd)case 1:system(dir);break;case 2:system(cls);break;case 4:goto pEnd;default:printf(%s

59、is not recongized are a system commond or a executeable filen,cmd);pEnd:printf(that all);return 0;西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology一个程序的执行过程-2 Shell程序解释我们输入的命令,当发现是一个可执行的程序时,将这个程序的所有的数据和代码从磁盘中以特定的技术(DMA)读出并存放到内存中空闲的

60、地方西南石油大学计算机科学学院Department of computer science and technology - Copyright by LiuYijun computer sciencecomputer technology一个程序的执行过程-3 程序加载后,shell会CPU从哪里开始执行(对C程序而言,就是将main函数的入口地址赋值给程序计数器PC) 然后给出一个启动命令,让程序开始执行 这里面将有一个切换的过程,由shell程序切换成待执行的程序 待执行完成后,系统切换回shell程序继续执行西南石油大学计算机科学学院Department of computer science and technology -

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论