zoukankan      html  css  js  c++  java
  • 2017-2018-1 20155215 《信息安全系统设计基础》第6周学习总结

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

    教材学习内容总结

    • 现代系统通过使控制流发生来对这些情况做出反应,这些突变被称为异常控制流(ECF)。

      • ECF是操作系统用来实现I/O、进程和虚拟存器的基本机制
      • 应用程序通过使用一个叫做陷阱或者系统调用的ECF形式,向操作系统请求服务
      • ECF是计算机系统中实现并发的基本机制
      • 软件异常机制——C++和Java有try,catch,和throw,C中非本地跳转是setjmp和longjmp
    • 进程

    • 逻辑流

    • 并发流

    • 错误处理包装函数:

      • 系统会使用错误处理包装函数,系统级函数是小写,他们的包装函数名大写,包装函数调用基本函数,有任何问题就终止,如果没有问题和基本函数是一样的。
    • 进程状态

      • 运行
      • 停止
      • 终止

    man -k key1 | grep key2| grep 2 : 根据关键字检索系统调用

    man
    

    有一个

    -k
    

    选项,这个选项让你学习命令,编程时有了一个搜索引擎,可以举一反三。
    比如我需要一个排序功能的函数,我就可以输入

    man -k sort
    

    来查找。而

    man -k key1 | grep key2| grep 2
    

    就是多关键字查找的意思,用|分隔符分开,输入多个关键字达到更好的查找我想要的函数的目的。

    grep -nr XXX /usr/include :查找宏定义,类型定义

    grep 命令可以对文件全文检索,比如你接手一个C语言项目,里面有上百个C源文件,想找找main函数在那个文件中,你可以通过

    grep -n main *.c
    

    ,快速找到main在哪个C文件中并指出在第几行。
    而且grep支持正则表达式,正则表达式也是一个重要的元知识。
    我们可以通过

    cheat grep
    

    来学习grep命令。

    grep -nr XXX /usr/include
    

    则是可以帮助我们查找XXX在哪个头文件中定义。

    完成head,tail的使用,相关API的分析,伪代码,产品代码,测试代码的编写

    • head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。

    • 命令参数有:
      -q 隐藏文件名
      -v 显示文件名
      -c<字节> 显示字节数
      -n<行数> 显示的行数

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

    • 问题1:我对于错误处理函数和系统调用错误处理,有一些不够理解的地方。

    • 问题1解决方案:我上网查了之后,了解到了下面这些信息:

    • 错误处理函数

        - perror
        - strerror
      

    perror和strerror函数都是用来打印错误提示信息的,它们的原型分别是:

    include <stdio.h>

    void perror(const char *s);

    它先打印s指向的字符串,然后输出当前errno值所对应的错误提示信息,例如当前errno若为12,调用perror("ABC"),会输出"ABC: Cannot allocate memory"。

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

    • 问题1:git出错

    • 问题1解决方案:

    公钥认证管理

    • 问题2:我在输入课本上的P507页的代码时,发现生成汇编文件始终不成功。

    • 问题2解决方案:
      暂时没有找到解决方法。

    代码托管

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

    上周考试错题总结

    1.假设下面位串是基于IEEE格式的5位浮点表示,一个符号位,2个阶码位,两个小数位。下面正确的是()
    A .
    3.5的表示是[01011]
    B .
    -1.0的表示[01111]
    C .
    0.5的表示是[00011]
    D .
    1.5的表示是[00110]
    正确答案: A D 你的答案: A C

    2.有关三位数x,y的乘积xy截断为四位,下面说法正确的是()
    A .
    无符号的[100]
    [101]结果为4
    B .
    无符号的[100][101]结果为-4
    C .
    有符号的[100]
    [101]结果为-4
    D .
    有符号的[100]*[101]结果为4
    正确答案: A C 你的答案: B D

    3.我们用一个十六进制的数表示长度w=4的位模式,把数字解释为补码,关于其加法逆元的论述正确的是()
    A .
    0x8的加法逆元是-8
    B .
    0x8的加法逆元是0x8
    C .
    0x8的加法逆元是8
    D .
    0xD的加法逆元是3
    E .
    0xD的加法逆元是0x3
    正确答案: A B D E 你的答案: B E

    4.我们用一个十六进制的数表示长度w=4的位模式,对于数字的无符号加法逆元的位的表示正确的是()
    A .
    0x8的无符号加法逆元是0x8
    B .
    0xD的无符号加法逆元是0xD
    C .
    0xF的无符号加法逆元是0x1
    D .
    0xF的无符号加法逆元是1
    正确答案: A C D 你的答案: A C

    5.0<=x,y<2^w, 则
    A .
    x+y的最大值是2^w
    B .
    x+y的最大值是2^w-1
    C .
    x+y的最大值是2^w-2
    D .
    x+y的最大值是2^(w+1)
    E .
    x+y的最大值是2^(w+1)-1
    F .
    x+y的最大值是2^(w+1)-2
    正确答案: F 你的答案: B

    结对及互评

    点评模板:

    • 博客中值得学习的或问题:
      • xxx
      • xxx
      • ...

    本周结对学习情况

    - [结对同学学号1](博客链接)
    - 结对照片
    【】
    

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

    这周的内容

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 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小时

    • 改进情况:

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

    参考资料

  • 相关阅读:
    Linux03__管理
    Linux02__常用命令
    Linux01__系统安装
    爬虫性能相关
    【转载】资源整合
    Continuous integration
    行业巨头的云计算冷数据存储应用和比较 2016-07-15
    win7中使用docker ——配置阿里云容器加速
    layui treeSelect插件的使用
    springboot 拦截器设置
  • 原文地址:https://www.cnblogs.com/xuanyan/p/7750960.html
Copyright © 2011-2022 走看看