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

    2018-2019-1 20165209 《信息安全系统设计基础》第九周学习总结

    教材学习内容总结

    目录内容:ls

    1. 理解虚拟存储器的概念和作用

    • 概念:虚拟存储器是硬件异常、硬件地址翻译、主存、磁盘文件和内核软件的完美交互,它为每个进程提供了一个大的、一致的和私有的地址空间。

    • 作用:

      • 将主存看做是一个存储在磁盘上的地址空间的高速缓存,在主存中只保护活动区域。
      • 为每个进程提供了一致的地址空间,从而简化了存储器管理。
      • 保护每个进程的地址空间不被其他进程破坏。

    2.理解地址翻译的概念

    • 概念:把一个虚拟地址转换为物理地址的任务。

    3.理解存储器映射

    • 概念:Linux通过将一个虚拟内存区域与一个磁盘上的对象(object)关联起来,以初始化这个虚拟内存区域的内容。

    • Linux中的普通文件:一个区域可以映射到一个普通磁盘文件的连续部分,例如一个可执行目标文件。

    • 匿名文件:一个区域也可以映射到一个匿名文件,匿名文件是由内核创建的,包含的全是二进制零。

    4.掌握动态存储器分配的方法

    • 概念:当运行时需要额外虚拟存储器时,使用动态存储器分配器维护一个进程的虚拟存储器区域。
    • 分配器有两种:
      • 显示分配器:要求应用显式地释放任何已经分配的块。
      • 隐式分配器:要求分配器检测一个已分配块何时不再被程序所使用,就释放这个块。也叫做垃圾收集器。

    5.理解垃圾收集的概念

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

    • 垃圾收集器将存储器视为一张有向可达图。

    • Mark%Sweep垃圾收集器:由标记(mark)阶段和清除(sweep)阶段组成。

    6.了解C语言中与存储器有关的错误

    • 间接引用坏指针

    • 引用指针,而不是所指向的对象

    • 误解指针运算

    • 引起存储器泄露

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

    • 问题1:malloc()从哪里获得的内存空间?

    • 问题1解决方案:从堆里面获得空间。当操作系统收到程序的申请时,就会遍历该链表,然后就寻找第一个空间大于所申请空间的堆结点,然后就将该结点从空闲结点链表中删除,并将该结点的空间分配给程序。

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

    • 问题1:无法打开Y86-64模拟器界面

    • 问题1解决方案:将两个GUI路径分别设置为TKLIBS=-L/usr/lib -ltk8.5 -ltcl8.5和TKINC=-I/usr/include/tcl8.5(原因是Y86-64模拟器的Makefile中配置GUI相关路径错误导致的)

    上周考试错题总结

    • 错题1:

      • Unix/Linux中,对于代码fd=open("foo",O_WRONLY,0766),umask=022,下面说法正确的是(AC)
        A . 进程对foo是只写的
        B . 同组成员能写foo
        C . 使用者可以执行foo
        D . 任何人都可以写foo

      • 解析:因为九个权限可以用0777表示,07(使用者)7(同组成员)7(其他人)7(111)(读:写:执行),文件实际权限是mode&~mask。

    • 错题2:

      • 有关磁盘操作,说法正确的是(ACD)
        A . 对磁盘扇区的访问时间包括三个部分中,传送时间最小。
        B . 磁盘以字节为单位读写数据
        C . 磁盘以扇区为单位读写数据
        D . 读写头总处于同一柱面

      • 解析:对磁盘扇区的访问时间中传送时间最小;磁盘以扇区为单位读写数据;磁盘操作中读写头总处于同一柱面。

    其他

    这一章的内容有点难,花的时间比预计多了一些,但是书本上的东西认真看还是可以理解的。

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

    • 计划学习时间:15小时

    • 实际学习时间:20小时

    • 改进情况:

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

    参考资料

  • 相关阅读:
    iOS强引用和弱引用
    HTTP和Socket的区别
    iOS日期加减
    iOS判断日期A是否在日期B到日期C之间
    分布式锁与实现(一)——基于Redis实现 【比较靠谱】
    Redisson实现分布式锁
    Redisson分布式锁实现
    从redis中取值如果不存在设置值,使用Redisson分布式锁【我】以及不使用锁的方式
    redisson整合spring
    如何优雅地用Redis实现分布式锁?
  • 原文地址:https://www.cnblogs.com/tutu233/p/10037616.html
Copyright © 2011-2022 走看看