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

    2017-2018-1 20155214 《信息安全系统设计基础》

    第9周学习总结

    学习目标

    • 了解常见的存储技术(RAM、ROM、磁盘、固态硬盘等)
    • 理解局部性原理
    • 理解缓存思想
    • 理解局部性原理和缓存思想在存储层次结构中的应用
    • 高速缓存的原理和应用

    RAM 和 ROM的区别

    • RAM(Random Access Memory)的全名为随机存取记忆体,它相当于PC机上的移动存储,用来存储和保存数据的。它在任何时候都可以读写,RAM通常是作为操作系统或其他正在运行程序的临时存储介质(可称作系统内存)。当电源关闭时RAM不能保留数据,如果需要保存数据,就必须把它们写入到一个长期的存储器中(例如硬盘)。正因为如此,有时也将RAM称作“可变存储器”。RAM内存可以进一步分为静态RAM(SRAM)和动态内存(DRAM)两大类。DRAM由于具有较低的单位容量价格,所以被大量的采用作为系统的主记忆。

    • ROM(Read Only Memory)的全名为唯读记忆体,它相当于PC机上的硬盘,用来存储和保存数据。ROM数据不能随意更新,但是在任何时候都可以读取。即使是断电,ROM也能够保留数据。但是资料一但写入后只能用特殊方法或根本无法更改,因此ROM常在嵌入式系统中担任存放作业系统的用途。

    • 区别是RAM在断电以后保存在上面的数据会自动消失,而ROM就不会。
      由于ROM不易更改的特性让更新资料变得相当麻烦,因此就有了Flash Memory的发展 ,Flash Memory具有ROM不需电力维持资料的好处,又可以在需要的时候任意更改资料 ,不过单价也比普通的ROM要高。

    磁盘 和 固态硬盘的区别

    • 所有的磁盘盘面都是平行的,每一个盘面都有一个磁头,盘面高速旋转,磁头在盘面上内径和外径之间来回移动,这样就可以完成整个磁盘的读写操作。

    • 固态硬盘没有了机械硬盘磁盘磁头和马达电机,不再使用碟片作为存储单元,而是采用Flash Memory,所以不会存在磁头机械寻址的操作,再加上控制器组成硬盘。

    缓存思想

    • 高速缓存是一个小而快的存储设备,他作为存储在更大、更慢的设备中的数据对象的缓存区。使用高速缓存的过程称为缓存。

    局部性原理

    • 良好局部性的程序运行的更快。局部性原理,在硬件层体现在通过高速缓存保存最近被引用的指令和数据。在操作系统体现在通过使用主存来缓存最近使用的磁盘块。

    缓存思想在存储层次结构中的应用

    • 在储存层次结构中,每一层都缓存着来自第一层的数据对象,以此类推,直到最小的缓存CPU寄存器组。

    pwd命令的c实现

    • 任务要求:

    1 学习pwd命令
    2 研究pwd实现需要的系统调用(man -k; grep),写出伪代码
    3 实现mypwd
    4 测试mypwd

    • 任务背景

    通过man pwd理解pwd命令行以绝对路径的方式显示用户当前工作目录。命令将当前目录的全路径名称(从根目录)写入标准输出。全部目录使用/分隔。第一个/表示根目录,最后一个目录是当前目录。执行pwd命令可立刻得知您目前所在的工作目录的绝对路径名称。
    - L选项包含符号,- P回避符号,默认为- P选项。

    • 注意到在SEE ALSO中,有getcwd函数,man getcwd

    该函数返回一个字符串, 其中包含调用进程的当前工作目录的绝对路径名。 路径名作为函数结果返回, 并且通过数组指针参数 buf (如果存在)返回。

    • 伪代码
    int main(){
    
    调用getcwd();
    
    将返回的字符数组打印到标准输出;
    
    }
    
    • mypwd代码
    #include <stdio.h>
    #include <unistd.h>
    #include <stdlib.h>
    
    #define MAXLINE 256
    
    int main(){
    
        char pwd[MAXLINE];
    
        getcwd(pwd,MAXLINE);
    
        puts(pwd);
    
        return 0;
    }
    
    • 运行截图

  • 相关阅读:
    Python中if __name__ == '__main__':的作用
    Java集合面试题及答案总结(2020版)
    Java多线程面试题及答案(2020版)
    poi: 如何获取cell的行号对应的字母
    gogs: 进入Docker实例并修改MySQL帐号
    多音源多声卡背景音乐播放系统,可在一台电脑上同时播放10种音乐
    弱电图纸中敷设方式符号表示大全
    HashMap集合详解----源码分析--之--高级篇
    正则表达式总结及主要事项
    使用接口进行form表单提交
  • 原文地址:https://www.cnblogs.com/besti155214/p/7856215.html
Copyright © 2011-2022 走看看