新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Linux文件系統的異步I/O擴展

        Linux文件系統的異步I/O擴展

        作者: 時間:2011-05-10 來源:網絡 收藏

        2

          對于桌面計算機來說,能夠快速的響應用戶的請求,這也是十分關鍵的。換句話說,當用戶移動鼠標的時候,不管正在進行什么天大的、重要的、神圣的、不可打斷的工作,它都得立即停下,并且要讓鼠標立即流暢的在計算機屏幕上完美地運動起來。對于習慣在傳統的 命令行上工作的讀者朋友們來說,讓鼠標能夠在任何時間都可以在計算機屏幕上向無頭蒼蠅一樣地亂竄,竟然被當成是最重要的系統任務,這實在有一點讓人難以接受。不過,當你從 命令行上轉移到 GNOME 或者 KDE 這樣的圖形界面的用戶環境的時候,鼠標被鎖死,百分之百的也是會讓你失去理智的。所以,還是讓我們接受這一個現實,看一看如何才能增加系統的響應速度吧。

          從系統的角度講,特別是考慮到網絡系統,它的響應速度有可能會相當的慢。當用戶在文件管理程序中,選擇了對文件進行某一個操作以后,文件系統可能會需要相當長的時間,才能完成這一操作。如果文件管理程序必須要等待文件系統完成這一操作,然后才能繼續的話,這顯然會給文件管理程序的用戶帶來非常不愉快的經歷。解決這一個問題的辦法,就是要實現的文件系統

          在 Linux 的 Gnome 桌面環境中,由 GnomeVFS 包裹了真正的 Linux 文件系統 ,實現了一個的文件系統 I/O 接口 API。我們可以看到下面這個用 GnomeVFS 打開文件的例子。

          enum _GnomeVFSOpenMode {

          GNOME_VFS_OPEN_NONE = 0,

          GNOME_VFS_OPEN_READ = 1 0,

          GNOME_VFS_OPEN_WRITE = 1 1,

          GNOME_VFS_OPEN_RANDOM = 1 2

          };

          typedef enum _GnomeVFSOpenMode GnomeVFSOpenMode;

          typedef void (* GnomeVFSAsyncOpenCallback)

          (GnomeVFSAsyncHandle *handle,

          GnomeVFSResult result,

          gpointer callback_data);

          GnomeVFSResult gnome_vfs_async_open

          (GnomeVFSAsyncHandle **handle_return,

          const gchar *text_uri,

          GnomeVFSOpenMode open_mode,

          GnomeVFSAsyncOpenCallback callback,

          gpointer callback_data);

          我們注意到,上面的代碼段中,用戶程序為了打開一個文件,向 GnomeVFS 注冊了一個 call back 例程。在注冊了這一個 call back 例程之后,函數調用就立即返回給用戶程序,用戶程序就可以處理自己的別的事情去了,比如進一步響應來自用戶的其??肭螅?鵲取6?蔽募?低懲瓿啥暈募?拇蚩?僮饕院螅GnomeVFS 就會調用剛剛注冊的 call back 例程,通知用戶程序,文件已經打開。

          3 小結

          我們在本文中了解了 Linux Kernel 中的 dnotify,可以幫助我們實時地監視文件系統目錄樹中的變化情況;也了解了 Gnome 桌面環境的 GnomeVFS 異步文件系統 I/O ;可以幫助用戶程序不至于被文件系統的請求所 Block。這兩個功能對于 Linux 系統在桌面上的應用都是很重要的。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        p2p機相關文章:p2p原理



        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 东乡族自治县| 五常市| 阳信县| 镇康县| 邹平县| 姚安县| 顺平县| 桓台县| 南江县| 阿坝县| 久治县| 玉溪市| 镇安县| 文昌市| 曲松县| 漯河市| 驻马店市| 孟州市| 杨浦区| 和林格尔县| 肇庆市| 张家港市| 泗洪县| 盈江县| 庆安县| 斗六市| 富源县| 上杭县| 弥渡县| 溧阳市| 赫章县| 门头沟区| 资源县| 乌什县| 灵丘县| 江门市| 瑞丽市| 吉木萨尔县| 乾安县| 乌拉特后旗| 宜春市|