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

教材学习内容总结

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

  • 虚拟存储器(Virtual Memory),是硬件异常,硬件地址翻译,主存,磁盘文件和内核软件的完善交互,它为每个进程提供一个大的,一致的,私有地址空间。通过一个清晰的机制,虚拟存储器提供了三个要重的能力:
  • 作用
    (1)它将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据,通过这种方式,它高效的利用了主存;

(2)它为每个进程提供了一致的地址空间,从而简化了存储器管理;

(3)它保护每个进程的地址空间不被其他进程破坏。

理解地址翻译的概念

地址翻译是一个N元素的虚拟地址空间(VAS)中的元素和一个M元素的物理地址空间(PAS)中元素之间的映射。

理解存储器映射

  • 定义:
    Linux通过将一个虚拟存储器区域与一个磁盘上的对象关联起来,以初始化这个虚拟存储器区域的内容的过程叫做存储器映射。
  • 使用mmap函数的用户级存储器映射
    1.创建新的虚拟存储器区域
 #include <unistd.h>#include <sys/mman.h>void *mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset);成功返回指向映射区域的指针,若出错则为-1

参数含义:

  • start:这个区域从start开始
  • fd:文件描述符
  • length:连续的对象片大小
  • offset:距文件开始处的偏移量
  • prot:访问权限位,具体如下:
  • PROT_EXEC:由可以被CPU执行的指令组成
  • PROT_READ:可读
  • PROT_WRITE:可写
  • PROT_NONE:不能被访问
  • flag:由描述被映射对象类型的位组成,具体如下:
  • MAP_ANON:匿名对象,虚拟页面是二进制0
  • MAP_PRIVATE:私有的、写时拷贝的对象
  • MAP_SHARED:共享对象

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

    -.堆:动态存储器分配维护着一个进程的虚拟存储器区域,称为堆。
    假设它是一个请求二进制0的区域,紧接在未初始化的bss区域后开始,并向上(更高的地址)生长。有一个变量brk指向堆的顶部

  • 分配器的两种基本风格:
    a.显示分配器-malloc和free
    b.隐式分配器/垃圾收集器
  • malloc和free函数:
    .系统调用malloc函数,从堆中分配块:
    ````
    .#include <stdlib.h>
    void *malloc(size_t size);
    // 返回:成功则为指针,指向大小至少为size字节的存储器块,失败则为NULL
    //系统调用free函数来释放已分配的堆块:

    include <stdlib.h>

    void free(void *ptr);
    // 无返回值
    //ptr参数必须指向一个从malloc、calloc或者reallov获得的已分配块的起始位置。

理解垃圾收集的概念

  • 垃圾收集器是一种动态存储分配器,它自动释放程序不再需要的已分配块,这些块被称为垃圾,自动回收堆存储的过程叫做垃圾收集。
  • 垃圾收集器将存储器视作一张有向可达图,只有当存在一条从任意根节点出发并到达p的有向路径时,才说节点p是可达的,而不可达点就是垃圾。

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

    1.间接引用坏指针
    常见错误——scanf错误
    2.读未初始化的存储器
    常见错误——假设堆存储器被初始化为0
    3.允许栈缓冲区溢出
    常见错误——缓冲区溢出错误
    4.假设指针和它们指向的对象是相同大小的
    在远处起作用action at distance
    5.造成错位错误
    6.引用指针,而不是它所指向的对象
    7.误解指针运算
    8.引用不存在的变量
    9.引用空堆块中的数据
    10.引起存储器泄露

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

上周考试错题总结

  • 有关Socket端口和Linux命令,下面说法正确的是()
    A .
    可以用 echo /etc/services查看
    B .
    使用 netstat -pan|grep 80可以查看哪些进程占用了80端口
    C .
    可以使用lsof -i:80查看哪里些进程占用了80端口
    D .
    可以用sudo /etc/init.d/service start|stop|restart 启动|停止|重启系统服务
    E .
    可以用netstat -pa 查看所有的服务端口(LISTEN,ESTABLISHED)
    F .
    ps -aux | grep pid 可以查看绑定某端口的进程号为pid的进程的详细情况
    正确答案: A B C D E F
  • 有关Web服务器的说法,正确的是()
    A .
    Web服务器可以提供静态和动态内容
    B .
    Web服务器返回的静态内容由URL标识
    C .
    /.../app?150&21传递的内容由app可执行文件产生,150和21是调用参数
    D .
    最小的URL后缀“/”,会被扩展成类似“/index.html”的默认主页
    正确答案: A B C D

  • 有关套接字接口函数open_clientfd()、open_listenfd(),下面说法正确的是()
    A .
    这两个函数中open_clientfd()只可以用于客户端编程
    B .
    这两个函数中open_clientfd()可以用于客户端和服务器端编程
    C .
    这两个函数中open_listenfd()只可以用于服务器端编程
    D .
    open_clientfd()中的port参数是客户端的端口
    E .
    open_clientfd()中的port参数是服务器端的端口
    F .
    open_clientfd()返回的clientfd可以有Unix I/O接口读写
    G .
    open_listenfd()返回的listenfd可以有Unix I/O接口读写
    正确答案: A C E F

    结对及互评

点评模板:

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

    • xxx
    • xxx
    • ...
  • 代码中值得学习的或问题:
    • xxx
    • xxx
    • ...
  • 其他

本周结对学习情况

