1. 程式人生 > >linux檔案系統的系統分析--(十二)vfs層的三個hashtable

linux檔案系統的系統分析--(十二)vfs層的三個hashtable

vfs_caches_init中有三個重要的hashtablemount_hashtabledentry_hashtable inode_hashtable

Hashtable有什麼作用?主要的查詢的效率很高,vfs層用這三個就是為了提高查詢效率。另外一個,inodedentry是記憶體中的資料,而資料的來源是硬碟,如果我們獲得了inodedentry資料,加到hashtable中,方便下一次的快速獲取,而不是再次訪問硬碟。

Mount_hashtable:

mnt_init中完成mount_hashtable的初始化。而在掛載檔案系統的時候,一個重要函式graft_tree會將檔案系統的vfsmount

結構體內嵌的structlist_headmnt_hash加入到mount_hashtable中。這樣在做檔案系統掛載或者路徑查詢時,有需要做檔案系統轉換的時候,比如follow_mountfollow_down函式都會呼叫lookup_mnt__lookup_mnt可以快速的查詢要轉換的檔案系統。

Dentry_hashtable:

dcache_init中完成dentry_hashtable的初始化。在路徑查詢中就會用到這個hashtableLink_path_walkdo_lookupd_lookup__d_lookup

structhlist_head *head = d_hash(parent,hash);

同樣的利用hash快速找到dentry

Inode_hashtable:

inode_init中完成inode_hashtable的初始化。比如sysfs_get_inodeiget_locked:

structhlist_head *head = inode_hashtable + hash(sb, ino); //利用inode_hashtable快速查詢

而且iget_lockedget_new_inode_fast__inode_add_to_lists

hlist_add_head(&inode->i_hash,head);

利用inode內嵌的structhlist_node i_hash

結構加入到inode_hashtable,方便以後的查詢。

相關推薦

linux檔案系統系統分析--()vfshashtable

在vfs_caches_init中有三個重要的hashtable:mount_hashtabledentry_hashtable inode_hashtable Hashtable有什麼作用?主要的查詢的效率很高,vfs層用這三個就是為了提高查詢效率。另外一個,inode

Linux初級運維()——磁碟及檔案系統管理

一、磁碟管理        1、 機械式硬碟:             U盤、光碟、軟盤、硬碟、磁帶  &nb

linux系統學習第天-<<工程師技術>>

linux工程師技術 linux管理員技術 linux雲計算工程師 深圳雲計算王森 雲計算運維工程師 虛擬化概述 ? Virtualization 資源管理 – x個物理資源 --> y個邏輯資源 – 實現程度:完全、部分、硬件輔助(CPU) 手動新建一臺虛擬機:

Linux學習總結(六)shell腳本5-監控系統開發

shell 腳本 監控系統 需求:使用shell定制各種個性化告警工具,但需要統一化管理、規範化管理。思路:指定一個腳本包,包含主程序、子程序、配置文件、郵件引擎、輸出日誌等。主程序:作為整個腳本的入口,是整個系統的命脈。配置文件:是一個控制中心,用它來開關各個子程序,指定各個相關聯的日誌文件。子

系統技術非業餘研究 » Linux檔案預讀分析以及評估對系統的影響

Linux系統很重要的一個性能提升點就是它的Pagecache, 因為記憶體比IO快太多了,所以大家都想進辦法來利用這個cache。 檔案系統也不例外,為了達到高效能,檔案讀取通常採用預讀來預測使用者的行為,把使用者可能需要的資料預先讀取到cache去,達到高效能的目的。 Linux各個發行版re

Linux檔案系統中的傳輸,打包及壓縮相關命令

一、Linux檔案在系統中的傳輸 scp的上傳和下載 上傳:scp  file  [email protected]:/dir 下載:scp  [email protected]:/file  dir 詳細截圖可在文章:Linux系統中ssh與sshd服務

linux——檔案系統的傳輸

檔案在系統的傳輸 1.scp scp就是secure copy,一個在linux下用來進行遠端拷貝檔案的命令。 有時我們需要獲得遠端伺服器上的某個檔案,該伺服器既沒有配置ftp伺服器,也沒有做共享,無法通過常規途徑獲得檔案時,只需要通過簡單的scp命令便可達到目的。 2.rs

