- 1、本文档共57页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第一章 计算机系统概论 “计算机系统基础”课程的由来“计算机系统基础”课程内容概要计算机系统概述计算机性能评价
主要内容
课程的由来
课程内容概要
课程教学安排及考试安排
计算机系统概述
硬件和软件的基本组成
程序的开发和执行过程
计算机系统层次结构
计算机性能评价
计算机学科研究和教学对象
计算机学科主要研究的是计算机系统各个不同抽象层的实现及其相互转换的机制
计算机学科培养的应该主要是在计算机系统或在系统某些层次上从事相关工作的人才
计算机系统抽象层的转换
PostPC Era: Late 2000s - ??
Personal Mobile Devices (PMD): Relying on wireless networking
Apple, Nokia, … build $500 smartphone and tablet computers for individuals = Objective C, Android OS
Cloud Computing: Using Local Area Networks, Amazon, Google, … build $200M Warehouse Scale Computers with 100,000 servers for Internet Services for PMDs
= MapReduce, Ruby on Rails
4
资料来源:UC-Berkeley, Course CS61C, Spring 2011 Lecture #1
iPhone
iPot
iPad
后PC时代计算机教学面临的挑战
计算资源多样化,I/O设备无处不在,数据中心、PMD与PC等共存
软件和硬件协同设计(硬件、OS和编译器之间的关联更加密切)
对应用程序员的要求更高
编写高效程序必需了解计算机底层结构
必需掌握并行程序设计技术和工具
应用问题更复杂,领域更广
气象、生物、医药、地质、天文等领域的高性能计算
Google、百度等互联网应用领域海量“大数据“处理
物联网(移动设备、信息家电等)嵌入式开发
银行、保险、证券等大型数据库系统开发和维护
游戏、多媒体等实时处理软件开发,。。。。。
“并行”成为重要主题、培养具有系统观的软/硬件贯通人才是关键!
后PC时代的几个特征
大规模
分布式
多粒度并行
系统能力基于对系统的理解
了解计算机系统整体概念,理解计算机系统层次结构
理解高级语言程序、ISA、编译/链接、OS、硬件等之间的关系
高级语言语句与具体指令的对应关系
变量(常量)如何表示和存放
数组、指针等如何在指令级进行访问操作
嵌套和递归等机制如何在指令级实现
堆/栈的结构和动态存储分配机制
程序中的I/O操作和涉及到的系统调用过程
……
理解指令在计算机硬件上的执行过程
算术逻辑运算部件以及运算指令执行过程
层次化存储结构(Cache、TLB、RAID等)以及访存过程
I/O结构(I/O外设和接口、BUS、网络等)以及I/O过程
……
理解构成计算机硬件的基本电路特性和设计方法
布尔代数、逻辑门电路、FPGA和HDL
功耗、延时
……
……
理解系统
改革系统
应用系统
系统能力基于“系统思维”
计算思维(抽象)
从计算机学科中提炼出来的一种“普适”思维方式
面向所有人、所有领域
无需深入了解计算机系统
对计算机专业学生来说:必需,但远远不够!
系统思维(李国杰院士)(具体)(“计算机思维”)
从计算机角度出发来分析问题和解决问题的方法
首先取决于对计算机系统有多了解,“知其然并知其所以然”
高级语言语句都要转换为机器指令才能在计算机上执行
机器指令是一串0/1序列,能被机器直接理解并执行
计算机系统是模运算系统,字长有限,高位被丢弃
运算器不知道参加运算的是带符号数还是无符号数
在计算机世界,x*x可能小于0,(x+y)+z不一定等于x+(y+z)
访问内存需几十到几百个时钟,而访问磁盘要几百万个时钟
进程具有独立的逻辑控制流和独立的地址空间
过程调用使用栈存放参数和局部变量等,递归过程有大量额外指令,增加时间开销,并可能发生栈溢出
…….
用“系统思维”分析问题
在有些32位系统上
-2147483648 2147483647
结果为false(与事实不符),Why?
int i = -2147483648;
i 2147483647
结果为true,Why?
-2147483647-1 2147483647”,结果怎样?
理解该问题需要知道:
编译器如何处理字面量
机器级数据的表示
高级语言中运算规则
机器指令的含义和执行
计算机内部的运算电路
……
用“系统思维”分析问题
s
文档评论(0)