日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Linux高級I/O機制

系統(tǒng) 2160 0

Linux高級I/O機制

Linux高級I/O機制

一、課程目標

I/O常常是現(xiàn)代應(yīng)用程序的性能瓶頸,為突破這個瓶頸,現(xiàn)代操作系統(tǒng)不斷推出新的I/O機制,使高性能的I/O編程變成可能。本次課程將討論Linux下幾種高性能I/O的機制,這些功能都是基于成熟的系統(tǒng)調(diào)用,通過本次課程的學(xué)習(xí),學(xué)員將掌握以下內(nèi)容:

  • 傳統(tǒng)File I/O;
  • 散/聚 I/O (Scatter/Gather I/O);
  • 阻塞式和非阻塞式I/O;
  • I/O多路復(fù)用;
  • select() ,? poll();
  • Event poll (epoll);
  • 異步I/O;
  • 運用I/O多路復(fù)用機制和異步I/O機制提高網(wǎng)絡(luò)應(yīng)用的并發(fā)響應(yīng)和性能。

二、參訓(xùn)要求

參加本次課程的學(xué)員須具備以下能力:

  • 本次課程使用 C語言 教學(xué),所以學(xué)員需擁有較好的C語言基礎(chǔ);
  • 能熟練使用常用的Linux命令;
  • 由于本次課程涉及socket編程,所以學(xué)員需有Linux下socket編程的經(jīng)歷;
  • 能熟練使用gcc、gdb、熟練撰寫makefile;
  • 最好熟練使用vi、emacs等文本編輯器其中的一種。

三、課程實踐環(huán)境

  • 學(xué)員自備電腦
  • 操作系統(tǒng):GNU/Linux 2.6+(建議使用Redhat AS 5+或Ubuntu、Fedora)
  • 編譯器:GCC v4.1+、GDB v7.0+
  • 可選IDE:Eclipse CDT

四、課程大綱

本次課程由以下幾個部分構(gòu)成:

1、預(yù)備知識

  • 理解:UNIX下一切皆文件
  • I/O的實質(zhì)和I/O的步驟

2、文件I/O

  • Linux I/O系統(tǒng)調(diào)用與C標準庫stdio的比較
  • I/O系統(tǒng)調(diào)用: open(), close(), read(), write()
  • 控制I/O的Buffer
  • 讀寫指針的定位:lseek()
  • I/O控制:ioctl()
  • 原子操作和數(shù)據(jù)競態(tài)
  • 文件控制: fcntl()
  • 文件打開的狀態(tài)標志(status flags)
  • 文件描述符
  • 復(fù)制文件描述符 (dup(), dup2())


3、散/聚I/O
(Scatter/Gather I/O)

  • 什么是散/聚 I/O,為什么需要散/聚 I/O
  • 系統(tǒng)調(diào)用:readv(), writev()


4、I/O多路復(fù)用
(I/O Multiplexing)

  • 什么是I/O多路復(fù)用
  • I/O多路復(fù)用和多線程并發(fā)處理I/O的區(qū)別
  • select(), poll():傳統(tǒng)的UNIX I/O多路復(fù)用機制

    ?

    • select(), pselect()
    • poll(), ppoll()
  • Epoll:Linux系統(tǒng)新的I/O多路復(fù)用機制

    ?

    • Event poll介紹
    • 創(chuàng)建epoll實例
    • 控制epoll
    • 等待I/O事件
    • epoll的兩種觸發(fā)方式:水平觸發(fā)(level-triggered)、邊緣觸發(fā)(edge-triggered)

5、異步I/O

  • 關(guān)于同步I/O:阻塞式I/O和非阻塞式I/O
  • 什么異步I/O
  • 理解同步I/O和異步I/O的差別
  • 異步I/O重要數(shù)據(jù)結(jié)構(gòu):異步I/O控制塊--struct aiocb
  • 異步讀、寫操作:aio_read(), aio_write()
  • 檢查異步操作的結(jié)果:aio_error(), aio_return()
  • 取消異步操作:aio_cancel()
  • 異步文件同步:aio_fsync()

6、使用高性能I/O機制提高網(wǎng)絡(luò)服務(wù)端應(yīng)用的性能

  • 為什么傳統(tǒng)的I/O機制會導(dǎo)致服務(wù)端應(yīng)用的性能瓶頸
  • 使用select()和poll()實現(xiàn)ACE中的Reactor模式
  • 使用epoll實現(xiàn)ACE中的Reactor模式
  • 在網(wǎng)絡(luò)應(yīng)用中使用異步I/O機制:模擬ACE中Proactor模式和框架
  • 實例演示,區(qū)別傳統(tǒng)I/O機制和高性能I/O機制對于服務(wù)端應(yīng)用的重要性

五、時間安排

課程時間:2天,以每天6小時計,具體安排如下:

  • Day1

    ?

    • 1 - 預(yù)備知識
    • 2 - 文件I/O
    • 3 - 散/聚 I/O
    • 4 - I/O多路復(fù)用
  • Day2

    ?

    • 5 - 異步I/O
    • 6 - 高性能I/O機制和網(wǎng)絡(luò)服務(wù)端應(yīng)用

六、課程資源

????? 可獲取的課程資源見: 教學(xué)資源

Linux高級I/O機制


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 浑源县| 阿拉尔市| 克拉玛依市| 曲周县| 清涧县| 马公市| 饶阳县| 浦县| 元氏县| 望江县| 华阴市| 驻马店市| 横峰县| 基隆市| 莒南县| 遂昌县| 合阳县| 平安县| 双辽市| 驻马店市| 宜川县| 奎屯市| 正定县| 洪湖市| 嘉鱼县| 怀来县| 曲周县| 格尔木市| 德庆县| 化德县| 桃源县| 新蔡县| 通州市| 杭锦后旗| 玉环县| 北票市| 沈丘县| 大石桥市| 宜春市| 玛多县| 镶黄旗|