zoukankan      html  css  js  c++  java
  • 20155335 俞昆 第十周作业

    Linux内存共享有多种,如mmap()、Posix共享内存、System V 共享内存。

    1>mmp()通过映射一个普通文件实现共享内存,具有文件实体,shmget()对应文件在内存中,无文件实体。

    2>mmp()不建议使用叠加方式共享,shmget()用于多个进程间交换数据。

    3>mmp() shmget() 进程重启后共享内存中的数据都不会丢失;但是机器重启后只有mmp()方式的共享内存可以保存数据

    4>mmap()接口更简单,通用性也更高。

    Linux下IPC机制

    • IPC在linux下的某些进程间的通信机制,它是多个进程之间相互沟通的一种渠道。
    • 在linux下有以下几种种进程间通信的方法:半双工管道、命名管道、消息队列、信号、信号量、共享内存、内存映射文件,套接字等等。
    • 使用这些机制可以为linux下的网络服务器开发提供便捷和灵活而又顽固的框架
    • 共享内存:允许两个或N个进程共享一定的存储区域,因为不需要拷贝数据,所以这是最迅速的一种IPC。

    • 课上测试

      • 解析:填充消除了冲突不命中,对于x和y数组,只有在引用第0个和第4个元素的时候发生不命中。因而命中率为75%。

      • 解析:高速缓存容量为2048,高速缓存结构为(( 32 ),8,8,32)

      • 解析:不同层之间是以为大小传输单元在层与层之间复制,空缓存的不命中叫强制性不命中或冷不命中

      • 解析:存储器层次结构的叫第一层的数据缓存到较高一层。缓存存储器是分区域的,数据总是以块为基本单位在每一层之间传递,块的大小只在相邻传递的两层之间相同

      7.下面代码中()局部性最差

      1 #define N 1000
      2 3
      typedef struct {
      4 int vel[3];
      5 int acc[3];
      6 } point;
      7 8
      point p[N]; 

      A

      1 void clear1(point *p, int n)
      2 {
      3 int i, j;
      4 5
      for (i = 0; i < n; i++) {
      6 for (j = 0; j < 3; j++)
      7 p[i].vel[j] = 0;
      8 for (j = 0; j < 3; j++)
      9 p[i].acc[j] = 0;
      10 }
      11 } 

      B

      1 void clear2(point *p, int n)
      2 {
      3 int i, j;
      4 5
      for (i = 0; i < n; i++) {
      6 for (j = 0; j < 3; j++) {
      7 p[i].vel[j] = 0;
      8 p[i].acc[j] = 0;
      9 }
      10 }
      11 } 

      C

      1 void clear3(point *p, int n)
      2 {
      3 int i, j;
      4 5
      for (j = 0; j < 3; j++) {
      6 for (i = 0; i < n; i++)
      7 p[i].vel[j] = 0;
      8 for (i = 0; i < n; i++)
      9 p[i].acc[j] = 0;
      10 }
      11 } 

      D. 不确定

      • 正确答案: C
      • 解析:函数clear1步长为1,clear2服从步长大于1的模式,clear3在结构间可以来回切换,可以说空间局部性中clear3是最差的

      • 解析:循环具有良好的空间局部性和时间局部性。

      • 解析:程序访问某个向量,步长越小或短,空间局部性越好

      • 解析:磁盘以扇区大小的块来读写数据。

      • 解析:服从公式磁盘容量=柱面数 * 磁盘面数 * 扇区数 * 字节数=4x2x100000x400x512=163.84GB

      • 解析:每个扇区包含相等数量的数据位(通常是512字节)

      • 解析:用来传输数据的总线线路可以分为三个类型:数据线、地址线和控制线

      • 解析:DRAM、SRAM是易失性存储器,PROM可以用紫外线进行消除

      • 解析:RAM分为静态SRAM和动态DRAM。SRAM快于DRAM
      • SRAM(静态):高速缓存存储器。将每个位存储在一个双稳态的存储器单元里面。
      • DRAM(动态):将每个位存储为对一个电容的充电。存储单元对干扰(如光线、噪音等)很敏感;当电容的电压被打扰之后就再次不会恢复。

      • 解析:程序
  • 相关阅读:
    【Git】时光机命令—Git命令
    【Vue.js】vue引入组件报错:该组件未注册?
    【CSS】flex布局初认识
    【Vue.js】基于vue的实时搜索,在结果中高亮显示关键词
    MyBatis介绍并解决jdbc编程的问题
    MyBatis中 #{} 和 ${}的区别
    Mybatis执行操作时控制台日志中显示sql语句
    Mybatis中常见操作(基本操作+动态sql+sql片段+关联映射(resultMap))
    Spring配置初始化和销毁的方法
    平时工作常用linux命令总结
  • 原文地址:https://www.cnblogs.com/xieboke/p/7901074.html
Copyright © 2011-2022 走看看