Linux檔案系統中方的傳輸

一、檔案的傳輸 搭建實驗環境 1、在/mnt下建立幾個檔案 2、改變使用者及生產組 3、改變檔案許可權 4、給westos1建立快捷方式file 1、scp 傳送:scp /mnt/wedtos*  [email protected]:/mnt

Python系統學習第

單繼承和多繼承 單繼承:每個類只能允許繼承一個類 多繼承:每個類允許繼承多個類 單繼承優缺點 傳承有序邏輯清楚語法清晰語法簡單隱患少 功能不能無限擴充套件,只能在當前唯一的繼承鏈中擴充套件 多繼承 優點:類的功能擴充套件方便

第4階段——制作根文件系統分析init_post()如何啟動第1程序(2)

函數 mage cpu 腳本 init block ebo pat images 本節目標: (1) 了解busybox(init進程和命令都放在busybox中) (2) 創建SI工程,分析busybox源碼來知道init進程做了哪些事情 (3) 分析busybox中i

Linux學習總結(四)lnmp訪問控制篇

lnmp 防盜鏈 訪問控制 反向代理 1 nginx 配置防盜鏈 防盜鏈的原理我們在lamp中已經有介紹,這裏不再重復,直接看配置過程。核心語句為 valid_referers none blocked server_names *.test.com ; if ($invalid

Linux學習總結(五)keepalived 配置高可用

keepalived 高可用 nginx 一 集群介紹 根據功能劃分為兩大類:高可用和負載均衡 高可用集群通常為兩臺服務器,一臺工作,另外一臺作為冗余,當提供服務的機器宕機,冗余將接替 繼續提供服務 實現高可用的開源軟件有:heartbeat、keepalived 負載均衡集群,需要有一臺服

Linux學習總結(七)虛擬化之kvm

虛擬機克隆 sel rap hat 額外 模塊 destroy start -s 一 虛擬化介紹 1 常見虛擬化軟件VMware系列VMware workstation、VMware vsphere(VMware esxi)、VMware Fusion(Mac) Xen 開

[Abp 源碼分析]、多租戶體系與權限驗證

表達式 如何實現 進入 urn tty token asp.net hang 都是 0.簡介 承接上篇文章我們會在這篇文章詳細解說一下 Abp 是如何結合 IPermissionChecker 與 IFeatureChecker 來實現一個完整的多租戶系統的權限校驗的。 1

PE檔案格式學習():TLS表

1.介紹 TLS全稱執行緒區域性儲存器,它用來儲存變數或回撥函式。 TLS裡面的變數和回撥函式都在程式入口點(AddressOfEntry)之前執行,也就是說程式在被除錯時,還沒有在入口點處斷下來之前,TLS中的變數和回撥函式就已經執行完了,所以TLS可以用作反除錯之類的操作。

Linux Bash Shell學習() 流程控制——select

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

第二章:非同步和檔案I/O.(

雖然每個方法都被定義為返回Task或Task 物件,但是方法的主體沒有任何對Task或Task 的引用。相反,返回Task物件的方法只是執行一些工作,然後使用隱式return語句結束該方法。 ExistsAsync方法定義為返回Task 但返回true或false。 (StorageFolder類中沒有Exi

Spring系列之Spring框架和SpringAOP整合過程分析()

轉載請註明出處:https://blog.csdn.net/zknxx/article/details/80808447 在這篇文章中我們接著上一篇的文章說。在上一篇文章中我們提到了getAdvicesAndAdvisorsForBean這個方法,這個方法的內

linux音訊alsa驅動分析 時鐘

DAI 通過位時鐘BCLK驅動 DAI 也通過幀時鐘驅動 幀時鐘 LRC 或者 frame。  幀時鐘和取樣率是一樣的 The Digital Audio Interface is usually driven by a Bit Clock (often referred  as BCLK). Th

ABP原始碼分析:本地化

本文逐個分析ABP中涉及到locaization的介面和類,以及相互之間的關係。本地化主要涉及兩個方面:一個是語言(Language)的管理,這部分相對簡單。另一個是語言對應得本地化資源(Localization)的管理,這部分稍顯複雜。 LanguageInfo:用於封裝language的基本