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

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

每周做业连接汇总

- 第一周做业:

  1. 简要内容:教材第1、七章学习总结

- 第二周做业:

  1. 简要内容:myod实现

- 第三周做业:

  1. 简要内容:教材第二章学习总结

- 第五周做业:

  1. 简要内容:教材第三章学习总结及mybash实现
  2. 二维码:
    1. 教材第四章学习总结
    html

    2. mybash实现
    ![](http://images2017.cnblogs.com/blog/1065404/201712/1065404-20171228001041941-1355853709.png)

- 第六周做业:

  1. 简要内容:学习系统调用并实现mybash

- 第七周做业:

  1. 简要内容:教材第四章学习总结

- 第八周做业:

  1. 简要内容:课上练习3的daytime服务器分别用多进程和多线程实现成并发服务器并测试以及第八周学习总结
  2. 二维码
    1. 第八周课下做业
    java

    2. 第八周学习总结

- 第九周做业:

  1. 简要内容:mypwd的实现以及第九周学习总结
  2. 二维码
    1. 第九周课下做业
    linux

    2. 第九周学习总结

- 第十周做业:

  1. 简要内容:第六章课上测试

- 第十一周做业:

  1. 简要内容:第九章学习总结

- 第十三周做业:

  1. 简要内容:学习第5章总结

- 第十四周做业:

  1. 简要内容:学习第12章总结

实验报告连接汇总

- 实验一

  1. 实验名称:熟悉开发环境
  2. 简要内容:熟悉开发环境

- 实验二

  1. 实验名称:固件程序设计
  2. 简要内容:固件程序设计:
    1. 1-MDK
    2. 2-LED
    3. 3-UART
    4. 4-国密算法

- 实验三

  1. 实验名称:实时系统
  2. 简要内容:实时系统:
    1. 实现mywc
    2. 使用多线程实现wc服务器并使用同步互斥机制保证计数正确

- 实验四

  1. 实验名称:外设驱动程序设计
  2. 简要内容:外设驱动程序设计

- 实验五

  1. 实验名称:通信协议设计
  2. 简要内容:openssl的安装和使用

代码托管连接

- 代码托管二维码:

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

- 代码量汇总提交statistics.sh的支持截图

  • 代码驱动的学习作到没有?
    • 下载安装使用it、vim、gdb、gdbc、使用dmesg调试。
  • 加点代码,改点代码是理解的最好方式,参考编程的智慧,谈谈你的心得
    • 我在学习的时候经常会以教材名称进行搜索,对这本教材的评价都是太过深奥,有一篇关于第11章的讲解中提到本书中的代码都是很是精华的大师之做。在简练的代码中实现了很是多的功能。在这样的代码的基础上修改确实很方便,可是不利于咱们本身编程。代码仍是应该本身去敲,再思考咱们和教材上的代码的差距,才能有所收获。
  • 实践上有什么经验教训git

    - 早作准备,有问题尽可能本身解决。说实在的,不少时候难题对于你们都是同样难,本身动手解决才能在下次遇到问题时,有办法解决
  • 总体评价一下第1周做业中本身提出的问题是否是抓住了学习重点
    • 基本上抓住了程序员

      - 回答一下第1周做业中本身提出的问题

      1.虚拟内存的含义和存在的意义算法

虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它一般是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在须要时进行数据交换。
   别称虚拟存储器(Virtual Memory)。电脑中所运行的程序均需经由内存执行,若执行的程序很大或不少,则会致使内存消耗殆尽。为解决该问题,Windows中运用了虚拟内存技术,即匀出一部分硬盘空间来充当内存使用。当内存耗尽时,电脑就会自动调用硬盘来充当内存,以缓解内存的紧张。若计算机缺少运行程序或操做所需的随机存储器 (RAM),则 Windows 会用之进行补偿。它将计算机的RAM和硬盘上的临时空间组合。当RAM运行速率缓慢时,它便将数据从RAM移动到称为“分页文件”的空间中。将数据移入与移出分页文件可释放RAM,以便完成工做。 通常而言,计算机的RAM越多,程序运行得越快。若计算机的速率因为RAM可用空间匮乏而减缓,则可尝试借增长虚拟内存来进行补偿。可是,计算机从RAM读取数据的速率要比从硬盘读取数据的速率快,于是扩增RAM容量(可加内存条)是最佳选择。

2.C语言中的位级运算的实际应用有什么编程

按位存储的数据的清零和置位

3.解释内存中的栈、堆和静态存储区的用法?vim

堆区:
    1.存储的所有是对象,每一个对象都包含一个与之对应的class的信息。(class的目的是获得操做指令)
    2.jvm只有一个堆区(heap)被全部线程共享,堆中不存放基本类型和对象引用,只存放对象自己.

    3.通常由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。

    栈区:
    1.每一个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象),对象都存放在堆区中
    2.每一个栈中的数据(原始类型和对象引用)都是私有的,其余栈不能访问。
    3.栈分为3个部分:基本类型变量区、执行环境上下文、操做指令区(存放操做指令)。

    4.由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.
    
    静态区/方法区:
    1.方法区又叫静态区,跟堆同样,被全部的线程共享。方法区包含全部的class和static变量。
    2.方法区中包含的都是在整个程序中永远惟一的元素,如class,static变量。

   3.全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另外一块区域。

