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(动态):将每个位存储为对一个电容的充电。存储单元对干扰(如光线、噪音等)很敏感;当电容的电压被打扰之后就再次不会恢复。

    • 解析:程序

转载于:https://www.cnblogs.com/xieboke/p/7901074.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值