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

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

教材学习内容总结

第六章

随机访问存储器

随机访问存储器分为:静态RAM(SRAM)和动态RAM(DRAM),静态RAM(SRAM)比动态RAM(DRAM)更快,但也贵很多。

(1)静态RAM

SRAM将每个位存储在一个双稳态的存储器单元里,每个单元是用一个六晶体管电路来实现的。

属性:它可以无限制地保持在两个不同的电压配置或状态之一。其他任何状态都是不稳定的。

特点:由于SRAM的双稳态特性,只要有电,它就会永远地保持它的值,即使有干扰,如电子噪音,来扰乱电压,当干扰消除,电路也能恢复到稳定值。

应用:高速缓存存储器,即可以在CPU芯片上,也可以在片下。

(2)动态DRAM

DRAM将每个位存储为对电容的充电。电容约为30×10-15F。

特点:对干扰特别敏感,当电容的电压被扰乱之后,它就永远不会恢复了。暴露在光线下会导致电容电压改变。

应用:主存以及图形系统的帧缓冲区。

非易失性存储器(ROM)

存储在ROM设备中的程序通常称为固件。

磁盘存储
  • 磁盘构造:

    由盘片构成,每个盘片有两面或者称为表面,表面覆盖着磁性记录材料。盘片中央有一个可以旋转的主轴,使得盘片以固定的旋转速率旋转,通常是5400~15000转每分钟(RPM)

    每个表面是由一组称为磁道的同心圆组成;每个磁道被划分成一组扇区;每个扇区包含相等数量的数据位(通常是512字节);这些数据编码在扇区上的磁性材料中。扇区之间由一些间隙分隔开,这些间隙中不存在数据位。间隙存储用来标识扇区的格式化位。

  • 磁盘容量:

    一个磁盘上可以记录的最大位数称为它的最大容量/容量。

    磁盘容量的决定因素:

     记录密度:磁道一英寸的段可以放入的位数。
    
     磁道密度:从盘片中心出发半径上一英寸的段内可以有的磁道数。
    
     面密度:记录密度与磁道密度的乘积。
    
     磁盘是重点,涉及到后面的i/o和文件系统,做好相关练习

    公式:

磁盘操作:

磁盘用读写头来读写存储在磁性表面的位,而读写头连接到一个转动臂一端。寻道就是通过沿着半径轴前后移动这个转动臂,使得驱动器可以将读写头定位在盘面上的任何磁道上。

访问时间:

 寻道时间:为了读取某个目标扇区的内容,传动臂把读/写头首先定位到包含目标扇区的磁道上,所需时间即为寻道时间,约等于最大旋转时间。

 旋转时间:定位到期望的磁道后,驱动器等待目标扇区的第一个位旋转到读/写头下。依赖于当读写头到达目标扇区时盘面的位置和磁盘旋转速度。最大旋转时间 = 1/最大旋转数率 。平均旋转时间 = (1/2) * 最大旋转时间。

 传送时间:当目标扇区的第一个位位于读写头下时,驱动器就可以开始读或者写该扇区的内容。依赖于旋转速度和每条磁道的扇区数目。平均传送时间 = (1/最大旋转数率) * (1/每磁道的平均扇区数) 
逻辑磁盘块

磁盘控制器:磁盘中一个小的硬件、固件设备,维护着逻辑块号和实际物理磁盘扇区之间的映射关系。

现代磁盘构造复杂,有多个盘面,这些盘面上有不同的记忆区。为了对操作系统隐藏这样的复杂性,现代磁盘将他们的构造呈现为一个简单的试图,一个B个扇区大小的逻辑块的序列,编号为0,1,...,B-1。

连接到I/O设备

通用串行总线(USB):包括键盘、鼠标、调制解调器、数码相机、游戏操纵杆、打印机、外部磁盘驱动器和固态硬盘等。

I/O总线比系统总线比存储器总线慢,但是它可以容纳种类繁多的第三方I/O设备。

访问磁盘

