Linux
文章平均质量分 92
Linux、Unix相关文章
上官宏竹
这个作者很懒,什么都没留下…
展开
-
Linux内存泄漏检测方法总结
Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合。Valgrind由内核(core)以及基于内核的其他调试工具组成。内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务给其他工具;而其他工具则类似于插件 (plug-in),利用内核提供的服务完成各种特定的内存调试任务。Valgrind的体系结构如下图所示内存检测方式无非分为两种:1、维护一个内存操作链表,当有内存申请操作时,将其加入此链表中,当有释放操作时,从申请操作从链表中移除。原创 2022-12-20 21:08:42 · 6526 阅读 · 0 评论 -
Linux内存分配原理
进程调用C=malloc(200K)以后,内存空间如图4:默认情况下,malloc函数分配内存,如果请求内存大于128K(可由M_MMAP_THRESHOLD选项调节),那就不是去推_edata指针了,而是利用mmap系统调用,从堆和栈的中间分配一块虚拟内存。这样子做主要是因为brk分配的内存需要等到高地址内存释放以后才能释放(例如,在B释放之前,A是不可能释放的),而mmap分配的内存可以单独释放。也就是说,如果用malloc分配了A这块内容,然后从来不访问它,那么,A对应的物理页是不会被分配的。原创 2022-12-17 17:43:30 · 993 阅读 · 0 评论 -
多进程、多线程
线程池线程池简介: 多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。 假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。 如果:T1 + T3 远大于 T2,则可以采用线程池,以提高服务器性能。 一个线程池包括以下四个基本组原创 2015-08-26 21:56:36 · 873 阅读 · 0 评论 -
nginx机制详解
nginx架构众所周知,nginx性能高,而nginx的高性能与其架构是分不开的。那么nginx究竟是怎么样的呢?这一节我们先来初识一下nginx框架吧。1、nginx在启动后,在unix系统中会以daemon的方式在后台运行,后台进程包含一个master进程和多个worker进程。我们也可以手动地关掉后台模式,让nginx在前台运行,并且通过配置让nginx取消master进程,从而可以使ngin原创 2015-09-08 21:52:48 · 879 阅读 · 0 评论 -
Linux设备驱动——字符设备驱动
介绍字符设备:是指只能一个字节一个字节读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后数据。字符设备是面向流的设备,常见的字符设备有鼠标、键盘、串口、控制台和LED设备等 每一个字符设备或块设备都在/dev目录下对应一个设备文件。linux用户程序通过设备文件(或称设备节点)来使用驱动程序操作字符设备和块设备。字符设备驱动模型1、cdev结构体struct cdev {原创 2015-09-29 10:46:50 · 441 阅读 · 0 评论 -
Linux进程间同步与通信
文件锁/记录锁http://www.cnblogs.com/dyllove98/archive/2013/06/28/3161371.html原创 2015-09-17 11:54:14 · 325 阅读 · 0 评论 -
Unix环境高级编程
共享内存&文件映射1、文件映射、内存映射(存储映射I/O)P391 【定义】 存储映射I/O使一个磁盘文件与存储空间中的一个缓存相映射。于是当从缓存中取数据,就相当于读文件中的相应字节。与其类似,将数据存入缓存,则相应字节就自动地写入文件。这样,就可以在不使用read和write的情况下执行I/O。 【作用】 1. 直接用内存映射文件来访问磁盘上的数据文件,无需再进行文件的I/0操作. 2原创 2015-09-17 10:51:30 · 789 阅读 · 0 评论 -
Linux内核学习之路
安装编译内核//安装xz-utils$ sudo apt-get install xz-utils//解压.xz的内核文件$xz -d ***.tar.xz$tar -xvf ***.tar原创 2015-10-09 11:34:31 · 616 阅读 · 0 评论 -
ubuntu下的samba配置
该部分由[global]段来完成配置,主要是设置整体的规则,有个参数一般要修改的是workgroup=mygroup,此句提供NT域名或者工作组名,是必须根据实际修改的。一个完整的smb.conf配置文件有两部分组成Global Settings(全局参数设置)和Share Definitions(共享定义)组成。号,这个表示这一行的配置可以更改,修改就要去掉;每个部分有消息头和参数构成,如[global]就是一个消息头,用[]标志。有很多段,都用[]标志开始的,这里要自己根据情况修改。原创 2016-03-21 11:56:03 · 5788 阅读 · 1 评论