linux编程入门1
Fundamental Structures
C Programming
目前为止的课程主要强调了计算机的抽象;但其缺陷是,程序出现 bug 和性能问题时,需要理解底层的实现,所以要还原真实。
4
open-src
Course Objective
先期基础:
Linux 操作技能、 C 语言编程基础、数字逻辑设计基础。
21
Von Neumann 结构
Von Neumann 结构
Peripherals
Computer
Central Processing Unit Main Memory
Computnection
Input Output Communication lines
22
制机构等;
5. 存储组织:内存编址方式、容量、最大可编址空间等; 6. 中断机构:中断的分类与分级、中断处理程序功能及入口地址等; 7. 系统机器级的核心态和用户态的定义和切换; 8. 机器级 I/O 结构:输入输出设备的连接、 使用方式、 流量、 操作结
束、 出错指示等;
9. 系统各部分的信息保护方式和保护机构。
open-src
How To Study
学习动力:
为什么学?核心课;解决问题;兴趣;喜爱 ...
学习方法:
课前预习,注重概念的理解,有疑问作标记,也可 google 。 用心听讲,要求以理解为主,有感悟的地方先用草稿纸快速记 下,要求高度集中精力 ( 请晚上 10 点入睡,保证 ) 。 课后结合笔记整理讲义,多做练习题,强烈建议独立完成课后 上机作业,不要有困难就放弃。 上机课要求事先思考实验题目,勾勒初步解决方案并记在纸 上,然后上机解决。建议成立三人学习小组。
11
结构、组织和实现 . 体系结构
Hardware/Software Interface
12
结构、组织和实现 . 组织
Organization
计算机组织:计算机体系结构的逻辑实现,包括机器级内的数据 流和控制流的组成以及逻辑设计等,它包含了许多对程序员来说 透明的硬件细节。 它着眼于机器级内各事件的排序方式与控制机构、 各部件的功能 及各部件间的联系。计算机组成设计要解决的问题是在所希望达到 的性能和价格下,怎样最佳、最合理地把各种设备和部件组织成计 算机,以实现所确定的体系结构。 近 40 年里,计算机组成设计主要是围绕提高速度,着重从提高 操作的并行度、重叠度,以及分散功能和设置专用功能部件来进 行的。
17
结构、组织和实现
结构、组织与 CSAPP
计算机体系结构和计算机组成是密切相关的,具有相同体系 结构的计算机可以因为速度等因素的不同而采用不同的组 织;计算机组织也会影响体系结构。二者往往是在一门课程 中讲授。 本门课程不同于传统的计算机结构与组织的课程,它不仅从 计算机结构和组织相结合的角度介绍计算机系统,并且更着 眼于讨论那些影响 C 语言程序的话题。
结构、组织和实现
现代计算机的层次结构
机器 : 能存储和执行相应语言程序的算法和数据结构的集合体。 各级机器的实现主要靠翻译和解释。
9
结构、组织和实现 . 体系结构
Architecture
体系结构:对计算机系统中各机器级之间 Interface 的划分和定义,是 各机器级对程序员可见的属性。类似于编程语言的函数库的调用接口。 在计算机层次结构中,各级都有它自己的体系结构。 透明:本来存在的事物或属性,从某个角度上看不到,称对它是透明 的。体系结构设计研究的就是对某级,哪些应当透明,哪些应当不透 明。正确合理地进行透明性分析和取舍是非常重要的。 一般所称的计算机体系结构指的是传统机器级 Interface 的体系结构, 研究的是软硬件之间的功能分配,提供其上级的机器语言、汇编语言 程序员或者编译程序设计者可见的计算机属性。 至于下级的机器级内部的数据流和控制流的组成,逻辑设计和器件设 计等对体系结构设计是透明的,属于计算机组织的内容。
计算机采用二进制数制表示数据和指令 采用存储程序方式 由运算器,控制器,存储器,输入装置和输出装置组成
一般体系结构的设计者是从功能和结构从发进行设计的: 结构:部件相互关联的方式。 功能:作为相关结构组成部分的每个部件的操作。
20
Von Neumann 结构
计算机的基本功能
Data processing Data storage Data movement Control
Von Neumann 结构
控制器
Control Unit
CPU
ALU Internal Bus Registers Control Unit
Sequencing Logic Control Unit Registers and Decoders
Control Memory
控制器普遍采用微程序的实现方法。
计算机组成原理参考:
《编程卓越之道 第一卷 : 深入理解计算机》 Randall Hyde 著 电子工业出版社 2007 年 3 月 高等教育出版社
《计算机组成原理(第 2 版)》 唐朔飞著 2008 年 1 月
2
open-src
Course Outline
计算机系统漫游 信息的表示和处理 程序的机器级表示 处理器体系结构 存储器层次结构 链接 异常控制流 虚拟存储器 系统级 I/O
OPERATING ENVIROMENT Data Storage Facility
Source and Destination of Data
Data Movement Apparatus
Control Mechanism
Data Processing Facility
计算机的通用性是根本的,所有功能的专门化均发生在编程阶段,而不是在设计阶段。
用微程序控制,采用单机处理还是用多机处理或分布处理;
6. 缓冲和排队技术 : 在不同部件之间怎样设置及设置多大容量的缓
冲器来弥补它们的速度差异;是采用随机方式,还是先进先出、 先进后出、优先级或循环方式来安排等待处理事件的先后顺序;
7. 预估、 预判技术 : 为优化性能和优化处理, 采用什么原则来预测
未来的行为;
8. 可靠性技术 : 采用什么样的冗余技术和容错技术来提高可靠性;
15
结构、组织和实现 . 实现
Implementation
计算机实现指的是计算机属性的物理实现。包括处理器、主存等 部件的物理结构,器件的集成度和速度,器件、模块、插件、底 板的划分与连接,微组装技术等等。
16
结构、组织和实现
18
CH00 Preparation for CSAPP
体系结构、组织和实现☆ Von Neumann 结构★
2010_Spring_csapp@pe.cqnu
Von Neumann 结构
Von Neumann 结构的设计
从最上层的角度来分析现有的计算机体系结构,都属于控制流驱 动的 Von Neumann 结构,其要点是:
Computer Organization
Computer Systems
A Programmer's Perspective
Randal E. Bryant, David O'Hallaron
open-src
Reference
C 语言参考:
《 C 语言程序设计:现代方法》 ( 美 ) King, K.N. 著 , 吕秀锋译 人民邮电出版社 2007.11
3
open-src
Course Role
Networks Operating Systems Processes Mem. Mgmt Compilers Embedded Systems
Network Protocols
Machine Code Optimization Exec. Model Memory System
TM ∑ fi ti
i=1
n
每秒执行百万条指令
CPI FLOPS
执行一条指令所需时钟周期数 每秒浮点运算次数
26
open-src
Let's begin now...
''I hear and I forget; I see and I remember; I do and I understand. ''
结构、组织和实现的关系
指令系统的确定属于计算机体系结构;指令的逻辑实现:如取指 令、指令操作码译码、计算操作数地址、取数、运算、送结果等的 操作安排和排序属于计算机组成;实现这些指令功能的具体电路、 器件的设计及装配技术属于计算机实现。 确定指令系统中是否要设乘法指令属于计算机体系结构;乘法指令 是用专门的高速乘法器实现,还是靠用加法器和移位器经一连串时 序信号控制其相加和右移来实现属于计算机组成;乘法器、加法 移 位器的物理实现:如器件的类型、集成度、数量、价格,微组装技 术的确定和选择属于计算机实现。 主存容量与编址方式(按位、按字节还是按字访问等)的确定属于 计算机体系结构;为达到性能价格要求,主存速度应该为多少,逻 辑结构是否采用多体交叉属于计算机组成;主存器件的选定、逻辑 设计、微组装技术的使用属于计算机实现。
24
Von Neumann 结构
某个 Von Neumann 结构
CPU
…
ACC MQ
5 6
IR PC
存储体
CU
ALU
控制 单元
27 1 4
MAR
3 8
MDR
I/O