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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2017-2018-1 20155321 《信息安全系统设计基础》第十一周学习总结相关的知识,希望对你有一定的参考价值。

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

教材学习内容总结

  • 本周主要学习了与虚拟存储器相关的知识点

  • 虚拟存储器
  • 是一个容量巨大的存储器的逻辑模型,实际上并不存在的物理存储器。虚拟存储器通过磁盘等存储器来扩大内存,令其被更大或更多的程序所使用
  • 主存-外存层次
  • 以透明的方式令用户有一个错觉,实际上提供了一个比内存空间大很多的程序地址空间

  • 虚拟存储器的工作过程(由硬件和操作系统自动实现存储信息调度和管理的)
  • 中央处理器访问主存的逻辑地址分解成组号a和组内地址b,并把逻辑组号a作为索引,查找地址变换表,以确定该组信息是否存放在内存里
  • 若存在则执行第四步;若不存在,则检查内存中是否有空闲区,若没有,便调出某个暂时不用的组至辅存,并将这组信息调入内存
  • 从辅存读出所需的组并送到空闲区并将那个空闲的物理组号a和逻辑组号a重新记录在地址变换表里
  • 从地址变换表取出与逻辑组号a对应的物理组号a
  • 从物理组号a和组内字节地址b计算出物理地址
  • 根据物理地址从内存中存取必要的信息
    技术分享图片

  • 实地址:也叫物理地址,指的是计算机物理内存实际的访问地址

  • 虚地址:也叫逻辑地址,指的是用户在程序中使用的地址。
    技术分享图片

  • 三种调度方式
  • 页式调度
    • 虚地址空间、内存空间均被分成等长的页,通过页表可以把逻辑地址转换成物理地址
    • 每个进程对应一个页表。页表中对应每一个虚存页面均有一个表项
      技术分享图片
  • 段式调度
    • 按照程序的自然分界划分,虚地址由段号和段内地址组成。虚地址到实主存地址的变换通过段表实现。每个程序设置一个段表,段表的每一个表项对应一个段。每个表项至少包含有效位、段起址、段长
      技术分享图片
  • 段页式调度
    • 段式与页式的结合。实存被等分成页。每个程序则先按逻辑结构分段,每段再按照实存的页大小分页,程序按页进行调入和调出操作,但可按段进行编程、保护和共享。
      技术分享图片
  • 替换算法
  • 随机算法:用软件或硬件随机数产生器确定替换的页面
  • 先进先出:先调入内存的页面先替换
  • 近期最少使用算法:替换最长时间不用的页面
  • 最优算法:替换最长时间以后才使用的页面。这是理想化的算法,实际上却无法实现,因此只能把其作为衡量其他各种算法优劣的标准

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

  • 按照书本内容实现简单的分配器(P597-P603)
  • mmlib.c提供了一个内存系统模型
    技术分享图片
  • mem_init()函数将对于堆来说可用的虚拟内存模型化为一个大的、双字对齐的字节数组,其初始化分配器。
  • mm_free()函数:释放堆的内存
  • mm_malloc()函数:分配size字节大小的块
  • extend_heap()函数:拓展堆的可用空间
  • coalesce()函数:合并bp指针指向的块的前后块
  • find_fit()函数:找第一个空间大于size的空闲块
  • place()函数:分割find_fit返回的块,创建块结构
  • 运行结果:
    技术分享图片

代码托管

技术分享图片

上周考试错题总结

  • 下面说法正确的是()

A.Linux内核使用的file table 所有的进程共享的。

B.不同进程打开同一个文件的文件描述符必须一样。

C.使用dup2 把标准输入重定向到描述符7 dup2(7,0)

D.使用dup2 把标准输入重定向到描述符7 dup2(0,7)

E. ls > foo.txt 是输出重定向

F.类型为FILE的流是对文件描述符和流缓冲区的抽象。

  • 正确答案:ACEF
  • 理解情况:错选了ADEF,主要是对dup2()函数的用法不太熟悉,因为要重定向到描述符7,所以应该把7这个参数卸载前面。

  • Unix/Linux中,对于代码fd=open("foo",O_WRONLY,0766),umask=022,下面说法正确的是()

A.进程对foo是只写的

B.同组成员能写foo

C.使用者可以执行foo

D.任何人都可以写foo

  • 正确答案:AC
  • 理解情况:错选了ABCD,因为实际上的权限应该是mode&~umask,因此766&~022=744,而111表示读:写:执行,因此对于使用者而言可以读、写和执行,对于同组成员和其他人而言只可以读,因此BD是错误的。

  • 关于open(2),下面说法正确的是( )

A.flag 参数中O_RDONLY,O_WRONLY,O_RDWR至少要有一个

B.O_RDONLY|O_WRONLY == O_RDWR

C.fd=open("foo.txt",O_WRONLY|O_APPEND,0),调用write(fd,buff,n)写入foo.txt的数据不会破坏已有数据

D.fd=open("foo.txt",O_WRONLY|O_APPEND,0644),必将导致其他人不能写foo.txt

  • 正确答案:AC??
  • 理解情况:我选了ACD,此题暂时有疑问

  • Linux中下列概念中可以用Unix I/O处理的是()

A.普通文件

B.设备文件

C.目录

D.套接字

  • 正确答案:ABCD
  • 理解情况:漏选了B选项,在书本P623上写道“其他文件类型包含命名通道、符号链接、字符和块设备,因此B选项也是正确的

  • 相对内核而言,文件分为文本文件和二进制文件。其中文本文件只含有ASCII或Unicode字符。

A.正确

B.错误

C.不确定

  • 正确答案:B
  • 理解情况:漏选了A选项,相对内核而言,文件不仅仅只是分为文本文件和二进制文件,因此是错误的。

本周结对学习情况

  • 20155330
  • 结对学习内容
    - 书本第九章的内容

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 20篇 400小时
第十一周 1352 1/15 15/165

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

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

  • 计划学习时间:12小时

  • 实际学习时间:15小时

  • 改进情况:改善自学看书的方法,提高看书学习效率

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

参考资料











以上是关于2017-2018-1 20155321 《信息安全系统设计基础》第十一周学习总结的主要内容,如果未能解决你的问题,请参考以下文章

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

2017-2018-1 20155321 《信息安全系统设计基础》实验五——实时系统

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

2017-2018-1 20155321 20155330 《信息安全系统设计基础》实验四——外设驱动程序设计

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

20155321 《信息安全系统设计》课堂测试(ch06)