<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[存储实验室]]></title><description><![CDATA[专注存储领域]]></description><link>https://blog.youkuaiyun.com/metaxen</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; metaxen]]></copyright><item><title><![CDATA[博客迁移]]></title><link>https://blog.youkuaiyun.com/metaxen/article/details/7237496</link><guid>https://blog.youkuaiyun.com/metaxen/article/details/7237496</guid><author>metaxen</author><pubDate>Mon, 06 Feb 2012 17:45:43 +0800</pubDate><description><![CDATA[新地方 http://way4erver.com]]></description><category></category></item><item><title><![CDATA[mongodb中的oom-killer的问题]]></title><link>https://blog.youkuaiyun.com/metaxen/article/details/7188689</link><guid>https://blog.youkuaiyun.com/metaxen/article/details/7188689</guid><author>metaxen</author><pubDate>Mon, 09 Jan 2012 23:17:51 +0800</pubDate><description><![CDATA[本文主要内容


遇到问题什么是Overcommit和OOM？overcommit的策略当oom-killer发生时，linux会选择杀死哪些进程实验结论

遇到的问题 
在对mongodb的GridFS进行压力测试时(128M内存，几十个读写进程)，经常触发oom-killer。轻则mongod进程被系统杀死，重则整个系统假死(终端没有反应，SSH可以建立连接，但是登录不上，系统可以]]></description><category></category></item><item><title><![CDATA[分布式文件系统MFS、Ceph、GlusterFS、Lustre的比较]]></title><link>https://blog.youkuaiyun.com/metaxen/article/details/7108958</link><guid>https://blog.youkuaiyun.com/metaxen/article/details/7108958</guid><author>metaxen</author><pubDate>Wed, 28 Dec 2011 15:01:28 +0800</pubDate><description><![CDATA[MooseFS(MFS)


Ceph


GlusterFS


Lustre




Metadata server


单个MDS。存在单点故障和瓶颈。


多个MDS，不存在单点故障和瓶颈。MDS可以扩展，不存在瓶颈。


无，不存在单点故障。靠运行在各个节点上的动态算法来代替MDS,不需同步元数据,无硬盘I/O瓶颈。


双MDS(互相]]></description><category></category></item><item><title><![CDATA[对Amazon EBS 的测试]]></title><link>https://blog.youkuaiyun.com/metaxen/article/details/7078016</link><guid>https://blog.youkuaiyun.com/metaxen/article/details/7078016</guid><author>metaxen</author><pubDate>Fri, 16 Dec 2011 16:35:11 +0800</pubDate><description><![CDATA[未完成...]]></description><category></category></item><item><title><![CDATA[Linux内核态抢占机制分析]]></title><link>https://blog.youkuaiyun.com/metaxen/article/details/6963454</link><guid>https://blog.youkuaiyun.com/metaxen/article/details/6963454</guid><author>metaxen</author><pubDate>Sat, 12 Nov 2011 20:44:20 +0800</pubDate><description><![CDATA[【摘要】本文首先介绍非抢占式内核(Non-Preemptive Kernel)和可抢占式内核(Preemptive Kernel)的区别。接着分析Linux下有两种抢占：用户态抢占(User Preemption)、内核态抢占(Kernel Preemption)。然后分析了在内核态下：如何判断能否抢占内核(什么是可抢占的条件)；何时触发重新调度(何时设置可抢占条件)；抢占发生的时机(何时检查可抢]]></description><category></category></item><item><title><![CDATA[多协议存储系统  MPX系列磁盘阵列]]></title><link>https://blog.youkuaiyun.com/metaxen/article/details/6957370</link><guid>https://blog.youkuaiyun.com/metaxen/article/details/6957370</guid><author>metaxen</author><pubDate>Thu, 10 Nov 2011 18:55:00 +0800</pubDate><description><![CDATA[MPX多协议存储系统快完工了，下面是整个系统的截图。http://photo.163.com/zrzhit@yahoo.com.cn]]></description><category></category></item><item><title><![CDATA[写笔记也是一种享受]]></title><link>https://blog.youkuaiyun.com/metaxen/article/details/6842858</link><guid>https://blog.youkuaiyun.com/metaxen/article/details/6842858</guid><author>metaxen</author><pubDate>Mon, 03 Oct 2011 18:55:23 +0800</pubDate><description><![CDATA[Evernote让你享受思路从指尖流出的感觉。]]></description><category></category></item><item><title><![CDATA[Interrupts and Exceptions (中断事件与异常事件)]]></title><link>https://blog.youkuaiyun.com/metaxen/article/details/6747669</link><guid>https://blog.youkuaiyun.com/metaxen/article/details/6747669</guid><author>metaxen</author><pubDate>Sun, 04 Sep 2011 19:47:22 +0800</pubDate><description><![CDATA[1    Interrupts事件与Exceptions事件的区别
 
