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

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

每周作业链接汇总

第0周作业:使用虚拟机VirtualBox安装Ubuntu; 预习Linux基础入门

第一周作业:了解Linux操作系统;掌握核心的Linux命令;使用Linux中命令

第二周作业:熟悉Linux系统下的开发环境(vim,gcc,gdb,makefile)

第三周作业:二进制;布尔运算在C语言中的应用;有符号整数、无符号整数、浮点数的表示;补码

第五周作业:掌握X86汇编基础,能够阅读(反)汇编代码

第六周作业:掌握ISA

第七周作业:了解常见的存储技术(RAM、ROM、磁盘、固态硬盘等);局部性原理;高速缓存的原理和应用

第八周作业:复习总结

第九周作业:掌握系统编程和系统调用的概念;掌握Unix/Linux系统级I/O

第十周作业:掌握系统编程和系统调用;掌握Unix/Linux系统级I/O

第十一周作业:掌握进程创建和控制的系统调用及函数使用

第十二周作业:掌握两个重要命令;代码

第十三周作业:掌握三种并发的方式:进程、线程、I/O多路复用

第十四周作业:虚拟存储器的概念和作用;掌握动态存储器分配的方法

实验报告链接汇总

实验一 开发环境的熟悉

实验二 固件设计

实验三 实时系统的移植

实验四 外设驱动程序设计

实验五 简单嵌入式WEB服务器实验

代码托管链接和二维码:

▪ 截图 git log --pretty=format:"%h - %an, %ar : %s" 的结果

▪	代码量汇总(如果目录结构 是按代码驱动的程序设计学习要求建立的,在项目目录下用wc -l find src -name *.c命令,有截图)

▪	代码驱动的学习做到没有?
基本做到了,通过代码的编译执行,更有利于我们深入理解代码本身,并且对代码中的知识点也有很好的巩固作用

▪ 加点代码,改点代码是理解的最好方式,参考编程的智慧,谈谈你的心得
通过自己对代码的修改,会发现具体到哪些代码有什么作用,删除或修改会对最后结果的有何影响,让代码变得活了起来

整体评价一下第0周作业中自己提出的问题是不是抓住了学习重点

总体来说,我所提出的问题还是太表面化了,没有对实质内容有所深层理解

回答一下第0周作业中自己提出的问题

1.计算机系统自己没有储备的概念
现在看来,以前对例如进程、线程等没有概念
2.数字是如何表示的
数据在计算机中的存储是以二进制形式进行的,存储时的字节顺序有大端、小端两种
3.机器级表示各个部分做总结
•指令集体系结构定义了处理器状态、指令的格式,以及每条指令对状态的影响
•机器级程序使用的存储器地址是虚拟地址
•IA32程序用程序栈来支持过程调用。机器用栈来传递过程参数、存储返回信息、保存寄存器用于以后恢复,以及本地存储
•程序寄存器组是唯一能被所有函数共享的资源
•call指令的效果是将返回地址入栈,并跳转到被调用过程的起始处
ret指令从栈中弹出地址,并跳转到这个位置
leave指令 使栈做好返回的准备
4.搞清楚y86与流水线
对于Y86来说,状态就是这几种: 寄存器、存储器、条件码、PC、程序状态;在Y86当中,寄存器依旧是8个,每一个寄存器可以存储一个字,也就是一个32位二进制。条件码是一个一位二进制的寄存器,保存着最近的算术或逻辑运算所造成的影响的信息。PC则是程序计数器,记录当前正在执行的指令的地址。
存储器则是一个很大的字节数组,Y86的程序可以使用虚拟地址(类似于数组的下标)来访问存储器,硬件和操作系统会将虚拟地址翻译为实际的地址。最后一个程序状态(stat),它则代表着程序的运行情况

