教材学习内容总结

  • 第一章主要学习了:信息是什么、源代码到目标程序所需要经过的4个过程、系统如何执行目标程序、执行过程中发现存在不断复制搬移程序的问题、为了解决问题出现了高速缓存器、完善过程,出现了存储器分层的结构 、操作系统如何管理硬件、三个抽象概念,进程(线程),虚拟内存,文件(网络也是一种文件)、并发和并行。

  • 第七章主要学习了链接的基本概念,也了解了三类目标文件、符号、符号表等重要概念。

  • 每章问题提出

    • 第一章:虚拟内存的意义是什么,为什么通过进程、虚拟内存、文件三个抽象概念可以实现操作系统的两个基本功能
    • 第二章:了解计算机的编码等规则对编程有什么益处?
    • 第三章:程序的机器级表示是什么意思?
    • 第四章:处理器的体系结构是什么?
    • 第五章:如何优化程序的性能?
    • 第六章:存储器这种层次结构有什么好处?
    • 第七章:什么时候用到静态库和动态库?我们日常的编程中常用吗?
    • 第八章:异常控制流是什么意思?C语言里是怎么处置异常的?
    • 第九章:为什么存在虚拟内存的概念?它和内存有什么区别?
    • 第十章:系统级I/O是什么意思?
    • 第十一章:如何用C语言进行网络编程?与Java语言相比有什么优势与劣势?
    • 第十二章:如何用C语言进行并发编程?与Java语言相比有什么优势与劣势?

教材学习中的问题和解决过程

  • 问题1:使用gcc -c hello.s -o hello.o把.s文本文件转为.o二进制文件中不知道为什么出现了问题,但是若gcc -c hello.i -o hello.o却没有问题,然后程序也可以正常运行
    2017-2018-1 20155321 《信息安全系统设计基础》第一周学习总结
    2017-2018-1 20155321 《信息安全系统设计基础》第一周学习总结

  • 问题1解决方案:尚未知道原因,目前使用第二种方法能正常运行。个人认为是.s文件出现了问题,.s文件按照书上解释应该是文本文件,且应是汇编代码构成的,但是当我打开.s文件后发现.s文件却是乱码?!
    2017-2018-1 20155321 《信息安全系统设计基础》第一周学习总结

  • 问题2:自己独自练习gcc编译时,在输入完gcc -c sum.i -o sum.o后运行发现运行不了
    2017-2018-1 20155321 《信息安全系统设计基础》第一周学习总结

  • 问题2解决方案:因为sum.o文件属于可重定位目标文件,缺少链接部分,因此还要输入gcc sum.o -o sum后,生成可执行文件即可,且通过打开sum.o文件和sum文件也可发现这两个文件是有差别的。个人感觉,在平日正常编程中,编译环节还是使用gcc -c sum.i -o sum比较方便
    2017-2018-1 20155321 《信息安全系统设计基础》第一周学习总结

  • 问题3:使用AR工具创建函数的静态库时,书上写着命令ar rcs libvector.a addvec.o multvec.o,其中参数rcs是什么意思?

  • 问题3解决方案:通过网上的资料显示,参数r:在库中插入模块(替换);参数c:创建一个库。不管库是否存在,都将创建;参数s:创建目标文件索引。

代码调试中的问题和解决过程

  • 问题1:在使用gdb进行调试的时候,第一步是先把代码调出来,即要输入命令l即可,但是在真正调试的时候,如果只是想调试中间某一部分而跳过某些暂不需要的代码时,这样输入命令就会很麻烦
    2017-2018-1 20155321 《信息安全系统设计基础》第一周学习总结
  • 问题1解决方案:
    通过网上资料显示,命令l一次显示10行代码,可以在命令l后加入想调出来的代码的行数,则可显示此行数上下的部分代码,比较方便
    2017-2018-1 20155321 《信息安全系统设计基础》第一周学习总结

代码托管

2017-2018-1 20155321 《信息安全系统设计基础》第一周学习总结

上周考试错题总结

结对及互评

暂无

本周结对学习情况

  • 20155330
    • 结对学习内容
      • 第一章
      • 第七章

其他(感悟、思考等,可选)

  • 本周我主要学习在虚拟机的Linux系统下学习C语言编程,学会使用vim的三种基本模式,初步掌握gcc编译器的常用选项以及相关的命令参数,初步学会使用gdb进行调试,

  • 下周主要任务是认真学习教材第七章的内容,学习并学会使用静态库和动态库。

  • 总而言之,本周的学习收获主要是初步掌握后续学习要使用的基本工具,熟悉Linux环境,为后续学习奠定基础,下周的学习主要是对本周学习进行修补和完善。此外,本周对Makefile以及断点的调试的学习和练习仍较生疏,下周还需多加学习。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 20篇 400小时
第一周 48/48 1/1 15/15

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:10小时

  • 实际学习时间:15小时

  • 改进情况:在动手实践编程方面要提高效率

(有空多看看现代软件工程 课件
软件工程师能力自我评价表
)

参考资料

相关文章:

  • 2021-12-29
  • 2021-06-12
  • 2021-10-05
  • 2021-10-06
  • 2022-02-23
  • 2022-02-12
  • 2021-12-13
  • 2022-02-15
猜你喜欢
  • 2021-10-12
  • 2022-02-24
  • 2021-09-18
  • 2021-12-19
  • 2021-05-23
  • 2021-10-16
  • 2022-01-17
相关资源
相似解决方案