Interrupts事件和Exceptions事件的共同点是改变当前CPU的控制流。
 Interrupts：异步事件(跟当前指令无关)。事件是由CPU外部产生的。 

Interrupts事件产生]]></description><category></category></item><item><title><![CDATA[第27章  1KOS版本说明]]></title><link>https://blog.youkuaiyun.com/metaxen/article/details/6747664</link><guid>https://blog.youkuaiyun.com/metaxen/article/details/6747664</guid><author>metaxen</author><pubDate>Sun, 04 Sep 2011 19:29:25 +0800</pubDate><description><![CDATA[版本


功能


头文件


源码文件




1kos.01.tar.gz


打印1kos booting....。
把软驱A中的第二个扇区中的。程序复制到0x7e00上。
程序跳转到0x7e00上。
打印love weiwei...]]></description><category></category></item><item><title><![CDATA[第26章 总结]]></title><link>https://blog.youkuaiyun.com/metaxen/article/details/6747658</link><guid>https://blog.youkuaiyun.com/metaxen/article/details/6747658</guid><author>metaxen</author><pubDate>Sun, 04 Sep 2011 19:27:40 +0800</pubDate><description><![CDATA[需要完善的事情：
1、把任务的硬件切换变成软件切换。
2、自己写一套双向链表和HASH表的库函数，便于代码复用。]]></description><category></category></item><item><title><![CDATA[第25章 实现进程间通信(IPC)]]></title><link>https://blog.youkuaiyun.com/metaxen/article/details/6747650</link><guid>https://blog.youkuaiyun.com/metaxen/article/details/6747650</guid><author>metaxen</author><pubDate>Sun, 04 Sep 2011 19:25:42 +0800</pubDate><description><![CDATA[目标：实现系统调用
int send_msg(int pid, struct msg *msg);
int receive_msg(struct msg *msg);





消息结构如下所示：
#define TASK_MSG_NR    10
struct]]></description><category></category></item><item><title><![CDATA[第24章 任务中定时器的设计与实现]]></title><link>https://blog.youkuaiyun.com/metaxen/article/details/6747631</link><guid>https://blog.youkuaiyun.com/metaxen/article/details/6747631</guid><author>metaxen</author><pubDate>Sun, 04 Sep 2011 19:18:16 +0800</pubDate><description><![CDATA[目标：实现定时器功能，实现系统调用sleep。


定时器的定义如下所示，系统使用定时器链表管理定时器。

struct timer{
    struct task_struct *task;
    struct timer *next, *prev;
    in]]></description><category></category></item><item><title><![CDATA[第23章 扩展任务管理模块]]></title><link>https://blog.youkuaiyun.com/metaxen/article/details/6747626</link><guid>https://blog.youkuaiyun.com/metaxen/article/details/6747626</guid><author>metaxen</author><pubDate>Sun, 04 Sep 2011 19:10:42 +0800</pubDate><description><![CDATA[1、增加任务的HASH表，HASH值是任务的PID，这样通过任务的PID就能查找到任务的task_struct。
2、增加任务挂起队列、死亡队列。

运行态的任务在运行队列。被挂起的任务在挂起队列。被杀死的任务在死亡队列。
3、增加任务挂起函数、任务唤醒函数、任务杀死函数]]></description><category></category></item><item><title><![CDATA[第22章 系统时间(RTC编程)]]></title><link>https://blog.youkuaiyun.com/metaxen/article/details/6747620</link><guid>https://blog.youkuaiyun.com/metaxen/article/details/6747620</guid><author>metaxen</author><pubDate>Sun, 04 Sep 2011 19:09:02 +0800</pubDate><description><![CDATA[取得当前系统时间的方法是直接访问RTC芯片。
RTC芯片可以通过0x70和0x71端口直接访问。0x70是选址寄存器，0x71是数据寄存器。

