20155328 《信息安全系统设计基础》 课程总结
-
每周作业链接汇总
-
第1周作业:学习教材第一章与第七章“链接”
-
第2周作业:补充课堂提交,学习静态库与共享库,编写myod,实现makefile。
-
第3周作业:理解有符号数、无符号数、浮点数的表示。
-
第4周作业:编写系统调用版myod,并尝试用C语言实现Linux中head和tail命令。
-
第5周作业:学习X86汇编基础、ISA。
-
第6周作业:学习异常、父进程与子进程。
-
第7周作业:ISA抽象及其作用、流水线和实现方式。
-
第8周作业:学习客户端-服务器模型、线程,读者-写者。
-
第9周作业:磁盘、存储器结构与局部性原理。
-
第11周作业:虚拟存储器、存储器映射与动态存储方法。
-
第13周作业:重复学习异常、进程、信号等。
-
第14周作业:链接、符号解析、重定位。
-
-
实验报告链接汇总
-
实验一 开发环境的熟悉:熟悉交叉编译环境,在目标机中编译运行简单程序。
-
实验二 固件程序设计:在KEIL-MDK中添加芯片库,完成LED和UART发送与中断接收实验。
-
实验三 实时系统:基于Linux Socket程序设计实现wc(1)服务器和客户端,并使用多线程实现wc服务器。
-
实验四 外设驱动程序设计:嵌入式Linux应用程序开发
-
-
-
截图 git log --pretty=format:"%h - %an, %ar : %s" 的结果
-
代码量汇总提交statistics.sh的支持截图
-
代码驱动的学习做到没有?
感觉自己做的有些不足,敲代码不是太主动。
- 加点代码,改点代码是理解的最好方式,参考编程的智慧,谈谈你的心得
代码重点是在质而不是量,需在认真分析,谨慎推敲后写出代码。在弄懂代码的情况下,对自己的代码进行优化,才能不断提升。
- 实践上有什么经验教训?
本学期的课堂实践大多数都没有在课堂上规定的时间内完成,说明自己的确是自学得不太到位,没有抓住重点透彻学习。通过课下重做实践的认真学习,感觉自己掌握得更明白了。
-
-
第一周提出的问题解答
- 第一章:处理器读取并解释存在内存中的指令是怎样实现的?
CPU执行指令时,是从指令寄存器中取指令的。指令加载到指令寄存器的过程和加载数据是类似的。
- 第三章:减轻缓冲区溢出威胁的措施有哪些?
1.通过使被攻击程序的数据段地址空间不可执行,从而使得攻击者不可能执行被植入被攻击程序输入缓冲区的代码,这种技术被称为非执行的缓冲区技术。2.用grep来搜索源代码中容易产生漏洞的库的调用,编写正确的代码。
- 第四章:为什么五阶段处理器流水线更加实用?
减少了指令的平均执行时间,可以认为是减少了每条指令的CPI,也可以说是减少了时钟周期的长度。
- 第五章:如何根据一个程序的图形化表示中的关键路径来测量一个程序可能的性能?
增加生成的机器代码中指令级并行度的变换,因而提高了程序在现代"超标量(superscalar)"处理器上的性能。
- 第六章:如何通过改善程序的时间局部性和空间局部性来提高应用程序的性能?
一段时间内尽量访问地址相近的变量等。
- 第七章:如何利用共享库?
用于模块化的开发与扩展。
- 第八章:如何理解并发?
并发性,又称共行性,是指能处理多个同时性活动的能力。并发的实质是一个物理CPU(也可以多个物理CPU) 在若干道程序之间多路复用,并发性是对有限物理资源强制行使多用户共享以提高效率。
- 第九章:虚拟内存相比主存有什么优势?
可以弥补物理内存大小的不足;一定程度的提高反映速度;减少对物理内存的读取从而保护内存延长内存使用寿命。
- 第十章:标准I/O与UnixI/O有什么区别和联系?
文件I/O:文件I/O称之为不带缓存的IO(unbuffered I/O)。不带缓存指的是每个read,write都调用内核中的一个系统调用。也就是一般所说的低级I/O——操作系统提供的基本IO服务,与os绑定,特定于linix或unix平台。
标准I/O:标准I/O是ANSI C建立的一个标准I/O模型,是一个标准函数包和stdio.h头文件中的定义,具有一定的可移植性。标准I/O库处理很多细节。例如缓存分配,以优化长度执行I/O等。标准的I/O提供了三种类型的缓存。(1)全缓存:当填满标准I/O缓存后才进行实际的I/O操作。 (2)行缓存:当输入或输出中遇到新行符时,标准I/O库执行I/O操作。 (3)不带缓存:stderr就是了。
- 第十二章:可重入性是一种什么样的属性?
可重入(reentrant)函数可以由多于一个任务并发使用,而不必担心数据错误。相反,不可重入(non-reentrant)函数不能由超过一个任务所共享,除非能确保函数的互斥(或者使用信号量,或者在代码的关键部分禁用中断)。可重入函数可以在任意时刻被中断,稍后再继续运行,不会丢失数据。可重入函数要么使用本地变量,要么在使用全局变量时保护自己的数据。
-
课堂实践补充博客汇总
-
课程收获与不足
- 收获
写了快一年的博客,最深刻的一个收获就是记录自己学到的东西。如果自学没有记录,随着记忆的逐渐丢失学到的东西也会慢慢丢失。记录后可以翻看自己的笔记,多加巩固。
- 自己需要改进的地方
动手写代码不够积极。
- 关于结对 因为我结对的对象是室友,所以经常能相互沟通。比如看书或者写代码的时候遇到不理解的部分可以互相解惑。我也会看她的博客,学习。
-
给开学初的学弟学妹的建议
每周的任务不要堆到周末来做,每天学习一点,一边学习一边记录效果会好很多。
-
问卷调查
- 你平均每周投入到本课程多长时间?
20小时。
- 每周的学习效率有提高吗?
有。
- 学习效果自己满意吗?
不是太满意。有时候会比较怠惰把任务留到周末,就学得不是太细致。
- 课程结束后会继续一周至少一篇博客吗?
不能保证一周一定有一篇博客。但需要记录的东西会去记录。
- 你觉得这门课老师应该继续做哪一件事情?
课下测试。
- 你觉得这门课老师应该停止做哪一件事情?
设置笔记格式...记笔记有个人的习惯。