libevent是一个事件触发的网络库,适用于windows、linux、bsd等多种平台,内部使用select、epoll、kqueue等系统调用管理事件机制。著名分布式缓存软件memcached也是libevent based,而且libevent在使用上可以做到跨平台,而且根据libeve.....
一、实验内容 实验3:Linux进程管理及其扩展1、阅读并分析Linux内核源代码,了解进程控制块、进程队列等数据结构;2. 实现一个系统调用,使得可以根据指定的参数隐藏进程,使用户无法使用ps或top观察到进程状态。具体要求如下:(1)实现系统调用int hide(pid_t pid, int o...
分类:
其他好文 时间:
2014-09-17 23:11:52
阅读次数:
735
1.系统调用:
应用程序和内核间的桥梁,是应用程序访问内核的入口点;但通常情况下,应用程序通过操作系统提供的API进行编程而不是使用系统调用直接编程; linux的全部系统调用加起来大约只有250个左右。
2.API:
API常以c库(libc)的形式提供,c库提供了绝大部分API,每个系统调用在c库中都有对应的封装函数(通常封装函数与系统调用的名称相同)。系统调用与c库函...
分析linux的性能,可以帮助我们解决应用的问题,调整系统架构,优化产品。先看看Linux自身的系统结构系统调用以上是用户域,以下为内核域。Linux上基本的性能监测工具如下:1)top 或Htop,读取CPU,DRAM,Virtual Memory的信息,能够观察每个进程的状况,主要是CPU的使用情况2)iostat 读取Disk,IO控制器,块设备, 观察Disk 的IO统计数据3)mpsta...
分类:
系统相关 时间:
2014-09-16 14:20:20
阅读次数:
397
上一篇 Windows MFC 全局模态 实现 介绍了一下第一种方法,但是这个方法有个问题是,即使在对话框外不能点击,框外点击鼠标,当前需要操作的窗口也是失去了焦点的。这样用户体验影响比较严重。而且还有个问题是,如果要适配32位、64位系统,要达到全局模态(禁止鼠标效果)需要32、64位两种库,而且要分别被32、64位系统调用。使用条件限制比较严格。...
最近看了linux的SYSTEM V信号量的部分,同时对于信号量的数据结构以及系统调用函数的具体实现进行了分析,现将这部分资料进行一个整理,以便于自己理清思路,同时便于以后的查看,若里面有写的不当之处,还望大家指教。需要说明的是本报告是基于linux-2.6.11版本第一部分 信号量的数据结构1、信...
分类:
其他好文 时间:
2014-09-16 10:31:10
阅读次数:
163
??
1操作系统会为每个进程分配0到4G的虚拟地址
2.关于虚拟内存和物理内存之间的关系
总结:
A程序管理内存的最小单位是page(4096Byte),如果需要的内存不够4096字节,实际上开辟的也是4096字节。
B每个程序对应独立的虚拟内存,调用的时候先找自己的虚拟内存,然后实质上是通过虚拟内存找物理内存。
C每个进程共享操作系统的kern...
分类:
其他好文 时间:
2014-09-16 00:22:59
阅读次数:
255
慢系统调用(Slow system call)该术语适用于那些可能永远阻塞的系统调用。永远阻塞的系统调用是指调用永远无法返回,多数网络支持函数都属于这一类。如:若没有客户连接到服务器上,那么服务器的accept调用就会一直阻塞。慢系统调用可以被永久阻塞,包括以下几个类别:(1)读写‘慢’设备(包括p...
分类:
其他好文 时间:
2014-09-15 17:29:19
阅读次数:
205
VSS- Virtual Set Size 虚拟耗用内存(包含共享库占用的内存) 不是真实当前应用进程所占用的内存。 内存分配的原理从操作系统角度来看,进程分配内存有两种方式,分别由两个系统调用完成:brk和mmap(不考虑共享内存)。1、brk是将数据段(.data)的最高地址指针_e...
分类:
移动开发 时间:
2014-09-13 18:29:15
阅读次数:
242
http://blog.csdn.net/flyingdon/article/details/5107346 kmallochttp://blog.csdn.net/gxfan/article/details/2723455 kmalloc vmalloc和kmap的区别以及下一篇关于内存布局htt...
分类:
其他好文 时间:
2014-09-12 20:29:13
阅读次数:
154