- [结对同学学号1](博客链接)
- 结对照片
- 结对学习内容- XXXX- XXXX- ...

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

xxx
xxx

学习进度条

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

  • 改进情况:

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

参考资料

  • 《深入理解计算机系统V3》学习指导
  • ...

转载于:https://www.cnblogs.com/l97----/p/7967927.html

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

  1. 20135219洪韶武——信息安全系统设计基础第十一周学习总结

    信息安全系统设计基础第十一周学习总结 学习时间:10小时 学习内容:课本第八章  一.重点内容 1.重点理解异常的概念.种类.问题处理 (1)控制流的概念 从处理器加点开始,直到断点为止,PC假设一个 ...

  2. 20135327郭皓——信息安全系统设计基础第十一周学习总结

    第十一周(11.16-11.22): 学习计时:共6小时 读书: 代码: 作业: 博客: 一.学习目标 1. 了解异常及其种类 2. 理解进程和并发的概念 3. 掌握进程创建和控制的系统调用及函数使用 ...

  3. 信息安全系统设计基础第十一周学习总结

    第八章 异常控制流 ECF:(异常控制流)突变集合 平滑:顺序结构的指令 突变:跳转.调用.和返回等指令,不在同一栈 基本机制:ECF是操作系统用来实现I/O.进程和虚拟存器的基本机制   ECF是计 ...

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

    2017-2018-1 20155224 <信息安全系统设计基础>第九周学习总结 教材学习内容总结 存储器 随机访问存储器(RAM): 静态RAM:用来作为高速缓存存储器,每个位存储在一个 ...

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

    - 2018-2019-1 20165206 <信息安全系统设计基础>第九周学习总结 - 教材学习内容总结 计算机系统的主存被组织成一个由M个连续的字节大小的单元组成的数组.每个字节都有一 ...

  6. 20135203齐岳 信息安全系统设计基础第十三周学习总结

    20135203齐岳 信息安全系统设计基础第十三周学习总结 学习计时:8/9共小时(计划/实际) 读书:4/5 代码:1/1 作业:1/1 博客:2/2 第十二章 并发编程 一.学习目标 掌握三种并发 ...

  7. # 20155337 2017-2018-1 《信息安全系统设计基础》第一周学习总结

    20155337 2017-2018-1 <信息安全系统设计基础>第一周学习总结 教材学习内容总结 1.1信息就是位+上下文 hello.c程序是以字节序列的方式储存在文件中的.每个字节都 ...

  8. 20135219洪韶武——信息安全系统设计基础第五周学习总结

    信息安全系统设计基础第五周学习总结 学习任务:教材第四章[处理器体系结构] 学习时间:10小时  一.教材知识点梳理[4.1-4.3] 1.ISA[指令集体系结构] 一个处理器支持的指令和指令的字节级 ...

  9. 20145227《信息安全系统设计基础》第一周学习总结

    20145227<信息安全系统设计基础>第一周学习总结 学习内容总结 Linux是一个操作系统.如果使用GUI,Linux和Windows没有什么区别.Linux学习应用的一个特点是通过命 ...

  10. 2018-2019 20165203 《信息安全系统设计基础》第一周学习总结

    2018-2019-1 20165203 <信息安全系统设计基础>第一周学习总结 教材学习内容总结 编译:gcc [选项] [文件名] 选项参数表 参数 对应功能 -E 仅执行编译预处理 ...

最新文章

  1. 关于Unity中的光照(六)
  2. Windows8 正式版最简单的去除桌面水印方法
  3. 数据结构:单向链表的反转
  4. ORA-19809: limit exceeded for recovery files问题解决
  5. Intel笔记本处理器发展简史(二)
  6. Python selenium 文件自动下载 (自动下载器)
  7. 让XP远程桌面连接支持网络身份验证
  8. flash静态的农夫走路_FLASH静态图形图像演示课件
  9. 9月1日云栖精选夜读:阿里云数据库掌门人褚霸:骑行与数据人生
  10. C++语言特性的性能分析
  11. 启用视口着色:在视图窗口实时显示灯光照明效果_daiding
  12. JavaScript自写逻辑思维导图(非常详细)
  13. 票务搜索网站有戏网“今夜有戏”
  14. ps制作凹陷的的直线
  15. mysql数据导入导出 CSV格式_导出mysql的数据为csv格式的文件
  16. SAP那些事-理论篇-14-SAP中的财务管理理念
  17. android EditText 属性介绍
  18. 从专业角度说说修仙游戏应该怎么做
  19. alin的学习之路:面试题 计算机网络相关
  20. CVE-2022-40684 Fortinet(飞塔)身份验证绕过漏洞

热门文章

  1. ABAP Netweaver, Hybris Commerce和SAP 云平台的登录认证
  2. 编译c语言程序时 程序中的注释部分将,C语言程序编译时,程序中的注释部分将 答案:不参加编译,也不会出现在目标程序中...
  3. 数组|leetcode35.搜索插入位置
  4. 将两个有序链表合并为一个链表任然有序C语言
  5. java 内存模型6_深入理解Java内存模型(六)——final
  6. Windows和VMware虚拟机相互间无法复制的解决方案
  7. oracle序列创建及使用,Oracle创建和使用序列
  8. 小米台灯突然自己亮了_买了台灯,视力反而变差了?
  9. linux 清理内存的c函数,Linux C函数之内存配置函数
  10. emwin 使用外部字库_整6个月的等待,ST终于可以免费使用ThreadX全家桶了