5.优化程序性能几个方面的联系及异同
性能优化有三个层次:
系统层次
算法层次
代码层次
系统层次关注系统的控制流程和数据流程,优化主要考虑如何减少消息传递的个数;如何使系统的负载更加均衡;如何充分利用硬件的性能和设施;如何减少系统额外开销(比如上下文切换等)。
算法层次关注算法的选择(用更高效的算法替换现有算法,而不改变其接口);现有算法的优化(时间和空间的优化);并发和锁的优化(增加任务的并行性,减小锁的开销);数据结构的设计(比如lock-free的数据结构和算法)。
代码层次关注代码优化,主要是cache相关的优化(I-cache,D-cache相关的优化);代码执行顺序的调整;编译优化选项;语言相关的优化技巧等等。
6.分清存储器层次结构
按照与CPU的接近程度,存储器分为内存储器与外存储器,简称内存与外存。内存储器又常称为主存储器(简称主存),属于主机的组成部分;外存储器又常称为辅助存储器(简称辅存),属于外部设备。CPU不能像访问内存那样,直接访问外存,外存要与CPU或I/O设备进行数据传输,必须通过内存进行。在80386以上的高档微机中,还配置了高速缓冲存储器(cache),这时内存包括主存与高速缓存两部分。对于低档微机,主存即为内存
7.链接的使用
链接(linking)是将各种代码和数据部分收集起来并组合成为一个单一文件的过程,这个文件可被加载(或被拷贝)到存储并执行
8.异常控制流的产生与解决
现代操作系统通过使控制流发生突变来对系统状态做出反应,这些突变称为异常控制流
9.虚拟存储器的作用及问题
虚拟存储器:具有层次结构存储器计算机系统自动实现部分装入和部分替换功能能从逻辑上用户提供比物理贮存容量大得多寻址主存储器虚拟存储区容量与物理主存大小无关而受限于计算机地址结构和用磁盘容量
10.I/O分类及作用
I/O(input/output),即输入/输出端口。每个设备都会有一个专用的I/O地址,用来处理自己的输入输出信息。CPU与外部设备、存储器的连接和数据交换都需要通过接口设备来实现,前者被称为I/O接口,而后者则被称为存储器接口。存储器通常在CPU的同步控制下工作,接口电路比较简单;而I/O设备品种繁多,其相应的接口电路也各不相同,因此,习惯上说到接口只是指I/O接口
11.网络协议必须提供的基本能力
命名机制和传送机制
12.不同并发编程的使用
并行(Parallelized)代码可以在很多的不同的并发和交错并发的场景中执行,甚至是在相同的硬件配置中执行。所以,并行设计的一个很大的挑战就是确保其执行顺序的有效性和结果的正确性,否则就会长生不正确的结果。如果你需要以一种特殊的顺序或者代码的某些部分不能够同时执行,那么就有必要确保这些部分代码不能并行执行。你不能假设他们不能并发执行,因为你执行它很多次,它会产生希望的结果。当你为并发和并行而设计是,你必须确保你的思考的正确性

待及格管理制度的优缺点(进入过的同学必写)

▪ 待及格期间多发的博客列表
20145303 《信息安全系统设计基础》第5周学习总结(1)
对以往题目的总结反思及实践
20145303 《信息安全系统设计基础》第7周学习总结(1)
20145303缓冲区溢出漏洞实验
关于git pull时出现的问题及解决反思

▪ 优缺点
对自己学习的一个督促吧

课程收获与不足

▪ 自己的收获(投入,效率,效果等)
对linux系统有了自己的理解,同时,对c语言代码有很大的促进
▪ 自己需要改进的地方
还是对代码没有足够自己编写的能力

给开学初的你和学弟学妹们的学习建议

▪ 如果重新学习这门课,怎么做才可以学的更好
端正态度,对每个知识点都好好学习,能理解应用代码

问卷调查

▪ 你平均每周投入到本课程多长时间?
大于两天
▪ 每周的学习效率有提高吗?
有的
▪ 学习效果自己满意吗?
一般般
▪ 课程结束后会继续一周至少一篇博客吗?(如果能做到,毕业时我把你的博客给你集结成一本书送给你作纪念)
看情况吧
▪ 你觉得这门课老师应该继续做哪一件事情?
每周考试
▪ 你觉得这门课老师应该停止做哪一件事情?
没想出来
▪ 你觉得这门课老师应该开始做什么新的事情?
课堂内容再丰富些

我的总结的链接和二维码

我的链接

posted @ 2016-12-25 18:13  20145303刘俊谦  阅读(210)  评论(2编辑  收藏  举报