内存参数

Linux 下的DMA浅析

不打扰是莪最后的温柔 提交于 2019-11-29 00:02:20
DMA是一种无需CPU的参与就可以让外设和系统内存之间进行双向数据传输的硬件机制。使用DMA可以使系统CPU从实际的I/O数据传输过程中摆脱出来,从而大大提高系统的吞吐率。DMA经常与硬件体系结构特别是外设的总线技术密切相关。 一、DMA控制器硬件结构 DMA允许外围设备和主内存之间直接传输 I/O 数据, DMA 依赖于系统。每一种体系结构DMA传输不同,编程接口也不同。 数据传输可以以两种方式触发:一种软件请求数据,另一种由硬件异步传输。 a -- 软件请求数据 调用的步骤可以概括如下(以read为例): (1)在进程调用 read 时,驱动程序的方法分配一个 DMA 缓冲区,随后指示硬件传送它的数据。进程进入睡眠。 (2)硬件将数据写入 DMA 缓冲区并在完成时产生一个中断。 (3)中断处理程序获得输入数据,应答中断,最后唤醒进程,该进程现在可以读取数据了。 b -- 由硬件异步传输 在 DMA 被异步使用时发生的。以数据采集设备为例: (1)硬件发出中断来通知新的数据已经到达。 (2)中断处理程序分配一个DMA缓冲区。 (3)外围设备将数据写入缓冲区,然后在完成时发出另一个中断。 (4)处理程序利用DMA分发新的数据,唤醒任何相关进程。 网卡传输也是如此,网卡有一个循环缓冲区(通常叫做 DMA 环形缓冲区)建立在与处理器共享的内存中

06文件操作

