Linux内核之页面的换入

在页面表项和页面目录中P标志为0表示相应的物理页面不在内存,从而无法完成本次访问,cpu就会产生一次缺页异常。当页面在内存时,页面表项是一个pet_t结构,指向一个内存页面;当页面不在内存时,则是一个swap_t结构,指向一个盘上页面。

 

处理一次因缺页产生的异常,首先要检查相应的页面是否还在swapper_space的换入/换出队列中尚未释放,那就通过read_swap_cache()分配一个内存页面,并且从盘上将其内容读进来。从磁盘读入页面的时候,不是每次仅仅读入一个页面,而是一次读入一个cluster。预读进来的页面暂时链入活跃页面队列以及swapper_space队列,如果实际不需要就调用进程kswapd和kreclaimd在一段时间以后加以回收。当调用read_swap_cache()时,通常所需的页面已经在活跃队列中,只要找到它就行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值