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

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

教材学习内容总结

一、常见的储存技术(RAM、ROM、磁盘、固态硬盘等)

层次结构:

存储器系统是一个具有不同容量、成本和访问时间的存储设备的层次结构。

存储器层次结构(图示):

存储器层次结构(文字描述):

从①到⑦:更大、更慢和每字节成本更低的存储设备。

①寄存器:CPU寄存器保存着从高速缓存存储器取出的字

②L1高速缓存(SRAM):L1高速缓存保存着从L2高速缓存取出的缓存行

③L2高速缓存(SRAM):L2高速缓存保存着从L3高速缓存取出的缓存行

④L3高速缓存(SRAM):L3高速缓存保存着从主存高速缓存取出的缓存行

⑤主存(DRAM):主存保存着从本地磁盘取出的磁盘块

⑥本地二级存储(本地磁盘):本地磁盘保存着从远程网络服务器磁盘上取出的文件

⑦远程二级存储(分布式文件系统、Web服务器)

RAM

静态RAM

Static Random-Access Memory,静态随机访问存储器,每个位存储在一个双稳态的存储器单元里,每个位晶体管数为6;相对访问时间快;具有双稳态特性,所以只要有电,就会永远地保持它的值;即使有干扰,当干扰消除时,电路就会恢复到稳定值;相对花费贵,主要应用在高速缓冲存储器上。

动态RAM

Dynamic Random-Access Memory,动态随机访问存储器,每个位存储在一个对干扰非常敏感的存储单元里,每个位晶体管数为1;相对访问时间慢;当电容的电压被扰乱后,它就永远不会恢复了;相对花费便宜,主要应用在主存以及图形系统的帧缓冲区。

磁盘:

(1)磁盘转速:

磁盘转速决定磁盘的速度。转速越快,磁盘寻找文件的速度就越快,传输速度越快。目前大部分笔记本电脑所采用的机械式硬盘均是依靠主轴的马达带动盘片高速旋转以产生浮力,使磁头漂浮在盘片上方,要将所要存取数据的扇区带到磁头下方,转速越快则等待时间也就越短,从而也就意味了高效率的工作。

(2)磁盘构造:

①磁盘是由盘片(platter)构成的,每个盘片有两个表面(surface),表面覆盖着磁性材料。盘片中央有一个可以旋转的主轴,使得盘片以固定的旋转速率旋转,通常是5400-15000转/分钟(Revolution Per Minute,RPM)。

②每个表面由磁道(track,一组同心圆)组成。

③每个磁道被划分为一组扇区(sector),每个扇区包含数量相等的数据位,这些数据编码在扇区上的磁性材料中。

④扇区之间由一些间隙(gap)分隔,间隙存储用来标识扇区的格式化位。

⑤柱面(cylinder):所有盘片表面上到主轴中心的距离相等的磁道的集合。

(3)磁盘容量计算:

磁盘容量 = 字节数/扇区 * 扇区数/磁道 * 磁道数/表面 * 表面数/盘片 * 盘片数/磁盘

ROM

ROM 是 ROM image(只读内存镜像)的简称,常用于手机定制系统玩家的圈子中。

常见的 ROM image 有 img、zip 等格式,前者通常用fastboot程序通过数据线刷入(线刷),后者通常用 recovery 模式从 sd刷入(卡刷),固 img 镜像也被称为线刷包,zip 镜像也被称为卡刷包。

固态硬盘

固态硬盘(Solid State Drives),简称固盘,固态硬盘(Solid State Drive)用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片、DRAM芯片)组成。

读写速度快。采用闪存作为存储介质,读取速度相对机械硬盘更快。固态硬盘不用磁头,寻道时间几乎为0。持续写入的速度快,其持续读写速度超过了500MB/s。

二、局部性原理

局部性通常有两种形式:

时间局部性(temporal locality)

时间局部性指的是:被引用过一次的存储器位置在未来会被多次引用(通常在循环中)。

空间局部性(spatial locality)

如果一个存储器的位置被引用,那么将来他附近的位置也会被引用。

取指令的局部性

指令存在于存储器中,cpu 要读指令就必须取出指令。所以也能评价对于取指令的局部性。

在for 循环中,循环体内的指令多次被执行,所以有良好的时间局部性。

循环体中的指令是桉顺序执行的,有良好的空间局部性。

局部性的简单原则:

1、重复引用同一个变量有良好的时间局部性

2、对于步长为k 的引用的程序,步长越小,空间局部性越小。步长为1 的引用具有良好的空间局部性。k越大,空间局部性越差。

3、对于取指令来说、循环有较好的时间和空间局部性。

三、缓存思想

使用高速缓存的过程称为缓存

对于每一个k,位于k层的更快更小的存储设备作为位于k+1层的更大更慢的存储设备的缓存。

