《计算机学科导论第1章.ppt》由会员分享,可在线阅读,更多相关《计算机学科导论第1章.ppt(49页珍藏版)》请在三一办公上搜索。
1、计算机学科导论,倪维健,课程目标,专业选择软件、硬件、网络、理论职业规划软件、硬件、网络、理论研究根本目标了解计算机基本原理(软件、硬件)了解计算机研究方向了解IT行业,2,关于教材,没有教材只有参考书,3,授课内容,4,计算机系统漫游,人工智能的历史与现状,信息检索的历史与现状,云计算概述,物联网概述,计算机软件公司的历史与发展,计算机硬件公司的历史与发展,互联网公司的历史与发展,国内IT公司的历史与发展,计算机原理综述,计算机研究概述,计算机行业概述,计算机系统漫游,Hello World!Hello程序很简单系统的每个主要组成部分都需要协调工作,才能完成它的执行在你的系统上运行Hello
2、程序,系统内部发生了什么?,5,计算机系统漫游,Hello程序的表示方式源文件(source program)文本文件由0和1组成的bit序列,这些bit被组织成8个一组,成为byte。每个byte表示程序中的某个文本字符。计算机系统中使用ASCII标准来表示文本字符。,6,计算机系统漫游,ASCII标准American Standard Code for Information Interchange,美国信息互换标准代码基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统。标准 ASCII 码,使用 7 位二进制数来表示所有的大写和小写字母,数
3、字 0 到 9、标点符号,以及在美式英语中使用的特殊控制字符。,7,int a=0 x30;printf(“%c”,a);,char a=0;printf(“%x”,a);,计算机系统漫游,中文字符编码 GB2312GB 2312或GB 2312-80是一个简体中文字符集的中国国家标准,全称为信息交换用汉字编码字符集基本集,由中国国家标准总局发布,1981年5月1日实施。GB 2312标准共收录6763个汉字,还包括包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个全角字符。字节结构每个汉字及符号以两个字节来表示。第一个字节称为“高位字节”(也称“区字节)”,第二个字
4、节称为“低位字节”(也称“位字节”)。“高位字节”使用0 xA1-0 xF7,“低位字节”使用0 xA1-0 xFE。例如“啊”字在大多数程序中,会以两个字节,0 xB0(第一个字节)0 xA1(第二个字节)储存。,8,计算机系统漫游,Hello程序的表示方式ASCII字符构成的二进制文件每行文本都以一个看不见的换行符n来结束,它对应的整数值为10。(Unix系统)在Windows系统中,每行文本则以rn来结束,即回车、换行。,9,计算机系统漫游,系统中所有的信息包括磁盘文件、存储器中的程序、存储器中存放的用户数据以及网络上传送的数据,都是由bit串表示的。在不同的上下文中,同样的字节序列可能
5、表示一个整数、浮点数、字符串或者机器指令。信息就是“bit”+“上下文”,10,计算机系统漫游,程序被其它程序翻译成不同的格式在Unix系统中,从源文件到目标文件的转化是由编译器驱动程序(Compiler driver)完成的。unix gcc o hello hello.c在windows系统中,11,计算机系统漫游,编译系统输入:源程序(source program)输出:可执行目标程序(executable object program)预处理阶段(pre-processing)编译阶段(compiling)汇编阶段(assembling)链接阶段(linking),12,计算机系统漫游
6、,预处理阶段(pre-processing)预处理器会分析执行所有的预处理器指令,然后删除他们,得到一个仅包含C+语句的转换单元。C语言中的预处理命令以#号开头#include#define PI 3.1415925#undef PI#define Print(Var)count(Var)endl#if defined PI.#endif,13,计算机系统漫游,编译阶段(compiling)编译器把文本文件hello.i翻译成文本文件hello.s,它是一个包含了汇编语言指令的程序文件。汇编语言程序中的每条语句都一种标准的文本格式确切的描述了一条低级机器指令。不同高级语言的不同编译器提供了通用
7、的编译语言输出。编译阶段中的两个重要步骤?,14,计算机系统漫游,汇编阶段(assembling)汇编器将汇编程序翻译成机器语言指令,并把这些指令打包成为可重定向目标程序。可重定向目标程序是一种二进制文件,它的字节编码是机器语言指令而不是字符。,15,计算机系统漫游,链接阶段(linking)在helllo程序中调用了printf函数,它是标准C函数库中的一个函数,存放于名为printf.o的单独的预编译目标文件中,该文件需要并入hello.o程序中。链接器的目标就是把多个目标文件进行合并,得到一个可执行文件。链接是大型程序编译中的一个重要环节。,16,计算机系统漫游,作为开发者必须了解编译系
8、统的工作原理优化程序性能现代编译器一般具有程序优化的功能Unix:gcc O3-o test test.cWindows:,17,计算机系统漫游,优化程序性能使用一次switch,或使用嵌套的if-then-else?传递值参数,或传递引用参数?使用指针,或使用引用?使用全局变量,或参数传递?,18,计算机系统漫游,作为开发者必须了解编译系统的工作原理理解链接时提示的信息或出现的错误,19,计算机系统漫游,处理器读取并解释储存在存储器中的指令shell程序是unix系统内的命令行解释器,它输出一个提示符,等待用户输入一行命令,然后执行这个命令shell首先检查命令是否是内部命令,若不是再检查是
9、否是一个应用程序shell在搜索路径里寻找这些应用程序如果键入的命令不是一个内部命令并且在路径里没有找到这个可执行文件,将会显示一条错误信息。如果能够成功找到命令,该内部命令或应用程序将被分解为系统调用并传给Linux内核。shell是用户和Linux操作系统之间的接口,当普通用户成功登录,系统将执行一个称为shell的程序。shell进程提供了命令行提示符。,20,unix./hellohello,worldunix,unix shell./hellohello,worldunix,计算机系统漫游,系统的硬件组成Intel Pentium系统产品族的模型,21,计算机系统漫游,关于“Pent
10、ium”在奔腾出现以前,所有的处理器都以数字命名,比如英特尔公司的386、486;AMD公司的386、486;摩托罗拉的68000系列等等。英特尔公司继486后开始研制第五代处理器P5,到了1992年,英特尔公司准备发布这款新一代架构,可是其他竞争厂商也打算推出模拟跟风的产品。由于数字无法登记注册,不受商标法保护。为了申请商标以谋求法律保障,英特尔公司第一次仔细考虑用文字为处理器命名。1992年11月,Intel CEO葛鲁夫宣布:“我们下一代的处理器称为Pentium处理器。”Pentium是一个合成的新名词,“pent”在拉丁文里是第五的意思,符合第五代处理器的身份,以“ium”的音结尾,
11、读来显得特别铿锵有力。,22,计算机系统漫游,系统的硬件组成总线贯穿整个系统的一组电子管道,负责在各个部件间传递信息字节。总线被设计成传送定长的自己块,也就是字(Word)。字长是一个基本的系统参数。I/O设备I/O设备是系统与外界的联系通道。PC中主要的I/O设备有哪些?示意图中的I/O设备有哪些?每个I/O设备都是通过一个控制器与适配器与I/O总线连接控制器是I/O设备本身中或是系统的主印制电路板(通常被称作主板)上的芯片组适配器则是一块插在主板插槽上的卡,23,计算机系统漫游,系统的硬件组成主存临时存储设备,在处理器执行程序时,用来存放程序和程序处理的数据。在物理上,主存由一组DRAM芯
12、片组成。在逻辑上,主存由一个现行的自己数组组成。每条机器指令和数据都存储在主存中。,24,计算机系统漫游,系统的硬件组成处理器CPU是解释及执行存储在主存中指令的引擎。CPU的核心是一个字长大小的程序计数器(PC)的存储设备,也简称寄存器。在任何一个时间点上,PC都指向主存中的某条机器语言指令(地址)。CPU的基本任务从PC指向的存储器位置处读取指令解释指令中的各个位,执行指令指示的操作更新程序计数器指向下一条指令寄存器堆:一个小的存储设备,由一些字长大小的寄存器组成算术逻辑单元(ALU):计算数据和地址值,25,计算机系统漫游,系统的硬件组成CPU的主要操作加载:从主存拷贝一个字节或者一个字
13、到寄存器,覆盖寄存器原来的内容存储:从寄存器拷贝一个字节或者一个字到主存的某个位置,覆盖这个位置上原来的内容更新:拷贝两个寄存器的内容到ALU,ALU将两个字想家,并将结果存放到一个寄存器中I/O读:从一个I/O设备中拷贝一个字节或者一个字到一个寄存器I/O写:从一个寄存器中拷贝一个字节或者一个字到I/O设备中跳转:从指令本身中抽取一个字,并将这个字拷贝到PC中。,26,计算机系统漫游,hello程序的执行从键盘上读取hello命令,27,计算机系统漫游,hello程序的执行从磁盘加载可执行文件到主存(DMA,直接存储器访问),28,计算机系统漫游,hello程序的执行从存储器写输出串到显示器
14、,29,计算机系统漫游,疑问系统把大量的时间花费在了哪里?,30,计算机系统漫游,系统花费了大量的时间把信息从一个地方挪到了另一个地方!hello程序:磁盘-主存-CPU“hello,world”字符串:磁盘-主存-显示设备大量的拷贝减慢了程序的运行速度使用直接存储访问让这些拷贝尽可能的快,31,计算机系统漫游,解决方案采用更多的这种更快更小的存储设备:高速缓存高速缓存(cache memory)用来作为暂时的集结区域,存放处理器在不久的将来可能会需要的信息L1高速缓存:位于CPU芯片内部,容量可达数万字节,访问速度几乎和寄存器一样快L2高速缓存:通过一条特殊的总线连接到CPU,容量可达数十万
15、到数百万,访问开销比L1大5倍,32,计算机系统漫游,L1和L2高速缓存使用静态随机访问存储器(SRAM)实现Smart Cache英特尔智能高速缓存技术(Intel Advanced Smart Cache)是2006年推出的英特尔酷睿微架构中所包含的5大革新技术之一,它专为多核心处理器设计,能够让每一个内核动态地利用高达100的可用二级缓存资源,并同时以更高的吞吐率从高速缓存中获取数据,33,计算机系统漫游,形成层次结构的存储设备计算机系统设计的基本观念:在处理器和一个较大较慢的设备之间插入一个更小、更快的存储设备。一个层次上的存储器作为下一层次上的存储器的高速缓存。,34,计算机系统漫游
16、,操作系统管理硬件hello程序并没有直接访问键盘、显示器应用程序通过操作系统操作底层硬件操作系统的用途简化程序设计的难度防止硬件被失控的应用程序滥用;为应用程序提供一致的接口,操作复杂、多样的低级硬件设备,35,计算机系统漫游,操作系统向应用程序提供底层硬件的抽象表示Unix的历史1970年,Bell实验室的研究人员在DEC PDP-7型计算机上完全用机器语言编写了一个简单的操作系统1973年,内核用C语言重写;1974年,对外发布20世纪80年代初,加州大学伯克利分校的研究人员发布了Unix 4.xBSD20世纪80年代中,IEEE发起了Unix标准化的工作,制定了Posix标准。,36,
17、计算机系统漫游,进程是操作系统对运行程序的一种抽象进程让用户觉得程序在独占硬件的运行多个进程中的指令实际上是交错运行的操作系统实现进程交错执行的机制称为上下文切换上下文:PC和寄存器堆的当前值、主存的内容当操作系统决定从当前进程转移控制权到某个新进程时,就进行上下文切换进程打乱了程序执行的时间概念,使得程序员很难获得运行时间的准确和可重复的测量,37,计算机系统漫游,进程的上下文切换象保存当前进程的上下文恢复新进程的上下文将控制权转移到新进程新进程从它上次停止的地方开始,38,39,40,41,42,计算机系统漫游,虚拟存储器操作系统对主存的一种抽象方式为每个进程提供一个假象,好像每个进程都在
18、独占的使用主存每个进程看到的存储器都是一致的,称之为虚拟地址,43,计算机系统漫游,虚拟存储器程序代码和数据代码从同意固定地址开始,紧接着是和C全局变量对应的数据区。代码和数据区是由可执行文件直接初始化的。代码和数据区在进程一旦开始运行就被指定了大小堆空间供代码中的malloc和free操作使用int*p;p=(int*)malloc(sizeof(int);char*q;q=(char*)mallco(1024*sizeof(char);堆在运行时可以动态的扩展和收缩,44,计算机系统漫游,虚拟存储器共享库空间位于用户虚拟地址空间的中间附近的一块空间。存放C标准库和数学库这样共享库的代码和数
19、据的区域。栈空间位于用户虚拟空间的顶部。栈在运行时可以动态的扩展和收缩用途:函数调用或变量声明char ch;int array1024;内核虚拟存储器操作系统总是驻留在存储器中的部分不允许被应用程序读写这个区域的内容内核代码定义的函数不允许被应用程序调用,45,计算机系统漫游,文件本质:字节序列每个I/O设备,包括磁盘、键盘、显示器、甚至于网络,都可以被看成文件使得应用程序能够统一的看待系统中可能含有的所有各式各样的I/O设备,46,计算机系统漫游,利用网络系统和其它系统通讯网络应用随处可见你最常用的网络应用?所有的网络应用都是基于相同的基本编程模型,有着相似的整体逻辑结构,并且依赖相同的编程接口客户端/服务器编程模型一个网络应用:由一个服务器进程和一个或多个客户端进程组成服务器:管理某种资源,并且通过操作这种资源来为它的客户端提供某种服务客户端/服务器模型中的基本操作是事务,47,计算机系统漫游,一个客户端/服务器事务客户端向服务器发送一个请求,发起一个事务。服务器收到请求后,解释之,并以适当的方式操作它的资源。服务器向客户端发送一个响应,并等待下一个请求。客户端收到服务端的响应,处理之。,48,计算机系统漫游,计算机程序的表示方式程序的编译过程系统的硬件组成操作系统管理硬件的方式利用网络系统和其它系统通讯,49,
链接地址:https://www.31ppt.com/p-6023607.html