《计算机系统》加分项目

目录

  • 《计算机系统》加分项目

    • 《CSAPP:深入理解计算机系统》

      • 数据实验
      • 二进制炸弹实验
      • 缓冲区溢出实验
      • 体系结构实验
      • 性能实验
      • cache实验
      • shell实验
      • malloc实验
      • 代理实验

《计算机系统》加分项目

过去,凡是计算机专业人员都对计算机的工作原理和工作方式了如指掌。计算机体系中的硬件、软件、编译器以及操作系统之间的交互既简单又透明,因此要把握计算机系统大局观并非难事。然而随着现代计算机技术的日趋复杂,这种明晰性不复存在:计算机科学领域里面大多数基本思想和技术都被隐藏在众多抽象接口以及私有实现的层面之下。这种复杂性导致了无法避免,的结果,即领域专业化;这使得多门计算机科学领域应运而生, 每个领域只涵盖整个学科中的某一个方面。

计算机专业、信息安全专业、网络空间安全专业的学生识木而不知林,疲于埋头学习程序设计、各种理论以及工程知识,却失去了对计算机系统整体的把握和理解,未曾停下来欣赏计算机系统大局观的美景。这个大局观为我们展示的是:硬件系统和软件系统如何经由隐藏的抽象、接口以及基于各种约定的实现所编织起来的网,从而紧紧地关联在一起。由于没有从表及里地透彻领略这个繁复大局观的魅力,使很多学生和计算机、信息安全从业人员产生了不安的感觉,因为他们并没有完全透彻理解和掌握计算机的内 部工作原理。

理解计算机工作原理的最好方法就是亲自动手,或者从零开始构建计算机系统,或者基于各种计算机系统深入了解底层,这些知识并不难,只是太底层,导致不少学生很畏难。

我读书的时候,计算机硬件集成度比较低,声卡、显卡、网卡等都是分离的,那时候的学生多有拆卸机器的经验,装卸内存条、硬盘也经常操作,组装计算机的过程就对计算机硬件有比较好的了解,现在的主板集成度已经很高了,很多计算机专业、信息安全专业、网络空间安全专业的学生甚至都没有打开过计算机,看看内部都有什么。我读书的时候,操作系统主要还是DOS系统,你想玩个游戏,不会写批处理文件,不会配置内存都玩不好,那时候操作系统更新也比较快,系统稳定性也不好,漏洞很多,经常需要安装系统,现在的学生做这些工作也很少了。

当然,现在有各种单片机,DSP,嵌入式系统开发板,FPGA开发板等,组装一个计算机系统并不是太难,特别是现在有树莓派、Arduino开发板,可是一旦涉及到硬件都要花钱买硬件。

如何不花钱学习计算机系统,我推荐几个软计算机系统供大家参考,这些虚拟机的深入研究能帮助大家深入理解计算机系统,相关学习作为学有余力的学生的加分项目。

  • 《CSAPP:深入理解计算机系统》第二版第4章提供一个Y86模拟器,类似intel的IA32,第三版第4章提供一个Y64-64模拟器,类似intel的x86-64,
  • 《计算机系统要素》中提供了一个计算机Hack,这台计算机是从NAND门开始一步一步搭建起来的,涉及到硬件构建、机器语言、汇编语言、高级语言、操作系统、编译原理
  • 《计算机系统》第4版提供了一个虚拟机Pep/8,第5版提供了一个虚拟机Pep/9.

《CSAPP:深入理解计算机系统》

实验详细细节参考Lab Assignments.每个实验都要提交相关总结博客链接,代码托管链接,并进行答辩

数据实验

  • 这个实验要求学生实现简单的逻辑和算术运算函数,但是只能使用一个
    非常有限的C语言子集。比如,只能用位级操作来计算一个数字的绝对值。这个实验可帮助学生了解C语言数据类型的位级表示,以及数据操作的位级行为。