直接存储器访问:设备可以自己执行读或者写总线事务,而不需要CPU干涉的过程。这种数据传送称为DMA传送。

基本思想:中断会发信号到CPU芯片的一个外部引脚上。这会导致CPU暂停它当前正在做的工作,跳转到一个操作系统例程。这个程序会记录下I/O已经完成,然后将控制返回到CPU被中断的地方。

固态磁盘

固态硬盘是一种基于闪存的存储技术。

优点:由半导体构成,没有移动的部件;随机访问时间比旋转磁盘要快、能耗低、结实。

缺点:易磨损、更贵。

局部性

局部性:倾向于引用邻近与其他最近引用过的数据项的数据项,或者最近引用过的数据项本身,这种倾向性,被称为局部性原理。

两种不同形式:空间局部性、时间局部性。

 硬件层:局部性原理允许计算机设计者通过引入高速缓存存储器来保存最近被引用的指令和数据项,从而提高对主存的访问速度。

 操作系统级:局部性原理允许系统使用主存作为虚拟地址空间最近被引用块的高速缓存,用主存来缓存磁盘文件系统中最近被使用的磁盘块。

 应用程序中:例如,Web浏览器将最近被引用的文档放在本地磁盘上。
存储器层次结构

一般而言,高层往底层走,存储设备变的更慢、更便宜、更大。

中心思想:每一层存储设备都是下一层的缓存。

缓存管理:

 某种形式的逻辑必须管理缓存,而管理缓存的逻辑可以是硬件、软件,或者两者的集合。

高速缓存存储器

高速缓存是一个高速缓存组的数组,高速缓存的结构将m个地址划分成了t个标记位,s个组索引位和b个块偏移位。

结构:

m:每个存储器地址有m位,形成M=2^m个不同的地址
S:这个数组中有S=2^s个高速缓存组
E:每个组包含E个高速缓存行
B:每个行是由一个B=2^b字节的数据块组成的

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

  • 问题1:高速缓存和高速缓冲有什么区别?
  • 问题1解决

    高速缓冲主要作用是在一定程度上减少对IO设备访问的次数,可以起到流量整形的作用,也提升了系统的性能,毕竟IO操作和内存和cpu的处理速度差距还是很大的,比如下载一个文件,是积攒到一定量才写回磁盘,而不是下载一个字节写回一个字节,这样过不了多久,磁盘就损坏了。

    高速缓存主要作用是缓解处理数据的两端速度不匹配这种情况带来的时间上的浪费,这样做就加快了访问速度。比如大家都知道的cpu和内存之间的速度差异就特别大,所以需要cache缓存数据,以便提高速度。

    总之一句话,高速缓冲主要解决了空间上的问题,而高速缓存主要解决了时间上的问题。

  • 问题2: 为什么组索引不采用高位地址,而是中间的地址?
  • 问题2解决

    这是因为如果采用高位地址,会导致连续的块被映射到相同的高速缓存块。

  • 问题3:块和行的区别是什么?
  • 问题3解决

    行是高速缓存中存储块以及其它信息的容器,块是高速缓存存储器和下一层存储器传输的基本单位。因为一行总是存储一个块,术语“行”和“块”总是互换使用

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

代码托管

(statistics.sh脚本的运行结果截图)

上周考试错题总结

结对及互评

点评模板:

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

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

本周结对学习情况

-[20155318](http://www.cnblogs.com/lxy1997/)
- 结对照片
- 结对学习内容
    - 教材第六章内容
    - XXXX
    - ...

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

通过这一章的学习,加深了对存储器的模式的了解。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 133/133 1/1 8/8
第三周 159/292 1/3 10/18
第五周 121/413 1/5 10/28
第七周 835/3005 2/7 10/38
第八周 1702/4777 1/8 10/48
第九周 1664/6441 3/11 10/58

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

耗时估计的公式

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

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

  • 计划学习时间:15小时
  • 实际学习时间:10小时
  • 改进情况:

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

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

参考资料

时间: 2024-10-14 22:17:19

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

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