Addr Function
==== =========================================
**]]></description><category></category></item><item><title><![CDATA[第21章 内存管理的设计与实现]]></title><link>https://blog.youkuaiyun.com/metaxen/article/details/6747607</link><guid>https://blog.youkuaiyun.com/metaxen/article/details/6747607</guid><author>metaxen</author><pubDate>Sun, 04 Sep 2011 19:06:45 +0800</pubDate><description><![CDATA[内存管理的目标是提供：

内核函数：void *sys_malloc(unsigned long size); void *sys_free(void *);
系统调用函数 void * malloc(unsigned long size); void * free(voi]]></description><category></category></item><item><title><![CDATA[第20章 内联汇编]]></title><link>https://blog.youkuaiyun.com/metaxen/article/details/6747599</link><guid>https://blog.youkuaiyun.com/metaxen/article/details/6747599</guid><author>metaxen</author><pubDate>Sun, 04 Sep 2011 18:59:38 +0800</pubDate><description><![CDATA[C/C+代码与汇编代码间有交接，双方要指定交接人。交接人之间传值，完成C/C++代码与汇编代码的沟通。

内联汇编执行步骤：
1、C/C++代码把值传给汇编代码(输入)
2、内联汇编中的汇编语句
3、汇编代码把值传回给C/C++代码(输出)

可以参考《Develo]]></description><category></category></item><item><title><![CDATA[第19章 管理系统与元数据]]></title><link>https://blog.youkuaiyun.com/metaxen/article/details/6747598</link><guid>https://blog.youkuaiyun.com/metaxen/article/details/6747598</guid><author>metaxen</author><pubDate>Sun, 04 Sep 2011 18:58:42 +0800</pubDate><description><![CDATA[管理资源的系统都是管理系统，OS也是管理系统。


描述资源的数据都是元数据
1、如何设计元数据

详细的元数据可以从多角度、多维度描述资源 可以更好的管理资源
2、如何存取元数据

元数据的格式 元数据存放的位置(分配和回收) 访问元数据(共享、竞争)]]></description><category></category></item><item><title><![CDATA[第18章 锁的使用]]></title><link>https://blog.youkuaiyun.com/metaxen/article/details/6747596</link><guid>https://blog.youkuaiyun.com/metaxen/article/details/6747596</guid><author>metaxen</author><pubDate>Sun, 04 Sep 2011 18:58:01 +0800</pubDate><description><![CDATA[假如当前任务有锁，当时钟中断产生时，在任务调度上也需要这把锁，这就陷入死锁状态。
解决办法是在task_stuct 上新增成员 lock_count，当前任务没有锁时(lock_count == 0)才可以调度。]]></description><category></category></item><item><title><![CDATA[第17章  互斥量的设计与实现]]></title><link>https://blog.youkuaiyun.com/metaxen/article/details/6747587</link><guid>https://blog.youkuaiyun.com/metaxen/article/details/6747587</guid><author>metaxen</author><pubDate>Sun, 04 Sep 2011 18:57:06 +0800</pubDate><description><![CDATA[当所有的任务在同个单一地址空间下，使用共享资源时，必然涉及到共享资源的竞争。只有多个任务互斥地访问共享资源时才不会发生错误。只有提供互斥或信号量才能保证内核并发机制。


任何互斥尝试必须基于一些基础硬件互斥机制。最常见的这种约束是某一时刻对内存的一次访问。(intel处理]]></description><category></category></item><item><title><![CDATA[第16章 测试任务调度算法]]></title><link>https://blog.youkuaiyun.com/metaxen/article/details/6747582</link><guid>https://blog.youkuaiyun.com/metaxen/article/details/6747582</guid><author>metaxen</author><pubDate>Sun, 04 Sep 2011 18:50:00 +0800</pubDate><description><![CDATA[如何知道任务调度算法是正确的，可以创建800个(包括任务0)任务(当前任务优先级数目为32)，任务执行下面的代码。
 void task_func(void)
 {
        int pid = current->pid;
        int x,y,z;]]></description><category></category></item></channel></rss>