在解决问题前提下,命中率高的缓存比命中率低的缓存,在硬件投入上可能会比较小,同时缓存的数量比命中率低的缓存数量也可能少,这样寻址的速度肯定比较快, 所以命中率高的缓存是好缓存。

缓存的命中率:

一个缓存的实体在被丢到缓存中后,在这个实体被缓存的期间(这个实体被缓存的生命周期内),如果外部一次都没有使用过它,这个缓存实体的命中率就是0。这个实体被请求的次数越多,它的缓存命中率越高。

四、局部性原理和缓存思想在存储层次结构中的应用

对于存储器而言,存取速度越快的其成本越高。为了在成本和性能之间进行平衡,现代计算机体系架构往往选择:使用少量性能高但成本也高的存储器作为速度慢而成本也低的存储器的缓存。成本越高的存储器数量越少,但它们被设计为更靠近CPU,所以它们性能要比次级存储器高的多。

由于上层存储器是下层存储器的缓冲,基于局部性原理,使用这种架构是正确的选择。因为下层存储器中的数据一旦被装入上层存储器,就很有可能被多次用到,此时CPU则可以在更靠近它的性能也更高的存储器内找到其需要的数据,而不需要每次都要到离它更远,性能也更低的存储器内去存取它们。

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

  • 问题1:

关于缓存命中率的理解不够充分。

  • 问题1解决方案:

关于缓存命中率:

小型网站可以全部数据缓存,一般压力也不会很大,可以忽略缓存命中率问题。

大型服务无法全部数据缓存,只能部分数据缓存,这时候就需要架构师设计出对该业务逻辑适用的缓存方法,尽可能的提高缓存的命中率。

提高命中率的方法大多是跟业务逻辑捆绑的,需要跟具体问题具体分析 。

对于不能被内存缓存的数据,最简单的提高性能方法就是使用文件缓存。

文件缓存可以把整个内容缓存成一个静态文件;也可以是整个页面的一个区域被缓存成一个文件,然后被包含;也可以是把一个实体序列化成XML文件进行缓存。

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

  • 问题1:

关于pwd的实现

如果目录太深,则在循环中会出现不明确的问题。

  • 问题1解决方案:

为保证目录的正确性,限制目录长度,若目录太深,则提示。

代码托管

结对及互评

本周结对学习情况

