20145210《信息安全系统设计基础》课程总结
每周作业链接汇总
·第0周作业:安装虚拟机,预习本学期学习内容
·第1周作业:了解linux操作系统,掌握核心的linux命令
·第2周作业:熟悉Linux系统的开发环境,学会基本操作,掌握gcc编译器及gdb调试技术
·第3周作业:计算机中各种数的表示和运算
·第5周作业:学习X86汇编基础
·第6周作业:了解ISA抽象,安装Y86处理器
·第7周作业:存储器系统的了解、局部性原理和缓存思想的应用
·期中总结:对学期内容进行阶段性总结
·第9周作业:掌握Unix/Linux系统级I/O、RIO以及I/O重定向的方法
·第10周作业:实践常用指令的代码,加深对指令的理解
·第11周作业:分辨数组指针、指针数组、函数指针、指针函数的区别,理解异常的种类、进程和并发的概念
·第12周作业:复习前三周的知识,深入理解实践代码
·第13周作业:掌握并发的方式,线程控制及相关系统调用
·第14周作业:学习虚拟存储器的概念及其作用
实验报告链接汇总
代码托管链接
·git log格式化日志截图
·代码量汇总
·代码托管二维码
·代码驱动的学习做到没有?
我觉得我做到了代码驱动的学习。首先,在本学期,我对于老师的代码驱动的程序设计学习这篇博客进行了学习,跟着博客一步一步做下来,将自己的代码进行整理,并按照老师博客里的要求进行分类,这让我能够轻松管理自己的代码,找代码一找就能找到。同时,我认为代码驱动的学习不仅仅是对于代码的运行,更重要的是对于代码的学习与理解,在本学期的学习过程中,我越来越发现先将代码看懂,预测运行结果,再在虚拟机里真正运行代码,加深自己的理解是一个高效、高质量的学习方法。
·编程的智慧
我们编程的脚步大多都是一开始编简单的短代码,随着我们不断地练习,不断地提高,代码变得越来越长,之后我们再对自己的代码进行推敲、精简、优化,代码行数又变短了,最后呈现出一个完美的、直观的、优雅的代码。编程的道路没有捷径,只有不断地练习,坚持敲代码,积极地反思推敲才能越走越远,知道了优雅程序的的标准,也必须要通过不断的实践积累自己的经验,慢慢拥有自己的编程风格。只编程不思考是不行的,仅仅拥有理论知识不进行实践也是行不通的,一分耕耘一分收获,边思考,边练习,边总结才能真正掌握编程的智慧。
·实践上的经验教训
对于Linux的学习,只运行代码不理解代码是不行的,不同的代码运行的指令也不尽相同,只有好好理解代码之后才能运行出正确的结果。对于老师布置的代码,不认真理解就一下子全部编译运行是不明智的,既浪费了时间有没有真正学到东西,有的时候运行指令错误也会使运行结果出现问题,与其上网寻求解决办法不如不踏踏实实地看懂代码,既能解决眼前案的问题也能学到东西,让自己对这部分印象深刻。
git也是能够帮助我们学习的好办法,每次代码运行成功就git add .一下,在git commit里附上代码的含义,让代码变得清晰,当我们再回过头来看这些代码的时候能够对每个代码的作用一目了然。
关于第0周作业中预习课本提出的问题
第一章 存储器中的寄存器、主存、高速缓存、二级存储是怎样运行的?
·在计算机系统中存储层次可分为高速缓冲存储器、主存储器、辅助存储器三级。高速缓冲存储器用来改善主存储器与中央处理器的速度匹配问题。辅助存储器用于扩大存储空间。主存储器工作时,首先由中央处理器将地址送至存储器的地址寄存器并译码,同时接收由中央处理器发出的"读"或"写"命令。于是,存储器就按照地址译码的输出确定相应的存储单元。如果是读命令,则将存储单元的代码读出并送往代码缓冲寄存器,如果是写命令,代码缓冲寄存器接收新代码,接着写入存储体。
第二章 IEEE浮点是什么?
·IEEE定义了多种浮点格式,但最常见的是三种类型:单精度、双精度、扩展双精度。
第三章 过程调用与栈帧结构、转移控制的关系?
·大多数CPU上的程序实现使用栈来支持函数调用操作。栈被用来传递函数参数、存储返回信息、临时保存寄存器原有值以备恢复以及用来存储局部数据。
第四章 Y86如何顺序实现?
·Y86将处理组织成阶段包括取指、译码、执行、访问、写回、更新PC
第五章 并行性是什么?
·并行性是指计算机系统具有可以同时进行运算或操作的特性,在同一时间完成两种或两种以上工作。它包括同时性与并发性两种含义。同时性指两个或两个以上事件在同一时刻发生。并发性指两个或两个以上事件在同一时间间隔发生。
第六章 什么是储存器山?
·存储器山是一种综合研究存储器层次结构的工具。它反映了存储器层次结构中不同层次的带宽。也反映了具有不同的时间局部性与空间局部性的程序的性能。通过分析存储器山的数据,还可以看出存储器系统的部分硬件参数。
第七章 如何从应用程序加载和链接共享库?
· Linux中存在两种库类型,一种称之为静态库。以.a 后缀。这种库本身在编译成目标文件的时候是和应用程序链接在一起的,所以编译出来的应用程序相对较大。第二种称之为动态链接共享库。 以.so为后缀。虽然这种库形式只有一种,但是在使用中可以有两种形式:
·运行(runtime)时动态链接,共享库在编译器编译时被链接,但并没有包括在应用程序中(目标程序中),只在运行时链接。而且是必要的,如果没有共享库,程序将跑不起来。
·运行中使用动态链接装载器中的函数来进行动态的加载、卸载或者链接。
第八章 回收子进程的具体过程?
·一般的方式是父进程负责来回收子进程的资源,采用wait()和waitpid()函数,前者只能只能阻塞的方式等待子进程从其它状态变为僵尸态,后者可以以阻塞的方式或者轮询的方式来等待子进程的状态改变,还有一种方式,父进程显式的调用signal(SIGCHLD, SIG_IGN),将SIGCHLD 信号的处理动作设置为SIG_IGN,这样fock出来的子进程在终止时会自动清理掉,不会产生僵尸进程,也不会通知父进程
第九章 为什么要使用动态存储器分配?
·动态内存分配,可以自由的分配指定大小的内存空间。当程序运行时,程序员并不清楚某一数据需要的具体内存空间大小时,可以使用动态分配
第十章 I/O重定向是什么?
·I/O重定向是一个过程,这个过程捕捉一个文件、或命令、或程序、或脚本、甚至代码块(code block)的输出,然后把捕捉到的输出,作为输入发送给另外一个文件、或命令、或程序、或脚本
第十一章 套接字接口具体的功能是什么?
·套接字接口利用下层的网络通信协议功能和系统调用实现实际的通信工作
第十二章 并发编程的作用是什么?
·使计算机能够同时处理多个事情,提高效率
关于回答自己的预习提问的感想
第0周我提的问题大多都是看着教材目录提出来的,当时看着目录觉得看不懂全都是问题,现在回答自己的这些问题觉得有一些问题实在是太简单太基础了,因为刚开始没有进行深入学习,对一些很基础的内容就已经感觉看不懂了,对于重点就更是碰不到了,还好在每周的学习任务中老师给出了学习重点,这才让我在本学期的学习过程中找到学习的主线,让自己的学习更有成效
课程收获
·本学期这门课我最大的收获应该是在一个学期都一直保持着学习的状态。在之前的学期里我基本上都是采用期末突击的学习方式,这种学习方式很难真正学习到什么东西,很多知识点期末考完试就忘记了,但这个学期我每周平均花费三十个小时来学习这门课程,这不仅保持了我学习的连贯性,也让我一直保持着学习的状态,不仅仅是对于这一科,对于其他学科的学习也是很有帮助的。
·我之前一直习惯看书学习这种学习方式,之前其中总结的时候也写过,老师也说不能仅仅局限于看教材一种学习方法,在这个学期每一周的任务都是理论学习与实践相结合的,刚开始觉得有点吃力,后来慢慢习惯了这种学习方法,到现在每次学习的时候看到代码就想着敲一下运行一下,觉得这学期真的改变了我的一些学习习惯,让我的学习能够更加多元化,这也是对于我将来学习的一种帮助。
· 上学期和这学期的课程让我对于博客有了新的看法。之前我对于博客的印象就是在上面分享自己的生活,和微博朋友圈差不多,通过这两个学期的学习,上网查资料等等,我发现博客是一个很好的交流学习的平台,很多很好的知识点、操作教程都是在博客里的,查资料的时候偶尔还会搜到我们学校同学发表的博客,内心也是很有成就感的
自己还需改进的地方
·由于一开始没有认真进行实践,导致自己一开始学习的时候觉得很吃力,良好的学习习惯要从一开始就保持
·在之后的学习过程中还是要好好地分配自己的时间。本学期学习任务挺重的,有的时候会临近周末才开始学习,觉得任务量太大,以后还是要合理分配学习时间,让自己一直保持一个好的学习状态
给学弟学妹的建议
·学弟学妹下个学期要开始学习Java这门课程,每周一篇博客一章教材内容学习的任务量一开始会觉得有点吃力,建议学弟学妹一定要安排好自己的学习时间,提前做好学习计划,不要临近周末才开始学习,要慢慢适应并接受这种学习方法。
·一定要端正自己的学习态度,博客是学习过后对于自己学习内容的总结,不要把它当成负担每周应付了事
·实践是很重要的,按照老师的要求一步一步地学习实践还是很有趣的
问卷调查
1.你平均每周投入到本课程多长时间?
·基本上都是30个小时
2.每周的学习效率有提高吗?
·看了老师每周给的学习重点之后学习效率有很大提高
3.学习效果自己满意吗?
·一般
4.课程结束后会继续一周至少一篇博客吗?(如果能做到,毕业时我把你的博客给你集结成一本书送给你作纪念)
·博客确实是一种高效的分享学习心得以及成果的途径,不过对于我来讲无论是学习还是生活我都还是不太适应写博客这种方式,如果想要记录的话我也会选择用笔记或者日记
5.你觉得这门课老师应该继续做哪一件事情?
·每周都有大量的需要同学们自学的内容,我觉得老师应该继续明确地给出每周重点,这样面对大量的学习任务同学们在学习的过程中也能有学习的侧重点,能够大大提高学习效率
6.你觉得这门课老师应该停止做哪一件事情?
·学期开始就明确加扣分规则,明确分值和标准,定好了之后就不要再随意加分或者扣分了
7.你觉得这门课老师应该开始做什么新的事情?
·博客学习并不适用于所有同学,对于部分同学来讲同样的内容做笔记比写博客要高效的多,如果可以的话希望能够让同学们自主选择学习方式,每周有学习的记录就可以了