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

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

教材学习内容总结

异常基本概念

上学期学习Java程序设计语言中了解到,使用一种异常处理的错误捕获机制。当程序运行过程中发生一些异常情况,程序有可能被中断、或导致错误的结果出现。这种情况下,程序不会返回任何值,而是抛出封装了错误信息的对象。从应用系统最终用户的角度来看,用户所面对的是系统中所提供的各种业务功能以及系统本身的管理功能。用户并不理解系统内部是如何实现以及如何运行的,与系统开发者存在天然的鸿沟,系统运行对用户来说如同一个黑盒一样。对用户而言,系统所出现的任何异常或错误,都属于系统运行时异常。对于这些异常,有些异常是用户可以理解并能解决的;而另外一些异常是用户无法理解和解决的。当一个系统错误出现时,系统本身需要反馈给用户一种可理解的业务相近的信息,从而用户可以根据这些信息去尽可能解决问题。

异常的种类

中断、陷阱、故障、终止。

进程和并发

进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。特点:
动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的。

并发性 任何进程都可以同其他进程一起并发执行

fork函数
fork函数:相当于克隆了一个自己。需要注意的一点:就是调用fork函数之后,一定是两个进程同时执行的代码段是fork函数之后的代码,而之前的代码以及由父进程执行完毕
fork函数返回两个值

  • 返回一个大于0的值给父进程

  • 返回0给子进程

  • 返回其他值说明fork失败了

一个例子:

遇到了一个疑惑:程序中if语句的两条分支if(pid == 0)和else if(pid > 0)都得到了执行

指针数组 数组指针 指针函数 函数指针的区别

int*p[4]; // 指针数组。 是个有4个元素的数组,每个元素的是指向整型的指针。 ( 数组的每个元素都是指针 )

int(*p)[4]; // 数组指针。 它是一个指针,指向有4个整型元素的数组。 ( 一个指针指向有 4 个整型元素的数组 )

intfunc(void); // 指针函数。 无参函数,返回整型指针。            ( 函数的返回值为 int )

int(*func)(void); // 函数指针,可以指向无参,且返回值为整型指针的函数。 ( 函数的返回值为 int )

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

(一个模板:我看了这一段文字 (引用文字),有这个问题 (提出问题)。 我查了资料,有这些说法(引用说法),根据我的实践,我得到这些经验(描述自己的经验)。 但是我还是不太懂,我的困惑是(说明困惑)。【或者】我反对作者的观点(提出作者的观点,自己的观点,以及理由)。 )

  • 问题1:XXXXXX
  • 问题1解决方案:XXXXXX
  • 问题2:XXXXXX
  • 问题2解决方案:XXXXXX
  • ...

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

  • 问题1:程序中if语句的两条分支if(pid == 0)和else if(pid > 0)都得到了执行

  • 问题1解决方案:查了资料以后才明白出现这种运行结果的原因是因为,在main()函数的第6行fork了一个进程,这个进程称为原来进程的子进程,原来的那个进程称为父进程,这个进程与原来的进程并发执行,谁先税后没有规律,由操作系统调度决定。

代码托管

(statistics.sh脚本的运行结果截图)

上周考试错题总结

  • 错题1及原因,理解情况
  • 错题2及原因,理解情况
  • ...

结对及互评

点评模板:

  • 博客中值得学习的或问题:
    • xxx
    • xxx
    • ...
  • 代码中值得学习的或问题:
    • xxx
    • xxx
    • ...
  • 其他

本周结对学习情况

- [结对同学学号1](博客链接)
- 结对照片
- 结对学习内容
    - XXXX
    - XXXX
    - ...

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

xxx
xxx

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 2/4 18/38
第三周 500/1000 3/7 22/60
第四周 300/1300 2/9 30/90

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

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

  • 计划学习时间:XX小时

  • 实际学习时间:XX小时

  • 改进情况:

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

参考资料

原文地址:https://www.cnblogs.com/lyx1996/p/7750012.html