计算机学科导论第1章.ppt

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

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!