4.Y86和X86的区别和联系数组

Y86是一个指令体系结构(ISA),它是一个写这本书的做者出的指令集.目的是为了让咱们更加清晰地了解ISA,就像在读编译原理的时候,做者会教你作个编译器是同样的道理.
   
   Y86和X86的区别在于,有的时候Y86须要两条指令来达到X86一条指令就能够达成的目的.
 
   好比对于X86指令中的addl $4,%ecx这样的指令,因为Y86当中的addl指令不包含当即数,因此Y86须要先将当即数存如寄存器,即便用irmovl指令,而后再使用addl来处理加法运算.
 
   总的来讲,Y86就是X86的一个缩减版,他的目的就是以简单的结构来实现一个处理器,帮助咱们了解处理器的设计和实现.

5.什么是循环展开?安全

循环展开就是经过在每次迭代中执行更多的数据操做来减少循环开销的影响。其基本思想是设法把操做对象线性化,而且在一次迭代中访问线性数据中的一小组而非单独的某个。这种思想主要适用于计算循环索引和测试循环条件的开销部分所占比重过大(相对于循环体内执行的指令而言),连续执行一组相同的指令,能提升指令的cache命中率。

6.对程序引用的局部性和局部存储有什么关系

虚拟存储管理的效率与程序局部性程序有很大关系。根据统计,进程运行时,在一段时间内,其程序的执行每每呈现出高度的局限性,包括时间局部性和空间局部性。
   一、时间局部性:是指若一条指令被执行,则在不久的未来,它可能再被执行。
   二、空间局部性:是指一旦一个存储单元被访问,那它附近的单元也将很快被访问。

7.使用动态静态连接库的缘由

避免重复写代码

8.系统调用是如何实现的

经过exev或者其余调用系统命令的函数

9.如何规避C程序中常见的与内存有关的错误?

