- 1、本文档共56页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机系统(二)COMPUTER SYSTEMS II: ARCHITECTURE AND PROGRAMMING
深圳大学计算机与软件学院
1
主修班级:2014级计算机相关专业本科生
主讲:廖好
课程定位
专业必修课
与基础课不同的是:自主性,实验性,和专业性
后续课程:编译原理,操作系统,体系结构
教学及考试安排
课程名称: 计算机系统(2)
英文名称: Computer Systems II: Architecture and Programming
总 学 时: 72学时,其中,实验课为18学时
学 分: 3.5
先修课程: 计算机系统(1),面向对象程序设计(C语言或C++)
3
考核方式:
总成绩=平时成绩×40%+期末成绩×60%
平时成绩包括实验报告+平时作业
课程的时间
第一、二周的实验课不用上
理论课:单周二(1,2节)B307, 周四(5,6节)B307
实验课:双周二(1,2节) 南区D324
主讲老师介绍
主 讲 老师: 廖好 2015年计算机学院助理教授
深圳大学计算机与软件学院高性能计算研究中心
电 子 邮件: haoliao@szu.edu.cn
手 机:办 公 室: 科技楼1303
电话:84
微信:jamesliao520
教学及考试安排
教 材:(美) Randal E. Bryant,David R.O Hallaren?著, 龚奕利,雷迎春译,深入理解计算机系统(原书第2版),机械工业出版社,2011.
参考教材:袁春风,计算机系统基础(第1版),机械工业出版社,2014年7月
6
课程实验
实验名称
实验内容
类型
1
实验环境配置与使用
配置Linux实验环境,掌握Linux下的C编程、GCC编译与链接、GDB调试等方法。
验证
2
数据表示实验
使用有限类型和数量的运算操作实现一组给定功能(位操作、补码运算和浮点数操作)的函数。此实验将加深对数据二进制编码表示的了解。
设计
3
逆向工程实验
?
从字符串比较、循环、条件/分支、递归调用和栈、指针、链表/指针/结构这六个方面增强对程序的机器级表示、汇编语言、GDB调试器和反汇编等方面原理与技能的掌握。
设计
4
缓冲区溢出攻击实验
对一个可执行程序实施一系列缓冲区溢出攻击,即设法通过造成缓冲区溢出来改变该可执行程序的运行内存映像。本实验的目的是加深对函数调用规则和堆栈结构的理解。
设计
5
Cache实验
本实验通过一个Cache模拟器,利用Cache来优化一个矩阵的转置以达到缺失率最小,从而分析cache对程序性能的影响。
设计
6
性能优化实验
本实验旨在让学生掌握测量程序执行时间的方法,并综合利用循环展开、cache友好、替换变量等多种优化手段来对两个函数进行代码优化,从而提升程序执行效率。
选做
今天的主要内容
计算机系统漫游
硬件和软件的基本组成(1.4和1.8 )
程序的编码、编译和执行过程(1.1、1.2、1.3和1.4)
计算机系统层次结构(1.5和1.6)
操作系统(1.7)
并行(1.9)
计算机系统基础—从程序员角度认识系统
目标:
培养学生的系统能力,使其成为一个“高效”程序员,在程序调试、性能提升、程序移植和健壮性等方面成为高手;建立扎实的计算机系统概念,为后续的OS、编译、体系结构等课程打下坚实基础
以 IA-32+Linux+C+gcc 为平台
主要内容:描述程序执行的底层机制
思路:
在程序与执行机制之间的建立关联,强化理解而不是记忆
课程内容概要
/*---sum.c---*/
int sum(int a[ ], unsigned len)
{
int i,sum = 0;
for (i = 0; i = len–1; i++)
sum += a[i];
return sum;
}
/*---main.c---*/
int main()
{
int a[1]={100};
int sum; sum=sum(a,0);
printf(“%d”,sum);
}
链接(linker)和加载(第7章)
程序执行(存储器访问)(第7章)
异常和中断处理(第8章)
输入输出(I/O) (第10章)
(第3章)
课程内容概要
使学生清楚理解:
计算机是如何生成和运行可执行文件的!
重点在高级语言以下各抽象层
C语言程序设计层
数据的机器级表示、运算
语句和过程调用的机器级表示
指令集体系结构(ISA)和汇编层
指令系统、机器代码、汇编语言
微体系结构及硬件层
CPU的通用结构
层次结构存储系统
操作系统、编译和链接的部分内容
课程内容概要
内容组织:
文档评论(0)