20145302张薇 《信息安全系统设计基础》课程总结
20145302张薇 《信息安全系统设计基础》课程总结
每周学习内容总结
-
第0周学习内容:预习课本以及安装linux虚拟机学习环境
-
第1周学习内容:学习一些核心的Linux命令,了解Linux操作系统
-
第2周学习内容:熟悉gcc以及gdb的使用,学习库与链接的概念
-
第3周学习内容:学习信息的表示和处理,有符号数、无符号数、浮点数等
-
第5周学习内容:学习Linux中汇编的一些基础知识
-
第6周学习内容:安装Y86处理器,了解ISA抽象
-
第7周学习内容:理解局部性原理和缓存思想在存储层次结构中的应用
-
第8周学习内容:期中总结,查漏补缺
-
第9周学习内容:学习Unix I/O并且了解Unix I/O的使用情况
-
第10周学习内容:实践常用指令的代码,加深对指令的理解
-
第11周学习内容:理解进程和并发,了解异常及其种类
-
第12周学习内容:复习理解前三周的代码
-
第13周学习内容:掌握并发的方式,线程控制及相关系统调用
-
第14周学习内容:学习虚拟存储器
实验报告链接汇总
代码托管链接
-
注:我有两个Linux项目
-
代码git log结果:
- 代码量统计:
- 代码驱动的学习做到没有?
答:做到了。在进行代码学习时,先要有一个良好的框架,理好思绪,先看代码自行理解一波含义,预测一下代码的结果,随后再运行查验,这样才能发现处理问题。 - 我们在进行代码学习时,运行完代码后可以删改一些代码的内容来查看代码的运行结果有何改变,这样可以更好的理解代码的含义。
- 我们在进行代码实践时,一定要先了解代码再运行,因为比如线程代码运用到了库的知识,我们不能用简单的gcc格式直接编译,否则是不能成功的。
第0周问题回答
-
第一章
操作系统的核心抽象有哪些?
答:操作系统提供三个基本的抽象:1)文件是对I/O设备的抽象;2)虚拟存储器是对主存和磁盘的抽象;3)进程是对处理器、主存和I/O设备的抽象。 -
第二章
无符号数的编码是什么?
答:无符号数编码是基于传统的二进制表示法,表示大于或者等于零的数字。 -
第三章
栈帧结构是什么?
答:IA32程序用程序栈来支持过程调用。为单个进程分配的那部分称为栈帧,栈用来传递参数、存储返回信息、保存寄存器以及本地存储。 -
第四章
如何比较IA32和Y86的指令编码?
答:与IA32相比,Y86指令集的数据类型、指令和寻址方式都要少一些,Y86的字节级编码也比较简单。 -
第五章
优化程序性能的技巧有哪些?
答:1)优化编译器的能力和局限性;2)编程时消除循环的低效率;3)消除不必要的存储器引用;4)进行程序变换:循环展开,即通过增加每次迭代计算的元素的数量,减少循环的迭代次数;5)提高程序并行性。 -
第六章
存储器的层次结构是什么样的?
答: -
第七章
为了构造可执行文件,链接器需要完成什么任务?
答:有两个主要任务:1)符号解析;2)重定位。 -
第八章
异常控制流是什么?
答:异常控制流是操作系统用来实现I/O、进程和虚拟存储器的基本机制。 -
第九章
如何理解端对端这个概念?
答:端对端是针对网络中传输的两端设备间的关系而言的。端对端传输指的是在数据传输前,经过各种各样的交换设备,在两端设备间建立一条链路,就象它们是直接相连的一样,链路建立后,发送端就可以发送数据,直至数据发送完毕,接收端确认接收成功。 -
第十章
如何进行文件的输入与输出?
答:应用程序通过分别调用read和write函数来执行输入和输出。 -
第十一章
如何将系统应用到网络?
答:每个网络应用都是基于客户端-服务器模型的,通过网络编程来实现。 -
第十二章
并发编程是什么?
答:可以使用进程或I/O多路复用或线程来实现应用级程序并发的编程。
关于回答自己的预习提问的感想
- 我发现第0周提出的问题大都不是该章学习的重点内容,只是一些基础和概念的理解。
- 在通过这15周的学习后我发现认真读书和粗略看书真的是两种不同的体验,书要细读才能学到知识。
项目加分
优秀作业
-
第2周学习内容:http://www.cnblogs.com/5302v/p/5907521.html:熟悉gcc以及gdb的使用,学习库与链接的概念
-
第6周学习内容:http://www.cnblogs.com/5302v/p/5991302.html:安装Y86处理器,了解ISA抽象
-
第8周学习内容:http://www.cnblogs.com/5302v/p/6036373.html:期中总结,查漏补缺
-
第10周学习内容:http://www.cnblogs.com/5302v/p/6083688.html:实践常用指令的代码,加深对指令的理解
-
第11周学习内容:http://www.cnblogs.com/5302v/p/6105536.html:理解进程和并发,了解异常及其种类
扇贝单词
- 通过扇贝背单词拼写记忆的方式,一学期下来让我增加了一些词汇量,而且小组制度能够提醒自己坚持下来,有用。
项目
课程收获与不足
收获
- 学习了新的知识,熟悉了Linux系统的一些基本命令的使用,发现其实命令行挺好用的,有时候比图形界面好用的多。
- 对于markdown的编辑格式可以更熟练的运用了,尤其是在进行gdb的调试后给出堆栈的表格变化后,发现表格的编辑也不是特别的繁琐。
- 学习方法,我们学习新的知识,有四点很重要,第一,学习基础知识;第二,一定动手实践;第三,遇到问题积极解决不闲置;第四,重要知识勤记录。好的学习方法使我们一生受益。
不足
- 一学期下来,不是所有的代码都能理解通。
- 每周有错题,对答案后知道对的答案有时候不能理解,会死记硬背。
- 学习进度条没有弄,书上的基础知识看了过后过几天就记不清了,需要反复看。
给学弟学妹们的学习建议
- 不要拖,每天学习一点比堆积到最后的效果要好,而且有利于自己安排时间。
- 博客主要记录自己认为重要的知识,和遇到的问题、解决方式,自己在学习时的分析。
- 学习代码时要先理解代码再运行测验能帮助我们深入理解代码是如何运行的。
- 学习课本知识最重要的是理解,因为每周的测试题有些并不是书上原文就能找到的,光会做算术题可不够。
- 基础知识要打牢,不要有抵触情绪,知识都是自己的,而且学习方法是很好的,要克服自己的懒惰,心态摆正,为自己学。
问卷调查
- 你平均每周投入到本课程多长时间?
答:平均每周10个小时。 - 每周的学习效率有提高吗?
答:学习效率有提高,因为有老师的重点内容导读,知道侧重点。 - 学习效果自己满意吗?
答:有时候还挺满意的,感觉学习了不少;有时候就不满意,怪自己懒惰的囫囵吞枣。 - 课程结束后会继续一周至少一篇博客吗?
答:我深知自己一周至少发一篇博客做不到,但是如果有重要的学习教程我会总结一篇博客,万一日后自己忘了还可以用到,挺不错的。 - 你觉得这门课老师应该继续做哪一件事情?
答:老师继续每周进行答案的讲解我感觉挺有用的! - 你觉得这门课老师应该停止做哪一件事情?
答:想了半天,突然发现,真不知道该停止哪个,都有用。 - 你觉得这门课老师应该开始做什么新的事情?
答:实验的代码不容易理解,老师您可以上课顺带点拨一番。