一个计算机的磁盘系统是否采用raid,完全是从实际应用的需求出发的:如果我不需要这么高的吞吐率,为什么要花那么多的投资在这里?这个完全和操作系统的种类无关。至于说到“windows用raid的则比较少”,只能说是莫名其妙了:因为是否使用raid和使用何种操作系统完全没有逻辑上的因果关系,拿来这么类比,能说明什么问题呢?我思故我在 写了: 除了在文件系统上追求更快的读写速度。类unix服务器也常采取raid策略加快存取,windows用raid的则比较少。
“我思故我在”朋友也许忘记了Windows也有服务器版本,而我昨天晚上发的那个测试结果,也至少表明都在默认设置的情况下:Windows服务器版本对NTFS的性能,远远高于Ubuntu v6.10桌面版对EXT3的性能。当然,我现在手上没有可供测试的*nix服务器版本的系统,拿两者一起比较,也许会更有说服力。另外,提醒一下,在中小型服务器中,Windows服务器版本同样占据着相当大的比例。我思故我在 写了: 在硬件上,服务器常用SCSI硬盘,个人则常用IDE。而SCSI是比IDE更快的。服务器多用类unix,个人则是windows。
这话的逻辑,显然没有整理好:不错,WinXP默认只能有一个用户登陆,但是这意味着这个用户同时只能有一个磁盘操作吗?显然不是。我思故我在 写了: 从用户需求来说:以windows XP为例,它默认同时只能一个用户操作。而类unix诞生时即是为多用户同时处理设计。多用户同时对磁盘读写与单用户磁盘读写谁需要更快的速度也是显而易见的。
熟悉Windows编程的人都知道Windows下有一种"Overlapped"模型,完全可以实现异步的磁盘IO操作。这个时候,操作系统会自行优化和控制多个磁盘操作的请求。这点上和*nix没有什么不同。
另外,还想说一下:熟悉编程的都知道,虽然多线程或者多任务在结构设计上比较方便,也有利于提高并发数。但是,如果单纯论速度或者效率的话,肯定是不如单任务的。因为多任务下的任务切换和现场保存需要额外的性能开销,更不用说如果需要进行并发保护--例如说加(互斥)锁--的话,那么带来的性能损失其实是不可能忽略不计的。所以“我思故我在”朋友举例出*nix“为多用户同时处理设计”的例子,恰恰说明*nix的系统设计的重点在于并发的安全性,而不是速度上,所以牺牲速度和效率来保证安全性是必然的选择。