课件计算机系统引论_第1页
课件计算机系统引论_第2页
课件计算机系统引论_第3页
课件计算机系统引论_第4页
课件计算机系统引论_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机系统基础背景臧斌宇指导思想基本前提软件工程全专业卓越工程师计划课程设置专业课程三年完成课程体系包括核心课程方向课程实践课程企业课程计算机专业本科课程的基本结构四类课程核心课方向课方向选修课综合课以Stanford大学计算机本科专业课程为例Computer Science Curricula for the Coming Decadepp. 12 pp. 26Mehran SahamiStanford大学副系主任计算机学科的涵盖的领域在不断扩大系统理论人工智能计算生物学计算几何图形学人机交互分布式系统数据库硬件机器人数据挖掘机器学习自然语言处理计算经济学网络安全算法计算机学生以前看到的领域

2、系统理论人工智能计算生物学计算几何图形学人机交互分布式系统数据库硬件机器人数据挖掘机器学习自然语言处理计算经济学网络安全算法方向课可以教授更深的内容系统理论人工智能计算生物学计算几何图形学人机交互分布式系统数据库硬件机器人数据挖掘机器学习自然语言处理计算经济学网络安全算法教学内容总量不变和更广的领域系统理论人工智能计算生物学计算几何图形学人机交互分布式系统数据库硬件机器人数据挖掘机器学习自然语言处理计算经济学网络安全算法涵盖的领域扩大了系统理论人工智能计算生物学计算几何图形学人机交互分布式系统数据库硬件机器人数据挖掘机器学习自然语言处理计算经济学网络安全算法圈出的核心内容是每人必须掌握艺术计算

3、机科学的“大帐”系统理论人工智能计算生物学计算几何图形学人机交互分布式系统数据库硬件机器人数据挖掘机器学习自然语言处理计算经济学网络安全算法心里学设计电子工程经济学生物学语言学统计学课程结构: 核心课系统核心:3门程序设计中的抽象和方法学计算机组织和系统计算机系统原理和网络理论核心: 3门计算的数学基础计算机科学的概率方法数据结构和算法理论系统TheorySystems课程结构:方向课学生必须完成一个方向的课程要求某个特定方向的深化每个方向提供可选的课程/专题提供跨学科选修课程模块化约4门课TheorySystemsTheorySystems课程结构:选修2至4门课限制选修增加广度/或深度Tr

4、ack-specific 选修使得跨学科工作成为可能计算生物方向: Genomics, Dynamic Models in Biology图形学方向: Studio Art, Psychology of Vision, Digital Photography人机交互方向: Needs Finding, Psychology of Perception, CognitionTheorySystemsTheorySystemsTheorySystems课程结构:综合设计TheorySystems高级实验不同方向的综合设计不同同时面向研究和应用1 CourseCMU 计算机专业的核心课15-122

5、Principles of Imperative Computation15-150 Principles of Functional Programming 15-210 Parallel and Sequential Data Structures and Algorithms 15-213 Introduction to Computer Systems 15-251 Great Theoretical Ideas in Computer Science 15-451 Algorithm Design and Analysis MIT计算机专业的核心课程Berkeley计算机本科核心课程

6、CoreCS 61A Structure and Interpretation of Computer ProgramsCS61B Data StructuresCS61C Machine Structures EECS42 Digital ElectronicsUpper Division Required(计算机必修下面两门)CS 170 Algorithms CS 162 Operating systems Berkeley计算机本科核心课程Breadth courses choose two from the following: CS 150 Digital SystemsCS 15

7、2 Computer Architecture CS 160 User InterfacesCS 161 Computer Security CS 164 Languages and Compilers CS 169 Software Engineering CS 184 Computer GraphicsCS 186 Databases CS 188 Artificial Intelligence 通识教育模块(含企业课程)本科/硕士贯通课程企业实践/毕业设计软件工程技术开发技术数理基础/工程基础企业实践/ 毕业设计系统软件数字媒体信息系统计算机系统科研实践/毕业论文个性化教育模块 大四下大

8、四上大三大二大一计算理论核心课全专业必修的专业基础课基本安排在前两年非理论课程包含大量实践按计算优先设置三大核心课程模块软件开发基础、计算机系统基础、计算理论基础重构传统的基础课根据互联网时代的特征学习美国计算机四大名校的课程体系参考ACM CS 2013课程体系 核心课程软件开发基础:4门课程序设计 (一)程序设计 (二)软件工程数据库计算机系统基础:3门课计算机系统基础 (上)计算机系统基础 (下)计算机系统工程课程体系 核心课程计算理论基础:4门课集合与逻辑形式语言与自动机可计算性与计算复杂性算法设计与分析若干传统的课程被重构离散数学汇编、组成、体系结构、操作系统、网络、编译突出了互联网

