转自:http://blog.chinaunix.net/uid-7374279-id-4413316.html 介绍Linux内存管理和内存映射的奥秘.同时讲述设备驱动程序是如何使用“直接内存访问”(DMA)的.尽管你可能反对,认为DMA更属于硬件处理而不是软件接口,但我觉得与硬件控制比起来,它与内存管理更相关.这一章比较高级:大多数驱动程序的作者并不需要太深入到系统内部.不过理解内存如何工作可以帮助你在设计驱动程序时有效地利用系统的能力.       共 享内存可以说是最有用的进程间通信方式…
转: http://www.cnblogs.com/leo0000/p/5691483.html linux下共享库的注意点之-fpic 在编译共享库必须加上-fpic.这是为什么呢? 首先看一个简单的例子: #include <stdio.h> int fun1() { printf("fun1\n"); } 先不加-fpic的情况下生成库,反汇编查看fun1的机器码 0000044c <fun1>: 44c: 55 push %ebp 44d: 89 e5…
一.共享内存相关知识 所谓共享内存,就是多个进程间共同地使用同一段物理内存空间,它是通过将同一段物理内存映射到不同进程的 虚拟空间来实现的.由于映射到不同进程的虚拟空间中,不同进程可以直接使用,不需要像消息队列那样进行复制,所以共享内存的效率很高.共享内存可以通过mmap()映射普通文件机制来实现,也可以System V共享内存机制来实现,System V是通过映射特殊文件系统shm中的文件实现进程间的共享内存通信,也就是说每个共享内存区域对应特殊文件系统shm中的一个文件. 二.共享内存原理…
linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合: ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head linux下获取占用内存资源最多的10个进程,可以使用如下命令组合: ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head 命令组合解析(针对CPU的,MEN也同样道理): ps aux|head -1;ps aux|grep -v PID|sort -rn -k…
1.CPU占用最多的前10个进程: ps auxw|head -1;ps auxw|sort -rn -k3|head -10 2.内存消耗最多的前10个进程 ps auxw|head -1;ps auxw|sort -rn -k4|head -10 3.虚拟内存使用最多的前10个进程 ps auxw|head -1;ps auxw|sort -rn -k5|head -10 4.也可以试试 ps auxw --sort=rssps auxw --sort=%cpu 5.看看几个参数含义 %ME…
https://www.cnblogs.com/hts-technology/p/8477291.html (一)ElasticSearch需要jdk1.8以上版本的支持,所以需要先安装jdk.linux下如何安装可以查看另一篇博客 linux下如何安装jdk(二)在es官网下载tar版本(三)下载后传到linux系统home/es(目录可自选)下,使用tar -zxvf 压缩包名 解压缩(四)解压后进入bin目录,执行sh elasticsearch,发现出现错误,说不能以root用户执行.所…
查看防火墙,是否将修改之后的端口加入防火墙规则内,如没有,加入规则内,重启防火墙,如果还是无法访问,请看第二步 执行bin目录下shutdown.sh脚本,如果正常关闭,则执行startup.sh脚本,开启tomcat服务,如果不能正常关闭,显示java异常之类的错误,则执行第三步 进入/etc/profile,查看java环境变量是否配置正确,若果有错,修改(linux下配置环境变量是用:,windows下是;),修改完成之后,执行source命令,使修改后的环境变量立即生效 此时在开启tom…
一.下载 首先第一步要下载三个rpm安装包,为了方便安装与学习,给出下载途径 网盘网址:https://pan.baidu.com/s/18Z64Lb9KQpRh10RzqZBdoQ 提取码:094v 二.放到虚拟机或者远程Linux服务器上(通过Xftp远程工具访问) 三.在Linux下执行命令安装以上三个安装包 注:必须先安装erlang和socat,再安装rabbitmq 命令:rpm -ivh xxx.rpm (--force --nodeps)可选,忽略依赖 出现这样的界面就表示安装成…
一.常用函数 函数系列头文件 #include <sys/types.h> #include <sys/ipc.h> #include <sys/shm.h> ftok(): 系统建立IPC通讯(如消息队列.共享内存时)必须指定一个ID值.通常情况下,该id值通过ftok函数得到. key_t ftok( char * fname, int id );//当成功执行的时候,一个key_t值将会被返回,否则 -1 被返回. 应用举例: key_t key = ftok(&…
转载请注明来源:https://www.cnblogs.com/hookjc/ 这里的"不相干",定义为: 这几个进程没有父子关系,也没有 Server/Client 关系 这一片共享内存一开始不存在,第一个要访问它的进程负责新建 也没有额外的 daemon 进程能管理这事情 看上去这是一个很简单的问题,实际上不简单.有两大问题: 进程在持有互斥锁的时候异常退出 如果用传统 IPC 的 semget 那套接口,是没法解决的.实测发现,down 了以后进程退出,信号量的数值依然保持不变.…