Linux文件系统代码学习笔记2——Hash表&内存inode的创建与回收

本文详细介绍了Linux文件系统中内存inode的创建与回收过程,重点解析了iget和iput函数。通过hash表加速inode查找,并探讨了不同引用计数情况下的内存inode管理策略,包括内存inode何时回写到磁盘以及何时从内存中删除。
摘要由CSDN通过智能技术生成

igetput.cpp——内存inode的创建与回收

iget——内存inode的创建

1. hash表的作用

hash队列用来存放内存inode。
但是为什么要弄成队列的样子呢?方便查找?inode编号是唯一的,一个hash表128个队列,假设内存有256个inode
举个栗子,假设要找第129个inode:
inode编号->hash映射得到hash队列编号1->1次就能找到
如果不用hash队列,假设用数组,按照线性存放,要找129次
查找内存inode的操作经常用到,hash表的作用就是为了提高查找内存inode的效率

struct inode * iget(unsigned int dinodeid)
{
    int existed = 0, inodeid;
    long addr;
    struct inode *temp, *newinode;
    int i;
    inodeid = dinodeid % NHINO;//计算内存结点应该在第几个哈希队列里
    if (hinode[in
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值