9、环境下的软件构造问题安全、容错、数据一致性课程体系 核心课程学年上学期下学期一高等数学(上)线性代数程序设计(一)高等数学(下)普通物理(上)计算机系统基础(上)数理逻辑二普通物理(下)计算机系统基础(下)程序设计(二)形式语言与自动机概率论计算机系统工程数据库设计软件工程三算法设计与分析可计算性与计算复杂性每学期都有数学或理论课程课程体系 实践课程三学期制春、秋两个长学期,各16周夏季一个短学期,4周大作业开发量较大的实践体现软件工程原则第一学年4周:程序设计大作业含初步的软件过程管理第二学年6周:软工大作业(团队合作)第三学年6周:各方向课程大作业课程体系 企业课程第一学年暑期软件工程职业

10、素养 (1课时)第七学期软件知识产权保护(1课时)软件产品设计及用户体验(1课时)企业软件过程与管理(1课时)企业软件质量保证(1课时)软件工程经济学(1课时)课程体系 方向课程四个方向软件工程技术、系统软件、数字媒体技术、企业信息系统每门课3学分软件工程技术编译原理与技术、软件测试 软件架构 、程序语言基础、程序分析与验证系统软件 操作系统、编译原理与技术分布式系统、计算机体系结构、数字部件设计 课程体系 方向课程数字媒体与应用操作系统、计算机图形学计算机视觉、人机界面与交互、游戏设计与开发信息系统信息系统工程、信息系统分析与设计企业级应用系统体系架构、数据仓库与数据挖掘、企业信息系统综合设

11、计与实现计算机系统基础简介系统软件方向课程体系计算机系统基础(下)计算机系统工程操作系统分布式系统计算机体系结构编译系统数字部件设计计算机系统基础(上)目标扎实的系统基础涉及很多抽象(人为构造)的计算机系统概念处理计算机系统类问题的基本原则和方法涵盖汇编、组成、体系结构和网络的重要内容涵盖操作系统和并发程序设计的重要概念设计编译相关的基础较强的动手能力为培养学生的系统设计能力打下基础较为系统地学习Linux下的开发环境和开发工具一定的阅读与思辨能力教材1998年在CMU开设2002年正式出版教材涵盖了计算机系统领域的广泛内容2011年第2版CMU计算机学院院长Randal E. Bryant

12、CMU计算机学院教授David R. OHallaron开课情况复旦大学2002年9月软件学院本科二下开设(第一届为三上),一学期课程2005年计算机专业本科生、电子工程专业本科生2007年9月改为两学期讲授大二一年2010年3月提前一学期开设大一下、大二上上海交大2011年3月软件工程专业2012年3月增加每周的习题课简介计算机系统基础(上、下)(上)从程序到可执行码、体系结构(处理器)(下)体系结构(存储和优化)、操作系统、网络和并发程序设计课时每学期16周、授课每周4学时 计算机系统基础(上):实验+习题课,每周2学时计算机系统基础(下):习题课,每周1学时考试期中、期末各25%实验40

13、%(含上机考10%)、平时10%计算机系统工程 基本情况课时授课:4课时讨论:1课时教材书名:Principles of Computer System Design作者:Jerome H.Saltzer, Frans Kaashoek分数:期中、期末:各20%实验:40%论文阅读和研讨:15%网上讨论:5%Jerome H. SaltzerMIT教授美国工程院院士Frans Kaashoek开课情况复旦大学2011年3月软件工程专业第一次开课大二下开设上海交大2012年9月软件工程专业硕士研究生完善课程结构增加实现类实验2013年3月软件工程专业本科生调整实现类实验今后将进一步完善课程结构和

14、实现类实验从二进制到可执行码 二进制数据表示和运算Bits和Bytes位操作整数表示无符号数和补码表示类型转换整数的算术运算浮点数表示和运算从二进制到可执行码 汇编和编译机器语言的执行模型 汇编码和目标码预处理、编译、汇编、链接、加载指令的执行冯诺依曼结构指令的顺序执行虚拟存储器数据存储(大、小端)从二进制到可执行码 汇编和编译 (续)从C 到汇编 数据移动寄存器寻址模式、mov指令、硬件栈与栈操作从指针到地址算术逻辑运算指令从表达式到算术逻辑指令从二进制到可执行码 汇编和编译 (续)从C 到汇编 控制结构跳转指令Goto, while, do while, for, switch语句的翻译函