类型 1:内存未分配成功,却使用了它。
   方   法:在使用以前检查指针是否为NULL。
             1)当指针p是函数的参数时,在函数入口处用语句assert(p!=NULL)进行断言检查。
             2)当使用malloc或new来申请内存时,应该用if(p != NULL)进行防错检查。
   类型 2:引用了还没有初始化的指针
   原   因:内存的缺省初始值到底是什么并无统一的标准,在使用以前都进行初始化。
              1)没有初始化的观念。
              2)内存的缺省值是未定义,即垃圾值。
   类型 3:越界操做内存
   原   因:内存分配成功且初始了,但越界操做是不容许的。
   例   如:在使用数组时常常发生下标“多1”或“少1”,特别是在for循环语句时。
   类型 4:忘记释放内存,形成内存泄漏。
   原   因:含有这种类型错误的函数,每被调用一次,就丢失一块内存。当内存充足时看不到这种错误带来的影响,当内存耗尽时系统提示:“内存耗尽”。所以,动态内存的申请与释放必须配对,程序中malloc与free的使用次数要相同。
   类型 5:释放了内存却继续使用它
   原   因:对应的状况有2种
              1)返回了“栈内存的指针或引用”,由于堆栈中的变量在函数结束后自动销毁。
              2)某块内存被free后,没有将指向该内存的指针设置为NULL,致使产生“野指针”。

10.I/O是一种文件吗?

linux把设备看成一种特殊文件整合到文件系统中。
   每一个I/O设备分配一个路径,一般放在/dev目录下,每一个设备都必须有主次设备号,主设备号相同的设备是同类设备(使用同一个驱动程序)。
   这些设备中,有些设备是对实际物理硬件的抽象,而有些设备则有内核自身提供的功能(不能依赖于特定的物理硬件,又称为“虚拟设备”)

11.客户端服务器通讯的基本流程

服务器端:
   – 申请一个socket (socketWatch)用来监听的
   – 绑定到一个IP地址和一个端口上
   – 开启侦听,等待接授客户端的链接
   – 当有链接时建立一个用于和链接进来的客户端进行通讯的socket(socketConnection)
   – 即续监听,等侍下一个客户的链接

  客户端:
   – 申请一个socket(socketClient)
   – 链接服务器(指明IP地址和端口号)

12.信号量如何实现互斥的?

信号量,也就是操做系统中所提到的PV原语,能达到互斥和同步的效果,这就是今天咱们所要讲述的信号量线程控制。
   PV原语是对整数计数器信号量sem的操做,一次P操做可以使sem减一,而一次V操做但是sem加一。进程(或线程)根据信号量的值来判断是否对公共资源具备访问权限。当信号量的值大于零或等于零的时候,该进程(或线程)具备对公共资源访问的权限,不然,当信号量的值小于时,该进程(或线程)就会被阻塞,直到信号量的值大于或等于一。

你有什么项目被加分,谈谈你的经验

- 总结

- 教程


课程收获与不足

1. 本身的收获(投入,效率,效果等)

- 能够在学习以前先去看看别人的学习总结,就像看看天气预报不要一点准备都没有;在实践 的时候克服本身的畏难心理;

2. 本身须要改进的地方

- 学习的时候经常抓不住重点,仍是要多向别人学习

3. 若是有结对,写一下你提供的帮助或接受了什么帮助,并对老师提供参考建议

- 结对最好是能有优点互补的,个人学习搭档对于个人帮助是安装软件,实践动手,我能帮到他的是理论学习和编程

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

- 有问题本身解决。

5. 若是从新学习这门课,怎么作才能够学的更好

- 别由于学习任务重就不出去玩从而影响到对学习的热情。

问卷调查

1. 你平均每周投入到本课程多长时间?

- 基本天天都学,具体多长时间说不清楚,一天至少半个小时。

2. 每周的学习效率有提升吗?

- 比上个学期好不少,不过仍是很拖沓

3. 学习效果本身满意吗?

- 学无止境

4. 课程结束后会继续一周至少一篇博客吗?(若是能作到,毕业时我把你的博客给你集结成一本书送给你做记念)

- 有了发博客的习惯应该不会轻易停下来,不过到了大四可能博客内容会变成复习国考。

5. 你以为这门课老师应该继续作哪一件事情?

- 写博客

6. 你以为这门课老师应该开始作什么新的事情?

- 制定学习任务的目标时多考虑班上大多数同窗的水平。

给出你的总结的连接和二维码

相关文章
相关标签/搜索