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


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

    参考老师提供的教材内容导读

    教材学习内容总结

    第八章内容

    • 异常控制流(EFC):现代系统通使控制流发生突变来对系统状态的变化做出反应,可发生在计算机系统的各个层次中。
    • 异常是异常控制流的一种形式,它一部分由硬件实现,一部分由操作系统实现,异常就是控制流中的突变,用来响应处理器状态中的某些变化。
    • 系统中可能的每种类型的异常都分配一个唯一的非负整数的异常号
    • 异常的种类:
    1. 中断:是异步发生的
    2. 陷阱:陷阱是有意的异常,是执行一条指令的结果
    3. 故障:故障由错误情况引起,它可能能够被故障处理程序修正

    1. 终止:终止是不可恢复的致命错误造成的结果,通常是一些硬件错误。

    • 进程就是一个执行中程序的实例。系统中的每个程序都是运行在某个进程的上下文中的。
    • 进程提供给应用程序的关键抽象:

    一个独立的逻辑控制流,独占地使用处理器;

    一个私有的地址空间,独占地使用存储器系统

    • 程序计数器(PC)值的序列叫做逻辑控制流,简称逻辑流。
    • 一个逻辑流的执行在时间上与另一个流重叠,称为并发流,这两个流被称为并发地运行。
    • 多个流并发地执行的一般现象被称为并发。多任务:一个进程和其他进程轮流运行的概念。 时间片:一个进程执行它的控制流的一部分的每一时间段。
    • 进程控制:
      1.获取进程ID
      每个进程都有一个唯一的正数(非零)进程ID。getpid函数返回调用进程的PID。

    getpid函数

    2.进程的三种状态:
    运行

    停止

    终止——进程会因为三种原因终止进程:收到信号,该信号默认终止进程;从主程序返回;调用exit函数。

    exit函数

    Fork函数:

    • 父进程通过调用fork函数创建一个新的运行的子程序。

    fork函数在父进程中返回子进程的PID,在子进程中返回0

    waitpid函数

    一个进程可以通过调用waitpid函数来等待它的子进程终止或者停止

    wait 函数

    wait函数是waitpid函数的简单函数

    sleep函数

    sleep函数将一个进程挂起一段指定的时间

    pause 函数

    该函数让调用函数休眠,直到该进程收到一个信号

    execve函数

    execve函数在当前进程的上下文中加载并运行一个新程序

    setenv函数

    第十章内容

    • 打开和关闭文件
      进程是通过调用open函数来打开一个已存在的文件或者创建一个新文件夹
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    
    int open(char *filename, int flags, mode_t mode);
    
    

    1.filename:文件名

    2.flags:指明进程打算如何访问这个文件,可取的值如下:

    O_RDONLY:只读

    O_WRONLY:只写

    O_RDWR:可读可写

    O_CREAT:文件不存在,就创建新文件

    O_TRUNC:如果文件存在,就截断它

    O_APPEND:写操作前设置文件位置到结尾处
    这些值可以用“或”连接起来。

    3.mode:指定了新文件的访问权限位,符号名称如下:

    • 关闭函数
    #include <unistd.h>
    
    int close(int fd);
    
    

    关闭一个已经关闭的描述符会出错

    • 读函数,成功则返回写的字节数,出错返回-1。返回值为有符号数。
    #include <unistd.h>
    
    ssize_t write(int fd, void *buf, size_t n);
    
    

    参数:

    fd:文件描述符
    buf:存储器位置
    n:最多从存储器位置buf拷贝n个字节到当前文件位置

    • RIO包能自动地处理不足值。提供了两个函数:无缓冲的输入输出函数,带缓冲的输入函数。
    • 写函数:write函数从内存位置buf复制至多n个字节到描述符fd的当前文件位置。
    #include<unistd.h>
    int close (int fd);
    
    • RIO无缓冲的输入输出函数
      rio_readn函数和rio_writen函数
    #include "csapp.h"
    
    ssize_t rio_readn(int fd, void *usrbuf, size_t n);
    ssize_t rio_writen(int fd, void *usrbuf, size_t n);
    
    
    • RIO的带缓冲的输入函数

    rio_readlineb从rp读出一个文本行(包括换行符)并把它存到usrbuf,并用空字符结束这个文本行。最多读maxlen-1个字节,剩下一个给结尾处的空字符。

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

    • 问题1:并发和并行的区别
    • 问题1解决方案:

    1.并发:多个流并发地执行的一般现象。
    多任务:一个进程和其他进程轮流运行的概念。
    时间片:一个进程执行它的控制流的一部分的每一时间段。
    多任务也叫时间分片。

    2.并行流:如果两个流并发的运行在不同的处理器核或者计算机上

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

    • 问题1:编译时出现错误
    • 问题1解决方案:通过查找资料,在编译命令最后面加上-lpthread就可以了

    代码托管

    上周考试错题总结

    • 14.多选:
    short int v=-12345;
    unsigned short uv=(unsigned short) v;
    
    

    那么(AB)

    • A .v=-12345, uv=53191**

    • B .v=uv=0xcfc7**

    • C .v,uv的底层的位模式不一样

    • D .v,uv的值在内存中是不一样的

    • 解析:有符号数和无符号数的转换,值不同,位模式不变

    • 22.C语言中,字符串被编码为一个以0结尾的字符数组。(A)

      • A .正确
      • B .错误
      • 解析:null的值是0
    • 7.大多数计算机使用同样的机器指令来执行无符号和有符号加法。(A)

      • A .正确
      • B .错误
      • C .不确定。
    • 23.下面和代码可移植性相关的C语言属性有(ABC)

      • A .#define
      • B .typedef
      • C .sizeof()
      • D .union
      • 解析:#define可以定义宏使得变量可移植,typedef可以使得类型可移植,sizeof()使得不同类型长度可移植。

    结对及互评

    本周结对学习情况

    • 20155326
      • 结对照片

      • 结对学习内容

        • 第八、十章内容

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

    本周学习任务感觉很重,因为课上的测试没有全部完成,然后要写两篇博客,还要学习两章内容。所以学习压力比较大,感觉效率还需要提升。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 200小时
    第一周 5/5 1/1 15/15
    第二周 1/2 23/38
    第三周 206/327 1/3 28/66
    第四周 206/327 1/4 10/77
    第五周 285/568 1/5 20/97 主要学习了汇编及反汇编的相关知识
    第六周 160/683 3/8 20/107

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

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

    • 计划学习时间:20小时

    • 实际学习时间:20小时

    • 改进情况:本周既需要学习课本内容,还需要完成课堂上未完成的内容,压力较大

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

    参考资料

  • 相关阅读:
    python有哪些关键字?让他自己“吐”出来!
    jquery获取表单元素与回显
    前端开发笔记--flex布局
    Vue-Quill-Editor回显不显示空格的处理办法
    react项目中antd组件库的使用需要注意的问题
    React Native 列表的总结
    是时候了解React Native了
    Android 整合实现简单易用、功能强大的RecyclerView
    linux centos 一键安装环境
    推翻自己和过往,重学自定义View
  • 原文地址:https://www.cnblogs.com/ljq1997/p/7750630.html
Copyright © 2020-2023  润新知