为君一笑 提交于 2019-11-28 23:08:44
文件操作 文件操作函数在内容中使用的 ZwXXXX 系列,下面是函数一览表 函数名 功能 ZwCreateFile 打开文件 ZwReadFile 读取文件内容 ZwWriteFile 将数据写入文件 ZwQueryInformationFile 查询文件信息 ZwDeleteFile 删除文件 ZwClose 关闭文件 打开/创建文件 在内核中打开文件比较繁琐, 该函数使用了比较多的API: 要打开的文件路径必须设置在 OBJECT_ATTRIBUTES 对象中, 此外, OBJECT_ATTRIBUTES 结构体的对象属性一般可以设置为 OBJ_CASE_INSENSITIVE (不区分大小写) , OBJ_KERNEL_HANDLE( 内核句柄) NTSTATUS createFile(wchar_t * filepath,/*文件路径*/ ULONG access, /*访问权限,: GENERIC_READ, GENERIC_XXX*/ ULONG share,/*文件共享方式: FILE_SHARE_XXX*/ ULONG openModel,/* 打开方式: FILE_OPEN_IF,FILE_CREATE ...*/ BOOLEAN isDir,/*是否为目录*/ HANDLE * hFile /*成功打开的文件句柄*/){​ NTSTATUS status =

实验1 Windows汇编语言开发环境

时光毁灭记忆、已成空白 提交于 2019-11-28 22:50:31
Windows 、 Linux 等现代操作系统都运行于 CPU 的保护模式下。学习保护模式的汇编语言编程,要选用合适的编译、调试工具,编译工具决定了汇编程序的语法、结构,而调试工具则能够帮助我们迅速查找程序中的错误,提高调试效率。 本实验指导书采用 Microsoft 公司的 MASM 6.14 作为编译工具, Microsoft Visual C/C++ 作为开发调试环境。 1.1 汇编程序结构 和其他语言一样,汇编语言的源程序也要符合一定的格式,才能被编译程序所识别和处理。学习和掌握这些格式,是进行汇编编程的第一步。 1.1.1 一个显示字符串的汇编程序 下面是一个简单的汇编程序。 ;程序清单:test.asm(在控制台上显示一个字符串) .386 .model flat, stdcall option casemap:none ; 说明程序中用到的库、函数原型和常量 includelib msvcrt.lib printf PROTO C :ptr sbyte, :vararg ; 数据区 .data szMsg byte “ Hello World! ” , 0ah, 0 ; 代码区 .code start: mov eax, OFFSET szMsg invoke printf, eax ret end start 1.1.2 程序格式 在源程序 test.asm 中

【转贴】内存重要参数详解 RAS CAS

心已入冬 提交于 2019-11-28 22:47:28
内存重要参数详解 RAS CAS 分类: LINUX 2014-09-12 09:41:58 原文地址: 内存重要参数详解 RAS CAS 作者: Reny http://blog.chinaunix.net/u/9205/showart_1091970.h 时序   内存的时序参数一般简写为 2/2/2/6-11/1T的格式,分别代表CAS/tRCD/tRP/tRAS/CMD的值。 2/2/2/6-11/1T中最后两个时序参数,也就是tRAS和CMD(Command缩写),是其中较复杂的时序参数。目前市场上对这两个参数的认识 有一些错误,因为部分内存厂商直接用它们来代表内存性能。 CMD Rate    Command Rate译为“首命令延迟”,这个参数的含义是片选后多少时间可以发出具体的寻址的行激活命令,单位是时钟周期。片选是指对行物理Bank的选择(通过 DIMM上CS片选信号进行)。如果系统指使用一条单面内存,那就不存在片选的问题了,因为此时只有一个物理Bank。   用更通俗的说 法,CMD Rate是一种芯片组意义上的延迟,它并不全由内存决定,是由芯片组把虚拟地址解释为物理地址。不难估计,高密度大容量的系统内存的物理地址范围更大,其 CMD延迟肯定比只有单条内存的系统大,即使是双面单条。Intel对CMD这个问题就非常敏感,因此部分芯片组的内存通道被限制到四个Bank

mysql innodb 性能优化

隐身守侯 提交于 2019-11-28 21:51:56
默认情况下,innodb的参数设置的非常小,在生产环境中远远不够用 比如最重要的两个参数 innodb_buffer_pool_size 默认是8M innodb_flush_logs_at_trx_commit 默认设置的是1 也就是同步刷新log(可以这么理解) innodb_buffer_pool_size: 这是InnoDB最重要的设置,对InnoDB性能有决定性的影响。默认的设置只有8M,所以默认的数据库设置下面InnoDB性能很差。在只有 InnoDB存储引擎的数据库服务器上面,可以设置60-80%的内存。更精确一点,在内存容量允许的情况下面设置比InnoDB tablespaces大10%的内存大小。 innodb_data_file_path:指定表数据和索引存储的空间,可以是一个或者 多个文件。最后一个数据文件必须是自动扩充的,也只有最后一个文件允许自动扩充。这样,当空间用完后,自动扩充数据文件就会自动增长(以8MB为单位)以 容纳额外的数据。例如: innodb_data_file_path=/disk1 /ibdata1:900M;/disk2/ibdata2:50M:autoextend两个数据文件放在不同的磁盘上。数据首先放在ibdata1 中,当达到900M以后,数据就放在ibdata2中。一旦达到50MB,ibdata2将以8MB为单位自动增长

Hbase和Hadoop的内存参数调优

六眼飞鱼酱① 提交于 2019-11-28 19:48:57
1.hadoop的内存配置调优 mapred-site.xml的内存调整 <property> <name>mapreduce.map.memory.mb</name> <value>1536</value> </property> <property> <name>mapreduce.map.java.opts</name> <value>-Xmx1024M</value> </property> <property> <name>mapreduce.reduce.memory.mb</name> <value>3072</value> </property> <property> <name>mapreduce.reduce.java.opts</name> <value>-Xmx2560M</value> </property> yarn-site.xml <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>2048</value> <discription>每个节点可用内存,单位MB</discription> </property> <property> <name>yarn.scheduler.minimum-allocation-mb</name> <value>1024</value>

google浏览器下开发UHF超高频读写器

℡╲_俬逩灬. 提交于 2019-11-28 19:29:17
在google浏览器下采用js脚本开发UHF超高频读写器, API接口有如下所示: .1、UHF读卡器寻卡,符合18000-6C,G2的卡和标签 G2_Inventory(isEPC) G2_Inventory方法通过超高频读卡器YW-602U来寻卡,目前只支持单张卡片。 参数:isEPC:是否读取EPC,isEPC=0,返回卡片的EPC。isEPC=1返回卡片的TID 回调函数返回结果: FunctionID=23, Result:数字,函数执行后的返回值, UID:自定义的序号, CardNo:根据参数返回的EPC或者TID strData:与CardNo相同 ValData:无 3.2、读取UHF标签的内存区域 G2_Read(memType,StartPos, ReadLength,FormatID) G2_Read方法读取UHF标签的内存。 需要的属性: KeyStringMode:表明KeyString的格式,0为16进制字符串, 1为数字字符串. KeyString:密钥字符串. 参数:memType:内存区域,0保留区,1EPC区,2TID区,3用户区 StartPos: 内存起始地址.(必须为偶数) ReadLength:要读取的字节长度.(必须为偶数) FormatID: 数据返回的格式,0为16进制字符串,1为普通字符串. 回调函数返回结果:

tomcat常用配置详解和优化方法

瘦欲@ 提交于 2019-11-28 17:28:55
tomcat常用配置详解和优化方法 参考: http://blog.csdn.net/zj52hm/article/details/51980194 http://blog.csdn.net/wuliu_forever/article/details/52607177 https://www.cnblogs.com/dengyungao/p/7542604.html https://www.cnblogs.com/ysocean/p/6893446.html#_label1 常用配置详解 1 目录结构 /bin:脚本文件目录。 /common/lib:存放所有web项目都可以访问的公共jar包(使用Common类加载器加载)。 /conf:存放配置文件,最重要的是server.xml。 /logs:存放日志文件。 /server/webapps:来管理Tomcat-web服务用的。仅对TOMCAT可见,对所有的WEB APP都不可见(使用Catalina类加载器加载)。 /shared/lib:仅对所有WEB APP可见,对TOMCAT不可见(使用Shared类加载器加载)。 /temp:Tomcat运行时候存放临时文件用的。 /webapps:web应用发布目录。 /work:Tomcat把各种由jsp生成的servlet文件放在这个目录下。删除后,启动时会自动创建。 2

Java面试经典题目合集

我的梦境 提交于 2019-11-28 15:41:14
32 1.”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法?   “static”关键字表明一个成员变量或者是成员方法与类相关,可以在没有所属的类的实例变量的情况下被访问。   Java中static方法不能被覆盖,因为方法覆盖是 基于运行时动态绑定的 ,而static方法是 编译时静态绑定的 。static方法跟类的任何实例都不相关,所以概念上不适用。   java中也不可以覆盖private的方法,因为private修饰的变量和方法只能在当前类中使用,如果是其他的类继承当前类是不能访问到private变量或方法的,当然也不能覆盖。 2.是否可以在static环境中访问非static变量? 因为静态的成员属于类,随着类的加载而加载到 静态方法区内存 ,当类加载时,此时不一定有实例创建,没有实例,就不可以访问非静态的成员。 3.Java支持的数据类型有哪些?什么是自动拆装箱? Java语言支持的8种基本数据类型是: byte short int long float double boolean char 自动装箱是Java编译器在基本数据类型和对应的对象包装类型之间做的一个转化。比如:把int转化成Integer,double转化成Double,等等。反之就是自动拆箱。 Java支持的数据类型包括两种