二进制炸弹实验

  • 二进制炸弹是一个作为目标代码文件提供给学生的程序。运行时,它提示用户输入6个不同的字符串。如果其中的任何一个不正确,炸弹就会“爆炸”,打印出一条错误消息,并且在一个打分服务器上记录事件日志。学生必须过对程序反汇编和逆向工程来测定应该是哪6个串,从而解除各自炸弹的雷管,该实验能教会学生理解汇编语言,并且强制他们学习怎样使用调试器。

缓冲区溢出实验

  • 它要求学生通过利用一个缓冲区溢出漏洞,来修改一个二进制可执行文件的运行时行为。这个实验可教会学生栈的原理,并让他们了解写那种易于遭受缓冲区溢出攻击的代码的危险性。

体系结构实验

  • CSAPP第4章的几个家庭作业能够组合成一个实验作业,在实验中,学生修改处理器的HCL描述,增加新的指令,修改分支预测策略,或者增加、删除旁路路径和寄存器端口。修改后的处理器能够被模拟,并通过运行自动化测试检测出大多数可能的错误。这个实验使学生能够体验处理器设计中今人激动的部分,而不需要掌握逻辑设计和硬件描述语言的完整知识。

性能实验

  • 学生必须优化应用程序的核心函数(比如卷积积分或矩阵转置)的性能,这个实验可非常清晰地表明高速级存的特性,并带给学生低级程序优化的经验·

cache实验

  • 这个实验类似于性能实验,学生编写一个通用高速缓存模拟器,并优化小型矩阵转置核心函数,以最小化对模拟的高速缓存的不命中次数。我们使用valgrind为矩阵转置核心函数生成真实的地址访问记录

shell实验

  • 学生实现他们自己的带有作业控制的 Unix shell程序,包括Ctrl+C和Ctrl+Z按键,fg、bg和job命令。这是学生第一次接触并发,并且让他们对Unix的进程控制、信号和信号处理有清晰的了解。

malloc实验

  • 学生实现他们自己的ma11o、free和rea1loc(可选)版本。这个实验可让学生们清晰地理解数据的布局和组织,并且要求他们评估时间和空间效率的各种权衡及折中

代理实验

  • 实现一个位于浏览器和万维网其他部分之间的并行Web代理。这个实验向学生们揭示了Web客户端和服务器这样的主题,并且把课程中的许多概念联系起来,比如字节排序、文件1O、进程控制、信号、信号处理、内存映射、套接字和并发。学生很高兴能够看到他们的程序在真实的Web浏览器和Web服务器之间起到的作用。


欢迎关注“rocedu”微信公众号(手机上长按二维码)

做中教,做中学,实践中共同进步!




如果你觉得本文对你有帮助,请点一下左下角的“好文要顶”和“收藏该文



《计算机系统》加分项目

原文地址:https://www.cnblogs.com/rocedu/p/11684156.html

时间: 2024-10-03 14:56:31

《计算机系统》加分项目的相关文章

[教育部文件]教育部 国家民委 公安部 国家体育总局 中国科学技术协会关于进一步减少和规范高考加分项目和分值的意见

  各省.自治区.直辖市高等学校招生委员会,教育厅(教委).民(宗)委(厅.局).公安厅(局).体育局(体委).科协(各全国学会.协会.研究会),有关部门(单位)教育司(局): 为贯彻落实<国务院关于深化考试招生制度改革的实施意见>(国发[2014]35号),进一步促进教育公平,提高人才选拔水平,现就进一步减少和规范高考加分项目和分值提出如下意见: 一.总体要求 减少和规范高考加分工作要全面贯彻党的教育方针,促进素质教育实施,科学合理地体现考生的相关特长.突出事迹.优秀表现等,引导每一个学生全

《前端面试加分项目》系列 企业级Vue瀑布流

