- 博客(13)
- 资源 (11)
- 收藏
- 关注
原创 忆起小时侯
发现每当想起小学时的事,心中的感动都会让自己喘不过气来,回首起逝去的日子,最值得怀念的还是小学时的事情,那时一切都是最真的,不带一点的修饰。长大以后,要考虑的事情也多了。责任抗在肩膀上,有些事想不去想,是不可能的。我记得,在小学时,老师曾经跟我们说过,等到年纪大的时候,会发现小学时的时光是最值得珍惜的。那时我还不懂,也不会去想这句话的意思。
2009-03-12 18:46:00 495
原创 终于看完了
今天终于将看完了,这本书的确是很好,正好满足了我想了解linux是怎么实现的,而又需要去阅读源代码,这本书就像是linux内核的文档一样,不错,推荐!看了将近2个月,时间的力量是伟大的。期间在csdn写下了大约100篇博客,虽然都不长,但是都是用自己的话将学过的东西表述出来,也许很多地方理解还是错的,希望那天有高人看到了能给我个消息,同时我也好像找个一起研究linux内核的同伴。
2009-03-09 19:31:00 524
原创 semaphore & ipc_message posix message queue & ipc_shared Memory
semaphore每个semaphore用一个sem_array来代表,每个sem_array里包含一个或者多个sem结构,sem代表一个原子信号量,用户使用的semaphore跟内核使用的semaphore有个很大的区别在于,用户的semaphore可以包含多个信号值,每个信号值用sem来代表。如果进程使用semop()操作时带上了SEM_UNDO标志,那么进程对信号量的操作将会被一个sem
2009-03-09 19:12:00 821
原创 linux ipc &pipe fifo
linux进程间通讯的方式有以下几种:1.pipe and fifo2.semaphore3.message4.shared memory region5.socket pipe内核中代表pipe的数据结构是pipe_inode_info,这个结构中有一个buff field用来指定pipe的缓冲区,在2.6.10之前,每个pipe只有一个buff(一个buff包含
2009-03-09 13:46:00 772
原创 swap cache
这个swap cache的作用不是说要加快磁盘的I/O效率,主要是为了防止页面在swap in和swap out时,进程的同步问题,也就是在进行swap out操作时(将页面内容写入磁盘分区时)进程如果发起了对换出页面的访问,系统对其的处理。有了swap cache的存在,如果页面的数据还没有完全写入磁盘时,这个page frame是在swap cache(swap cache有个引用指向页面),
2009-03-06 13:22:00 3975
原创 swap
linux的一个swap area可以是一个分区,也可以是一个文件,因为可以是一个文件,所有每个swap area包含一个或多个swap extent,用swap_extent来进行表示。每个swap_extent代表一个连续的磁盘空间。如果swap area是一个分区,那么它只有一个swap extent,如果是一个文件那么,文件在磁盘上有多少个连续的分区就有多少个swap extent。l
2009-03-06 13:13:00 797
原创 pfra页面回收算法
linux使用两个list来保存所有的page,一个是active list;一个是inactive list。pfra在回收page frame的时候首先是从inactive里开始的。每个page都有两个位来标识page属于的list,以及是否被访问过。它们是PG_active和PG_referenced.由于这两个位值的不同,page可以分为4种状态:1.PG_active=0 PG_re
2009-03-06 13:01:00 1224
原创 reverse mapping
reverse mapping for anonymous pages为了快速地根据page的指针找到对应的page table项,linux在每个page的mapping域里有一个anon_vma结构,是一个list,保存了所有引用它的vm_area_struct,而vm_area_struct的vm_mm项指向mm_struct,在mm_struct里的pgd则指向进程的全局页表。有
2009-03-03 15:08:00 1063
原创 page 的种类,swap的选择
对于swap页面时,页面可以分为一下几类: 1.unredaimable:free page,reserved pages,pages dynamically allocated by the kernel,pages in the kernel mode stacks of the processes,temporarilly locked pa
2009-03-03 13:15:00 1125
原创 read ahead memory
linux为了提高I/O的性能,尽量减少I/O请求的发送,主要是为了提高进程顺序读取文件的效率,提供了read ahead的机制,如果linux判断一个进程在顺序读取文件,那么它会提前读取进程所需文件的数据,放在缓存中。判断的标准是:1.如果进程是第一次读取文件,那么检查进程是不是读取文件的第一个page2.读取的文件page是不是上次读取page的下一个满足上面两个条件的进程,l
2009-03-03 11:31:00 2221
原创 radix tree
这个tree是一种很有趣的tree,我以前都没见过这种树。在linux中,它的非叶节点是一种radix_tree_node结构,叶节点是一个page结构。radix_tree_node包含一个64长度的数组,用来存放叶节点或者非叶节点。每个被插入的page,都有一个index,用来标识这个page应该被插入的位置。比如当这棵树只有一层的时候,根据index的值,将page插入64数组的inde
2009-03-03 11:30:00 5060 1
原创 page cache
page cache是指将磁盘的数据缓存在内存中。缓存的单位是以一个页面为基本单位的(page frame)。跟page cache有关的核心数据结构是address_space,它被inode引用。一个文件的所有page cache都被挂在address_space的radix tree。除了一个页面单位的缓存外,linux还提供了block buffer,它们被存放在一类很特别的page
2009-03-03 11:29:00 932
原创 自己做了一件糊涂事
最近在做一个j2ee项目,要用到hibernate, spring,以前我也做过这方面的东西,用的开发环境是myeclipse,里面有很多自动化的工具,特别是hibernate的反向工程。但是我却打算使用maven,一个我从来没使用过的东西,而且我只想用它的一个自动写在项目所依赖的包。但是代价是我要自己去下hibernate的各种eclipse插件,还要学会怎么使用。以及其它的像tomcat的自动
2009-03-01 15:22:00 588
Python源码剖析
2009-06-19
understanding the linux kernel 3rd
2009-06-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人