自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

dodobear的小窝窝

兜兜里都是宝贝

  • 博客(13)
  • 资源 (11)
  • 收藏
  • 关注

原创 忆起小时侯

发现每当想起小学时的事,心中的感动都会让自己喘不过气来,回首起逝去的日子,最值得怀念的还是小学时的事情,那时一切都是最真的,不带一点的修饰。长大以后,要考虑的事情也多了。责任抗在肩膀上,有些事想不去想,是不可能的。我记得,在小学时,老师曾经跟我们说过,等到年纪大的时候,会发现小学时的时光是最值得珍惜的。那时我还不懂,也不会去想这句话的意思。

2009-03-12 18:46:00 483

原创 终于看完了

今天终于将看完了,这本书的确是很好,正好满足了我想了解linux是怎么实现的,而又需要去阅读源代码,这本书就像是linux内核的文档一样,不错,推荐!看了将近2个月,时间的力量是伟大的。期间在csdn写下了大约100篇博客,虽然都不长,但是都是用自己的话将学过的东西表述出来,也许很多地方理解还是错的,希望那天有高人看到了能给我个消息,同时我也好像找个一起研究linux内核的同伴。

2009-03-09 19:31:00 512

原创 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 801

原创 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 756

原创 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 3942

原创 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 769

原创 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 1205

原创 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 1044

原创 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 1102

原创 read ahead memory

linux为了提高I/O的性能,尽量减少I/O请求的发送,主要是为了提高进程顺序读取文件的效率,提供了read ahead的机制,如果linux判断一个进程在顺序读取文件,那么它会提前读取进程所需文件的数据,放在缓存中。判断的标准是:1.如果进程是第一次读取文件,那么检查进程是不是读取文件的第一个page2.读取的文件page是不是上次读取page的下一个满足上面两个条件的进程,l

2009-03-03 11:31:00 2207

原创 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 5040 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 901

原创 自己做了一件糊涂事

最近在做一个j2ee项目,要用到hibernate, spring,以前我也做过这方面的东西,用的开发环境是myeclipse,里面有很多自动化的工具,特别是hibernate的反向工程。但是我却打算使用maven,一个我从来没使用过的东西,而且我只想用它的一个自动写在项目所依赖的包。但是代价是我要自己去下hibernate的各种eclipse插件,还要学会怎么使用。以及其它的像tomcat的自动

2009-03-01 15:22:00 577

unix环境高级编程

unix环境编程的圣经,本资源非扫描版,相当清晰

2012-08-11

stl源码剖析

stl,源码解析,程序员必看的经典之作 stl,源码解析,程序员必看的经典之作

2012-01-07

LINUX与UNIX SHELL编程指南

LINUX与UNIX SHELL编程指南

2011-11-04

Imperfect c++ 中文版 pdf

Imperfect c++ 中文版 pdf版,看看

2011-11-02

Introduction+to+3D+Game+Programming+with+DirectX+10

jing dian zhi zuo directx

2010-08-09

Network Programming for Microsoft Windows-2

经典网络编程,大家看看。。。。。。。。。

2010-07-22

hibernate in action

hibernate 的经典之作,分享给大家看看

2009-06-27

spring in action

spring 的经典之作,分享给大家看看

2009-06-27

Python源码剖析

在最高的层次上,Python的整体架构可以分为四个主要的部分,整个架构如图1所示。在左边,是Python提供的大量的模块,库以及用户自定义的模块。比如在执行import os时,这个os就是Python内建的模块,当然用户还可以通过自定义模块来扩展Python系统。在本系列文章中,我们不会对这一部分进行过多的考察。

2009-06-19

understanding the linux kernel 3rd

经典linux书籍 In order to thoroughly understand what makes Linux tick and why it works so well on a wide variety of systems, you need to delve deep into the heart of the kernel. The kernel handles all interactions between the CPU and the external world, and determines which programs will share processor time, in what order. It manages limited memory so well that hundreds of processes can share the system efficiently, and expertly organizes data transfers so that the CPU isn't kept waiting any longer than necessary for the relatively slow disks.

2009-06-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除