本文 GitHub github.com/ponkans/F2E 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习.文末有福利~~ 前言 接水怪又来了,没有花里胡哨的文字,只有心中那个还未完成的梦想??作为一个在互联网公司面一次拿一次 Offer 的面霸,打败了无数竞争对手,硬核的我带着硬核的文章,他来了!!~ [项目地址在文末哦??????] 介绍 延续接水怪的传统,每篇原创都会在公众号抽取一位小伙伴,送上前端经典书籍一本[文末抽取] 春招[

JAVA基础开发实例,适合初学者编写的第一个项目(加分项目)

package test; import java.util.Scanner; /*功能:输入一个数,并显示这个数,不足60的,进入循环,每次循环加3分,并定义一个变量记录加了几次 * * @author HYF * */ public class JiaFen { public static void main(String[] args) { Scanner input=new Scanner(System.in);//创建Scanner System.out.print("请输入成绩:&q

20155236 《信息安全系统设计基础》课程总结

20155236 <信息安全系统设计基础>课程总结 每周作业链接汇总 20155236 <信息安全系统设计基础>第1周学习总结 简要内容:GCC编译器,库的链接 二维码: 20155236 <信息安全系统设计基础>第2周实践博客 简要内容:vim学习,gcc.gdb的使用 二维码: 20155236 <信息安全系统设计基础>第3周学习总结 简要内容:信息的表示和处理,对信息在计算机中的存储进行介绍 二维码: 20155236 <信息安全系统设计基础&g

今年我省招生录取优惠政策和照顾政策有哪些

第一类:奖励性加分(同一考生如契合多项加分投档条件的,只能取其间最高一项分值,添加的分值不得超越20分). (1)应届高档中等教校园园结业生在高档中等教学阶段被评为省级优秀学生者能够加15分. (2)应届高档中等教校园园结业生在高档中等教学阶段思想政治道德方面有杰出业绩且由省级以上教学行政部门命名表彰者能够加20分. (3)应届高档中等教校园园结业生在高档中等教学阶段取得全国中学生学科(数.理.化.生物.信息科学)奥林匹克比赛全国决赛一等奖者能够加15分,二.三等奖者能够加10分;取得全国青少年

20145234《信息安全系统设计基础》课程总结

1.每周作业链接汇总 第零周作业:http://www.cnblogs.com/taigenzhenjun/p/5863056.html Linux系统安装 第一周作业:http://www.cnblogs.com/taigenzhenjun/p/5881117.html Linux核心命令 第二周作业:http://www.cnblogs.com/taigenzhenjun/p/5907272.html Vi的基本操作 第三周作业:http://www.cnblogs.com/taigenzh

作业备忘

作业提交截止时间 20161201 09:00. 加分项目 加分的内容包括不限于: 读书报告.个人项目和结对项目中未完成的功能.产品对比分析.教师将根据完成质量加分.如果你对想写的内容是否加分有疑虑,可以与教师联系后再投入精力.所有同学无论成绩高低均可以做加分项提高自己的成绩. 补的作业如果超出截止期限1周,不计成绩:补的作业如果未超过截止期限1周,把此前给的负分改为0分. 问:关于加分作业的读书报告,为什么有的人分数高,有的人分数低 答: 作业要求中提到"加分的内容包括不限于: 读书报告.个人

第十九周 银行系统(链表、二进制、业务明细)

基本要求:定义了用户类(User)和银行类(Bank),用成员函数实现各种功能,多文件组织程序,能用文本文件存取数据(如示例中给出的技术): 拓展方向: 序号 加分项目 细       则 1 改变Bank类中用户信息的存储方式 用对象的指针数组存储(User *user[upNum]) 或者用动态数组(User *users,空间用new分配) 2 功能扩充 按银行实际业务的要求,增加User类中的数据成员,能够记录身份证号.家庭住址等信息,并在相关业务中使用这些数据. 记录用户的每一笔业务,

20145207 2016-2017《Java程序设计》课程总结

20145207 2016-2017<Java程序设计>课程总结 目录 一.每周作业及实验报告链接汇总 二.关于博客 自认为写得最好一篇博客是?为什么? 作业中阅读量最高的一篇博客是?谈谈经验. 作业中与师生交互最多的一篇博客是?谈谈收获. 三.代码托管 给出statistic.sh的运行结果,说明本学期的代码量目标达到没有? 加点代码,改点代码是理解的最好方式,参考编程的智慧,谈谈你的心得. 积极主动敲代码做到没?教材实践上有什么经验教训? 四.课堂项目实践 课堂实践链接 课堂实践对提高应用