- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Computer Systems:A Programmer’s Perspective计算机系统详解——从程序员的视角Lecture 1Intro Outline Course Theme Five great realities of computer systems Administrative Matters Lecture topics and assignments 课程出发点 Abstract v.s. Reality 抽象是必须的,但也应该考虑具体实现! 其他计算机课程通常强调“抽象”: 抽象数据类型 渐进分析法 抽象往往是受限的: 特别是当计算机系统中存在一些小的缺陷 有必要去深入了解计算机系统中一些底层实现细节 通过了解具体的实现有助于: 成为更有效率的程序员 能够更有效的找出并且消除bug 能够更好的进行程序性能调优 为以后的 计算机类“系统”级课程做好准备 编译, 操作系统, 网络, 计算机体系结构, 嵌入式系统等等 Great Reality #1 Int’s 不是整数, Float’s不是实数 举例 x2 ≥ 0? Float’s: 是! Int’s: 40000 * 40000 -- 1600000000 50000 * 50000 -- ?? (x + y) + z = x + (y + z)? Unsigned Signed Int’s: 是! Float’s: (1e20 + -1e20) + 3.14 -- 3.14 1e20 + (-1e20 + 3.14) -- ?? 计算机运算规则 不会产生随机值 每种运算操作都有基本的数学含义和性质 但不能假设具有某些“通常”性质 由于表示精度的限制 整数运算操作满足“环”性质 交换性,结合性, 分配性 浮点运算操作满足“有序性”性质 单调性, 正负符号不变性 可见: 需要结合上下文环境来理解某些“抽象” 对于编译器设计者或者关键应用的程序员,尤其关键 Great Reality #2 编程人员应该了解一些汇编语言 幸运的是,可能永远也不会需要用汇编语言来写程序 编译器比程序员做的更好并且更有耐心 但理解汇编语言是认识机器级执行模型的关键 存在bug时的程序行为 此时高级语言执行模型失效 程序性能调优 找到程序低效的根源 实现系统级软件 编译器以机器码为最终目标代码 操作系统必须管理进程状态 汇编代码例子 时间戳计数器(Time Stamp Counter) Intel兼容机中的特殊64位寄存器 每个时钟周期自动加1 通过 rdtsc 指令来读取 应用 测量程序的运行时间 以时钟周期为时间单位 读计数器代码 利用GCC的“asm”特性在C源代码中编写小段汇编代码 最终GCC将汇编代码插入到编译产生的机器码中 读计数器代码 测量运行时间 性能测量比看上去要更难于处理 存在很多影响因素 例子 从1到n的整数求和 n Cycles Cycles/n 100 961 9.61 1,000 8,407 8.41 1,000 8,426 8.43 10,000 82,861 8.29 10,000 82,876 8.29 1,000,000 8,419,907 8.42 1,000,000 8,425,181 8.43 1,000,000,000 8,371,2305,591 8.37 系统性能测量 int count(int n) { int i; int sum = 0; for (i=0; in; i++) { sum += i; } return sum; } main(int argc, char** argv) { ... for (i=0; it; i++) { start_counter(); count(n); times[i] = get_counter(); } ... } 系统性能 int count(int n) { ... } main(int argc, char** argv) { ... } Great Reality #3 存储相关:随机访问存储器(RAM)是一个非物理的抽象 存储器并非是无限的 必须对它进行分配和管理 许多应用都是存储受限的(memory dominated) 存储器的性能并非是一致的(uniform) Cache 和虚拟内存的效果会极大的影响程序性能 使程序适应存储系统的结构特性可以极大的提高其性能 访存bug是极其致命的 最终问题出现的时间和位置与对应的访存bug之间可能有很大的距离,导致难以察觉 存储器性能举例
您可能关注的文档
最近下载
- JSCC B系列变频器产品手册.pdf VIP
- 部编版语文四年级上册第16课《麻雀》 配套练习(含解析).pdf VIP
- 认识医生和护士幼儿园助教幼儿园医学科普.pptx VIP
- 标准图集-19S910:自动喷水灭火系统设计.pdf VIP
- 成人经鼻高流量湿化氧疗临床规范应用专家共识.pptx VIP
- 数字化赋能下的高校教学质量监控与改进机制研究教学研究课题报告.docx
- 《成人无创通气设备相关面部压力性损伤风险评估与预防指南》解读PPT课件.pptx VIP
- 慈善组织保值增值投资活动管理暂行办法.docx VIP
- C836056【强化】2024年重庆大学100100基础医学《660基础医学综合(西医)之生理学》考.pdf VIP
- 提高手术患者术前准备完善率医院护理品管圈QCC成果汇报.pptx VIP
有哪些信誉好的足球投注网站
文档评论(0)