摘要:
1. 内核与普通进程获取内存时有何不同?
内核是操作系统中优先级最高的成分,如果某个内核函数请求动态内存,则其必定有正当的理由发出那个请求,内核的内存请求应该立即被满足;内核信任自己,所有的内核函数都被假定是没有错误的,内核函数不必考虑编程错误的保护措施。
而当用户态进程请求分配内存时,进程对动态内存的请求被认为是不紧迫的,当进程的可执行文件被装入时,进程并不一定立即对所有的代码页进行访问,同样的... 阅读全文
posted @ 2013-04-19 14:08
ydzhang
阅读(292)
评论(0)
推荐(0)
摘要:
同一硬件高速缓存行可以映射RAM中多个不同的块,相同大小的对象倾向于存放在高速缓存内相同的偏移量处。在不同slab内具有相同偏移量的对象最终很可能映射到同一高速缓存行中。而使用slab分配器的对象通常是频繁使用的小对象,高速缓存的硬件可能因此而花费内存周期在同一高速缓存行与RAM内存单元之间来来往往的传送两个对象。 如下例:假设cache行为32Bytes,CPU包含512个cache行(缓存大... 阅读全文
posted @ 2013-04-19 14:08
ydzhang
阅读(1041)
评论(0)
推荐(1)
摘要:
1. linux的内存管理的单位?
linux操作系统使用分页内存管理的机制,将内存空间划分成多个页面(页框,大小通常为4K),内核使用struct page结构的页描述符来保存一个页框的状态信息,所有的页描述符存放在全局的mem_map的数组中,每个page结构体大小为32B,故mem_map所占的空间小于整个内存空间的1%(页面大小按4K计算)。 2. 如何标识一个页面是否空闲?
页描述符中... 阅读全文
posted @ 2013-04-19 14:08
ydzhang
阅读(252)
评论(0)
推荐(0)
摘要:
经常有网友问到关于fuse内部实现原理方面的问题,下面的内容是给一个网友的回复,简单的讲述了fuse的原理,并分析了一个特定请求的处理过程。 fuse主要包含3个模块:
一个fuse文件系统模块(1),一个设备驱动模块(2),一个用户空间模块(3) fuse文件系统这一部分跟其它的文件系统实现差不多,实现了一个文件系统应该提供的借口(如read,write,open等),这就是为什么你挂在了用... 阅读全文
posted @ 2013-04-19 14:08
ydzhang
阅读(1687)
评论(0)
推荐(0)
摘要:
学习分布式文件系统时,曾经download了moosefs的源代码,做了简单的测试,发现moose的实现效率还不错,在阅读器源代码时,发现了其封装了C socket接口,于是把相关的文件保存下来了。昨天闲着没事,想测试一下这个socket接口,在测试udp时,发现服务器接收到数据后,不能正确的向客户端返回信息。 阅读了代码发现问题在udpread函数上,udpread的实现如下: int ud... 阅读全文
posted @ 2013-04-19 14:08
ydzhang
阅读(194)
评论(0)
推荐(0)
摘要:
对于单元数据服务器的集群,单元数据服务器会造成瓶颈,很多分布式文件系统通过采用元数据服务器集群的模式进行扩展,首先要解决的问题就是系统的元数据以什么方式分布在元数据服务器集群中。目前一些主流的分布式文件系统中使用的方案主要包括Table-Based Mapping,Hashing-Based Mapping,Static Tree Partitioning,Dynamic Tree Part... 阅读全文
posted @ 2013-04-19 14:08
ydzhang
阅读(655)
评论(0)
推荐(0)
摘要:
2010级文件系统知识培训PPT 祝各位师弟师妹学有所成! 管理员在2009年8月13日编辑了该文章文章。 --> --> 阅读全文
posted @ 2013-04-19 14:08
ydzhang
阅读(151)
评论(0)
推荐(0)
摘要:
1. 用户空间文件系统 用户空间文件系统位十内核之外,实现为一个用户进程或者一个运行库。在用户空间开发文件系统的主要原因是,开发工作相对比较简单。这种方法避免了内核编程的复杂性,极大的简化了开发工作。用户级文件系统的另一个优点是,文件系统可以由用户自己安装,不需要系统管理员的参与,这给用户使用文件系统提供了很大的灵活性。一个运行在用户空间的文件系统这样与用户进程和操作系统进行交互(以读文件操作为... 阅读全文
posted @ 2013-04-19 14:08
ydzhang
阅读(596)
评论(0)
推荐(0)
摘要:
每次逛fuse的sourceforge主页都会有新的收获,今天在Filesystem Based on Fuse列表中,发现了一个fusefile的文件系统,其提供将一个文件挂载到另一个文件上的功能(支持偏移和追加模式),如对于/dev/sda的磁盘文件,通常是不推荐用户直接读写磁盘文件的,一旦不小心破坏了超级块或重要的数据块就麻烦了。此时就可通过fusefile,将/dev/sda的一部分挂载... 阅读全文
posted @ 2013-04-19 14:08
ydzhang
阅读(360)
评论(0)
推荐(0)
摘要:
分布式存储系统中,元数据服务器通常是一个集中管理者,通常由它选择(根据一些负载均衡算法)合适的存储节点来存储文件数据,这就形成了文件元数据中的映射元数据部分,映射元数据记录文件数据分布信息。 常用的实现方法为存储节点周期性的向元数据服务器报告状态信息,元数据服务器根据这些节点的信息选择负载最小的存储节点作为本次请求的数据服务者,这就要求元数据服务器为每个文件维护一个数据分布链,当文件很大,而数据... 阅读全文
posted @ 2013-04-19 14:08
ydzhang
阅读(638)
评论(0)
推荐(0)
浙公网安备 33010602011771号