- [20155214](http://www.cnblogs.com/besti155214/p/7782336.html)
- 结对照片
- 结对学习内容
    - 第六章内容。
    - socket编程。

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

1、计算机通过存储系统的层次结构,在一定存储空间的前提下,大大地提高了计算机的工作效率。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第三周 114/114 3/3 20/20
第四周 136/250 2/5 18/38
第五周 87/337 2/7 22/60
第六周 271/608 2/9 30/90
第七周 185/716 2/11 30/90
第八周 531/1247 3/14 30/90
第九周 439/1686 3/17 30/90

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。

耗时估计的公式

:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

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

  • 计划学习时间:25小时
  • 实际学习时间:20小时
  • 改进情况:

(有空多看看现代软件工程 课件

软件工程师能力自我评价表)

参考资料

时间: 2024-10-09 16:09:07

2017-2018-1 20155216 《信息安全系统设计基础》第九周学习总结的相关文章

20135223何伟钦—信息安全系统设计基础第九周学习总结

学习目的: 1. 掌握系统编程和系统调用的概念 2. 掌握系统编程错误处理的方式 3. 掌握Unix/Linux系统级I/O(open close read write seek stat) 4. 掌握RIO 5. 掌握I/O重定向的方法 一.Unix I/O Unix I/O定义:所有的I/O设备都被模型化为文件,所有的输入和输出都被当作 对相应文件的读和写来执行.这种将设备影射为文件的方式,称为Unix I/O (一)打开文件 (1)文件描述符:一个应用程序通过要求内核打开相应的文件,来宣告

20135219洪韶武-信息安全系统设计基础第九周学习总结

第九周学习总结 一.课本内容 1.每个unix文件都是一个m字节的序列:所有I/O设备如网络.磁盘和终端都被模型化为文件,而输入和输出就是对这些文件的读写操作. 2.unix系统中输入输出的操作: 打开文件:一个应用程序通过要求内核打开相应的文件,来宣告它想要访问一个I/O设备,内核返回一个小的非负整数,叫做描述符.unix系统创建每个进程的时候都有三个打开的文件:标准输入:标准输出,标准错误. 改变当前的文件位置.对于每个打开的文件,内核保持着一个文件位置k(从文件开头起始的字节偏移量). 读

信息安全系统设计基础第九周学习总结

(1)ls 用来显示文件的详细信息(用户名,群组名,大小,创建时间,读写执行权.) (2)who 如何查看当前登录的用户? -who am i 如何列出登录的用户? -who或-w (3)fileinfo显示文件信息 用来实现显示文件信息,建立了一个stat数据结构. 要先判断命令是否有操作数 (4)spwd列出当前目录 (5)mkdir命令用于创建一个新的目录.这个新的目录不仅可以使用绝对路径,也可以使用相对路径.但用户创建新目录的前提条件是:创建者对被创建新目录的父目录应有写权限. 如何在其

20135234马启扬-——信息安全系统设计基础第九周学习总结

怎样学习系统编程(利用Linux学习Linux编程) 1 分析实用程序/bin, /usr/bin, /usr/local/bin学习使用工具,分析工具,了解功能和原理2 学习系统调用函数和系统调用本质上都是函数.不同的库,不同的头文件分析需要哪些系统调用,学习系统调用的使用方法:参数?返回值?3 编程实现利用上面的原理和一组协同工作的系统调用,自己编程实现使用程序的功能或积极主动抄代码,学习那些系统调用是协同工作的 C语言的学习可以参考这个思路,实现标准库伴随我们学习经常要问的三个问题:能做什

信息安全系统设计基础第九周学习总结—20135227黄晓妍

第十章系统级I/O 输入/输出(I/O)是主存和外部设备(I/O设备)(如磁盘驱动器.终端.网络)之间拷贝数据的过程.输入是从I/O设备拷贝到主存.反之则反. 学习Unix I/O的原因: 帮助理解其他的系统概念. 有时只能使用Unix I/O.例如:读取文件元数据(文件大小和创建时间).另外,使用标准I/O库进行网编程非常冒险. 10.1Unix I/O Unix文件就是一个m字节的序列:b0,b1,b2….bm-1.所有的I/O设备都被虚拟化为文件.所有的输入输出都是在当成相对应的文件的读写

20135304刘世鹏——信息安全系统设计基础第九周总结

第十章.系统I/O 一个Unix文件就是一个m个字节的序列:B0,B1,…,BK,…,Bm-1 一.unix i/o 596 Unix I/O:一种将设备优雅地映射为文件的方式,允许Unix内核引出一个简单.低级的应用接口,这使得所有的输入输出都能以一种统一且一致的方式来执行: **1.打开文件:** - 内核返回一个小的非负整数,叫做描述符. -Unix外壳创建的每个进程开始时都有三个打开的文件:标准输入(描述符 为0).标准输出(描述符为1).标准错误(描述符为2). 2.改变当前文件位置:

信息安全系统设计基础第九章学习总结

第十章 系统级 I/O 学习过程 1 Unix I/O 输入输出(I/O)是在主存和外部设备之间拷贝数据的过程.一个Unix文件就是一个m个字节的序列,所有的I/O设备都被模型化为文件,而所有的输入和输出都被当做对应文件的读和写来执行. 打开文件.一个应用程序通过要求内核打开相应的文件来宣告它想要访问一个I/O设备.内核返回一个小的非负整数,称为描述符,在后续对此文件的所有操作中标识这个文件. Unix外壳创建的每个进程开始时都有三个打开的文件,可以用来 改变当前的文件位置.对于每个打开的文件,

20135304刘世鹏——信息安全系统设计基础第一周学习总结

第一节 Linux系统简介 一.Linux是一个操作系统 1. Linux 本身只是操作系统的内核.内核是使其他程序能够运行的基础. 它实现了多任务和硬件管理,用户或者系统管理员交互运行的所有程序 实际上都运行在内核之上. 2. Linux 内核具备了挑战 UNIX 的所有本质特性,包括 TCP/IP 网络,图 形界面系统 二.linux与windows的区别 Linux 免费或少许费用. Linux 平台:大都为开源自由软件,用户可以修改定制和再发布,由于基本免费没有资金支持,部分软件质量和体

信息安全系统设计基础第二周学习总结

学习目标 1. 熟悉Linux系统下的开发环境    2. 熟悉vi的基本操作    3. 熟悉gcc编译器的基本原理    4. 熟练使用gcc编译器的常用选项    5 .熟练使用gdb调试技术    6. 熟悉makefile基本原理及语法规范    7. 掌握静态库和动态库的生成 内容一:vim编辑器的使用 1.vim编辑器的三种模式 Ⅰ正常模式:(按Esc或Ctrl+[进入) 左下角显示文件名或为空 Ⅱ插入模式:(按i键进入) 左下角显示--INSERT-- Ⅲ可视模式:左下角显示—V

信息安全系统设计基础第二周学习总结(一)

Linux下C语言编程基础实验报告 学习任务 1. 熟悉Linux系统下的开发环境 2. 熟悉vi的基本操作 3. 熟悉gcc编译器的基本原理 4. 熟练使用gcc编译器的常用选项 5 .熟练使用gdb调试技术 6. 熟悉makefile基本原理及语法规范 7. 掌握静态库和动态库的生成 学习内容 1. 快捷键 2. vim 3. gcc 4. gdb 5. make与makefile 学习过程记录 第一部分 第一讲第一节:移动光标 H左.j下.k上.l右 第一讲第二节:VIM的进入和退出 <E