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

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

    学习任务

    • 找出全书你认为最重要的一章,深入重新学习一下,要求(期末占10分):
    • 完成这一章所有习题
    • 详细总结本章要点
    • 给你的结对学习搭档讲解你的总结并获取反馈
    • 参考上面的学习总结模板,把学习过程通过博客(随笔)发表,博客标题“学号 《信息安全系统设计基础》第十三周学习总结”,博客(随笔)要通过作业提交,截至时间本周日 23:59。

    选择章节和要点

    • 我认为本书最重要的是第九章——虚拟内存

    • 本章的要点我认为是动态内存分配,和垃圾收集。


    完成所有习题:

    9、1

    虚拟地址位数(n) 虚拟地址数 (N) 最大可能的虚拟地址
    8 28 = 256 28-1 = 255
    16 216 = 64K 216-1 = 64K-1
    32 232 = 4G 232-1 = 4G-1
    48 248 = 256T 248-1 = 256T-1
    64 264 = 16384P 264-1 = 16384P-1

    9、2

    n P =2p PTE的数量
    16 4K 16
    16 8K 8
    32 4K 1M
    32 8K 512K

    9、3

    P VPN位数 VPO位数 PPN位数 PPO位数
    1KB 22 10 14 10
    2KB 21 11 13 11
    4KB 20 12 12 12
    1KB 19 13 11 13

    9、4

    A:虚拟地址格式:00 0011 1101 0111

    B

    参数
    VPN 0xf
    TLB索引 0x3
    TLB标记 0x3
    TLB命中?(是/否)
    缺页?(是/否)
    PPN 0xd

    C、物理格式地址:0011 0101 0111

    D、

    参数
    CO 0x3
    CI 0x5
    CT 0xd
    高度缓存命中?(是/否)
    告诉缓存字节返回 0x1d

    9、6

    请求 块大小(十进制字节) 块头部(十六进制)
    malloc(1) 8 0x9
    malloc(5) 16 0x11
    malloc(12) 16 0x11
    malloc(13) 24 0x19

    9、7

    对其要求 已分配块 空闲块 最小块大小(字节)
    单字 头部和脚部 头部和脚部 12
    单字 头部,没有脚部 头部和脚部 8
    双字 头部和脚部 头部和脚部 16
    双字 头部,没有脚部 头部和脚部 8

    本章要点详述

    动态内存分配

    malloc和free函数

    系统调用malloc函数,从堆中分配块:

    
    void *malloc(size_t size);
    
    成功返回指针,指向大小至少为size字节的存储器块,失败返回NULL
    
    

    系统调用free函数来释放已分配的堆块:

    
    void free(void *ptr);
    
    无返回值
    
    

    分配器的要求和目标

    要求:

    
    处理任意请求序列
    
    ·立即响应请求
    
    ·只使用堆
    
    ·对齐块
    
    ·不修改已分配的块
    
    

    目标:

    
    最大化吞吐率(吞吐率:每个单位时间里完成的请求数)
    
    ·最大化存储器利用率——峰值利用率最大化
    
    

    碎片

    • 内部碎片:发生在一个已分配块比有效载荷大的时候,易于量化

    • 外部碎片:发生在当空闲存储器合计起来足够满足一个分配请求,但是没有一个单独的空间块足以处理这个请求时发生。难以量化,不可预测

    隐式空闲链表

    格式:由一个字的头部,有效荷载,和可能的额外填充组成:

    将堆组织成一个连续的已分配块和空闲块的序列:

    垃圾收集

    • 垃圾收集器是一种动态存储分配器,自动释放程序已经不再需要的已分配块(垃圾)。

    • 垃圾收集器将存储器视为一张有向可达图,图的节点被分配为一组根节点和一组堆节点。

    C程序中常见的与存储器有关的错误

    误解指针运算:忘记了指针的算术操作是以它们指向的对象的大小为单位来进行,而这种大小单位不一定是字节

    引起存储器泄露:当不小心忘记释放已分配块,而在堆里创建了垃圾时,就会引起存储器泄露

    读未初始化的存储器:bass存储器位置总是被加载器初始化为0

    间接引用坏指针:在进程的虚拟地址空间中有较大的洞,没有映射到任何有意义的数据,如果试图引用一个指向这些洞的指针,操作系统就会以段异常来终止程序

    给你的结对学习搭档讲解你的总结并获取反馈

    结对同学博客

    实验测试反馈:

    1、实验5:使用openssl进行混合密码系统加密时,会话秘钥的分发最可能用到()

    A .
    AES_encrypt

    B .
    RSA_public_encrypt

    C .
    AES_decrypt

    D .
    RSA_private_decrypt

    E .
    AES_cbc_encrypt

    F .
    RSA_private_encrypt

    G .
    RSA_public_decrypt

    正确答案: B D 我的答案: A E F

    解析:非对称算法的应用:
    秘钥分发:用对方公钥加密,对方用自己的私钥解密
    签名验签:签名主要是用自己私钥加密,对方用自己公钥验签

    原因:当时AES和RSA对于混合密码系统加密的对应关系没有理解特别清楚。

    2、实验3中,在Ubuntu虚拟机中编译多线程程序时,gcc使用()选项

    A .-g

    B .-lthread

    C .-pthread

    D .-lpthread

    正确答案: C 你的答案: D

    解析:实际环境中只有-pthread可用

    原因:当时记得在实验中编译的语句里有过-L,所以选择了D。

    3、实验2中,SM1_Crypto(miqian, 16, 0, 0, 0,mihou);语句的功能是()

    A .初始化

    B .加密

    C .解密

    D .传递秘钥

    正确答案: B 你的答案: D

    解析:SM1_Crypto(miqian, 16, 0, 0, 0,mihou);加密
    SM1_Crypto(miqian, 16, 1, 0, 0,mihou);解密

    原因:这个。。。是因为纯粹不会。。

    4、实验1中使用mount命令时,会涉及到()的修改。

    A ./etc/fstab

    B ./etc/hosts

    C ./etc/passwd

    D ./etc/exports

    正确答案: D 你的答案: A

    解析:nfs服务器的配置,配置文件/etc/exports:

    ro 该主机对该共享目录有只读权限

    rw 该主机对该共享目录有读写权限

    root_squash 客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户

    no_root_squash 客户机用root访问该共享文件夹时,不映射root用户

    all_squash 客户机上的任何用户访问该共享目录时都映射成匿名用户

    anonuid 将客户机上的用户映射成指定的本地用户ID的用户

    anongid 将客户机上的用户映射成属于指定的本地用户组ID

    sync 资料同步写入到内存与硬盘中

    async 资料会先暂存于内存中,而非直接写入硬盘

    insecure 允许从这台机器过来的非授权访问

    原因:mount命令用于加载文件系统到指定的加载点。而fstab文件的作用文件/etc/fstab存放的是系统中的文件系统信息。当时考试时记混了。

    5、有关socket 接口中的connect(),下面说法正确的是()

    A .这个函数用于客户端编程

    B .这个函数用于服务器端编程

    C .调用connect会发生阻塞,连接成功程序会继执行

    D .调用connect()成功返回的文件描述符可以用来数据传输

    正确答案: A C D 你的答案: A C

    解析:p654

    原因:我当时记得调用connect()不仅能建立连接,而且还会向服务器传送数据,但后来上网查了后,想起来connect()只能建立连接。

    其余还有两道题纯粹是自己手滑。。,知道正确选项但却选错了。。。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 2000行 15篇 200小时
    第一周 150/150 1/1 17/17
    第二周 70/220 1/2 12/29
    第三周 100/320 1/3 10/39
    第四周 100/420 1/4 10/59
    第五周 80/500 2/6 22/81
    第六周 300/800 2/8 30/111
    第七周 200/1000 1/9 25/136
    第八周 500/1500 2/11 30/166
    第九周 500/2000 2/13 36/202
    第十周 100/2100 0/13 20/222
    第十一周 200/2300 2/15 35/257
    第十三周 300/2600 2/17 25/282
  • 相关阅读:
    -_-#【MongoDB】日期类型
    -_-#【Better Code】字符串匹配
    -_-#【Canvas】圆弧运动
    -_-#【Canvas】
    -_-#【AngularJS】
    COGS——C 14. [网络流24题] 搭配飞行员
    CODEVS——T 1993 草地排水 USACO
    BZOJ——T2190: [SDOI2008]仪仗队
    Codeforces_GYM_100741 A
    2017-0722 模拟赛
  • 原文地址:https://www.cnblogs.com/Hdywan/p/8053910.html
Copyright © 2011-2022 走看看