摘要: 标准I/O库提供缓冲的目的是尽可能地减少使用read和write调用的次数。他也对每个I/O流自动地进行缓冲管理,从而避免了应用程序需要考虑这一点所带来的麻烦。不幸的是,标准I/O库最令人迷惑的也是他的缓冲。 标准I/O提供了三种类型的缓冲: 1、全缓冲。这种情况下,在填满标准I/O缓冲区后才进行实际I/O操作。对于驻留在磁盘上的文件通常是由标准I/O库实施全缓冲。一个流上执行第一... 阅读全文
posted @ 2013-04-19 14:04 ydzhang 阅读(1553) 评论(0) 推荐(0)
摘要: 最近要将一个算法应用到分布式系统中,以前由于急着想实现这个算法(涉及到矩阵),于是就使用了C++的stl(用了string和vector),主要是方便二维数组参数的传递以及数组长度的自动管理,后来很方便的实现了。 三天前开始把算法往系统中移植,问题来了。系统全部用C写的,算法模块用C++实现的,于是又一下几种方式: 1,将整个系统用g++重新编译成c++程序,因为系统与文件系统有关,而kern... 阅读全文
posted @ 2013-04-19 14:04 ydzhang 阅读(145) 评论(0) 推荐(0)
摘要: proc文件系统是一个特殊文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。" 1、从/proc文件系统获取相关的性能参数 cpu使用率: /proc/stat 内存使用情况: /proc/meminfo 网络负载信息: /proc/net/dev相应的计算方法:(摘自:... 阅读全文
posted @ 2013-04-19 14:04 ydzhang 阅读(275) 评论(0) 推荐(0)
摘要: 方法1:形参给出第二维的长度 #include <stdio.h>void func(int n, char str[][5]){int i;for (i = 0; i < n; i++){printf("\nstr[%d] = %s\n", i, str[i]);}}int main(){char str[][5] = {"abc", "def", "ghi"};func(3, str... 阅读全文
posted @ 2013-04-19 14:04 ydzhang 阅读(215) 评论(0) 推荐(0)
摘要: 受人所托,写了个文件监视器小程序,总共300+行,实现对指定文件的监视功能,当文件新增,删除,或被修改,程序予以记录并报告。 实现是通过不断扫描指定的文件,通过比较两次扫描的状态来判断文件的变化。文件状态数据结构:/* filestat struct for monitoring */typedef struct filestat{ char f_name[FNAME_MAX]; struct s... 阅读全文
posted @ 2013-04-19 14:03 ydzhang 阅读(316) 评论(0) 推荐(0)
摘要: Ext2设计思想: Ext2 features 1, 支持4TB大文件。 2, 支持255字符的文件名,并可扩展到1012字节。 3, 为root用户预留一些块。 Advanced ext2 features 1, 支持多种块大小,1024,2048,4096. 2, 快速的符号链接实现(小于60个字符的连接名时不需要额外分配块)。 3, 追踪文件系统状态,是否为dirty,是否一致等,设置最大... 阅读全文
posted @ 2013-04-19 14:03 ydzhang 阅读(237) 评论(0) 推荐(0)
摘要: 关键字 详细说明 分布式文件系统 研究point 1,性能,容量,可用性,安全性,可扩展性,可管理性 2,用户组件与数据管理组件的分离, 3,key:服务客户的响应时间 分布式文件系统应该具有的特性 1,网络透明性:客户端使用访问本地资源的方法访问网络资源 2,容错性:网络错误,主机,存储设备故障发生时,系统仍能正常提供服务(可降级,更慢的响应) 3,可扩展性:系统规模扩大时... 阅读全文
posted @ 2013-04-19 14:03 ydzhang 阅读(385) 评论(0) 推荐(0)
摘要: ONC RPC(Open Network Computing Remote Procedure Call)是一个由Sun Microsystem公司开发的开源的RPC框架。它是用于UNIX系统的RPC事实标准。ONC RPC已经被证明是一项高性能的技术。包括Solaris,AIX,HP UX,Linux等在内的大多数UNIX平台都支持RPC服务。在传统的编程概念中,过程是由程序员在本地编译完成,并只能局限在本地运行的一段代码,即其主程序和过程之间的运行关系是本地调用关系,这种结构在网络日益发展的今天已无法适应实际需求。众所周知,传统过程调用模式无法充分利用网络上其他主机的资源(如CPU、Mem 阅读全文
posted @ 2013-04-19 14:03 ydzhang 阅读(3203) 评论(1) 推荐(1)
摘要: 一直弄不清楚的IOZONE请求大小终于清楚了,原来IOzone中的记录大小是由其应用层划分的,最简单的情形是多个for循环read。 文件系统的读写速率与读写的文件大小是没有多大关系的,在写的时候可能大文件的在写元数据及数据组织方面比小文件的开销要大,所以写效率随测试文件大小的增加会有小幅度的下降。关键影响文件系统效率的其实是上层的请求大小,大的文件在应用层分为多个请求,请求的大小由应用程序决定... 阅读全文
posted @ 2013-04-19 14:03 ydzhang 阅读(790) 评论(1) 推荐(0)
摘要: 一、编译和连接一般来说,如果库的头文件不在 /usr/include 目录中,那么在编译的时候需要用 -I 参数指定其路径。由于同一个库在不同系统上可能位于不同的目录下,用户安装库的时候也可以将库安装在不同的目录下,所以即使使用同一个库,由于库的路径的不同,造成了用 -I 参数指定的头文件的路径也可能不同,其结果就是造成了编译命令界面的不统一。如果使用-L 参数,也会造成连接界面的不统一。编译和连接界面不统一会为库的使用带来麻烦。为了解决编译和连接界面不统一的问题,人们找到了一些解决办法。其基本思想就是:事先把库的位置信息等保存起来,需要的时候再通过特定的工具将其中有用的信息提取出来供编译和连 阅读全文
posted @ 2013-04-19 14:03 ydzhang 阅读(626) 评论(0) 推荐(0)