15、数调用的实现硬件栈, Stack frame, Calling conventions Data Layout数组、结构、联合安全漏洞函数调用时的栈溢出攻击X86-64 扩展从二进制到可执行码 汇编器、链接器、库函数汇编器Y86 ISA及其指令编码Y86模拟器、Y86汇编器链接符号、符号解析规则Archive文件静态链接与动态链接Malloc库的实现地址空间内存管理动态内存分配计算机系统基础(上)汇编与优化二进制汇编(x86/Linux)C语言汇编(编译器的输入、输出)寻址、算术逻辑、跳转、函数调用数据分配(数组、结构)Instruction encodingY86的ISALinkingLib

16、raries (malloc)体系结构 处理器处理器结构逻辑电路和硬件描述语言HCLY86的单周期串行实现SEQ Y86指令执行的5个阶段SEQ 时序、SEQ 的实现流水线原理Y86的流水线实现PIPEPIPE的基本实现Hazard处理数据和控制异常处理计算机系统基础(上)实验操作系统安装Vmware/LinuxShell命令版本控制SVN调试工具gdb C 程序设计计算机系统基础(上)实验位操作拆炸弹 (tracker)缓冲区溢出攻击 (黑客)Y86模拟器 Y86 汇编器Memory allocator (暑假短学期完成)用HCL设计Y86 (开学后完成)体系结构 存储体系结构存储设备SRA

17、M、DRAM、硬盘、SSD Memory Mapped I/O、DMA局部性原理存储的层次结构Cache原理基本概念基本结构Direct mapping, Set associative, Fully associativeWrite issues、淘汰策略Multi-level cache体系结构 代码优化与超标量机器无关优化不变量外移、强度弱化(指针标量)超标体系结构指令级并行性性能分析超标量原理多功能部件、乱序执行、分支预测、load/store queue并行与存储优化指令级并行(unroll、splitting、reassociation)编写cache友好的代码性能调优操作系统 进

18、程异常控制流操作系统简介异常处理 内核态与用户态进程创建, 终止, 回收 三个重要的系统调用:fork、execve、waitpid Signals实现进程间的协调工作Long Jump操作系统 虚存虚拟存储地址翻译硬件支持MMU页表、TLB多级页表X86实例Linux的虚存管理Memory Map:mmap()操作系统 I/OUnix I/O系统调用open(), close(), read(), write()Buffered I/O元数据操作stat()内核中I/O相关的数据结构dup2()网络 网络网络结构DNSSocket接口实现简单的HTTP协议并发程序设计并发程序设计(12)利用

19、进程实现并发利用I/O Multiplexing实现并发线程模型Pthread共享变量信号量、锁、P&V操作生产者、消费者模型读写问题数据竞争和死锁计算机系统基础(下)实验代码优化 Cache模拟器实现简单的Shell实现简单的Proxy 实现一个Tiny Webserver和Tiny WebClient计算机系统基础 问题教科书的涉及面很宽泛对于四年级学生这本书很有用,尤其是中国学生虽然学过计算机的大部分课程但不能把这些课程串起来然而对一、二年级的学生去不太容易阅读他们除了编程外,几乎没任何计算机系统的基础书的某些部分写得不好,难易失当例如:2, 3, 8, 9计算机系统工程 目的最初的课程

20、程序设计、硬件方向课(每个方向必修若干门课)系统方向的课越来越多 Operating systems Networks Database systems Distributed systems Programming languages Software engineering Security Fault tolerance Concurrency Architecture计算机系统工程 目的最初的解决方案任选三门或者必选操作系统再加另两门课程没有先后顺序,重复很多对于该方向的学生,内容不够深入对于不是该方向的学生要求太高(如:必须写内核)现在的方案引入该课程介绍操作系统和分布式系统概念全面

21、、基础为后续课程打好基础计算机系统工程 内容操作系统和分布式系统的概念NamingBus(MMIO, DMA)、DNS网络文件系统文件系统、远程过程调用、网络文件系统线程调度和中断进程切换、非抢夺调度、中断处理并发控制原语死锁的判定各类锁及其实现机制系统性能优化基本原则、常用方法、淘汰策略计算机系统工程 内容分布式系统的概念网路三层结构、拥塞控制容错基本概念和方法操作原子性All-or-Nothing(transaction)Before-or-After数据一致性安全原版课程比较“虚”增加开发类实验、强化操作系统实例、注意和ICS衔接第7 应用层第6 表示层第4 传输层第3 网络层第2 链接层第1 物理层Application LayerHTTPTCPEthernetUDPIPPPPSMTPPOP3FTPTransport Layer第5 会话层Network LayerLink LayerEnd-to-end LayerNetwork LayerLink LayerOSITCP/IPCSE计算机系统工程 阅读经典论文阅读Worse is BetterA Fast File System for UNIXThe X Window SystemThe Evolution of an x86 Virtual Machine Mo

温馨提示

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

评论

0/150

提交评论