色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux IO系統(tǒng)簡介和調(diào)度器的工作流程詳細(xì)概述

C語言專家集中營 ? 來源:未知 ? 作者:易水寒 ? 2018-05-27 10:41 ? 次閱讀

Linux I/O 系統(tǒng)簡介

Linux I/O調(diào)度器(Linux I/O Scheduler)是LinuxI/O體系的一個(gè)組件,它介于通用塊層和塊設(shè)備驅(qū)動(dòng)程序之間。如圖 1 所示。

圖1 Linux I/O調(diào)度器介于通用塊層和塊設(shè)備驅(qū)動(dòng)程序之間

Linux IO系統(tǒng)簡介和調(diào)度器的工作流程詳細(xì)概述

當(dāng)Linux內(nèi)核組件要讀寫一些數(shù)據(jù)時(shí),并不是請求一發(fā)出,內(nèi)核便立即執(zhí)行該請求,而是將其推遲執(zhí)行。當(dāng)傳輸一個(gè)新數(shù)據(jù)塊時(shí),內(nèi)核需要檢查它能否通過。Linux IO調(diào)度程序是介于通用塊層和塊設(shè)備驅(qū)動(dòng)程序之間,所以它接收來自通用塊層的請求,試圖合并請求,并找到最合適的請求下發(fā)到塊設(shè)備驅(qū)動(dòng)程序中。之后塊設(shè)備驅(qū)動(dòng)程序會(huì)調(diào)用一個(gè)函數(shù)來響應(yīng)這個(gè)請求。

Linux整體I/O體系可以分為七層,它們分別是:

1. VFS虛擬文件系統(tǒng):內(nèi)核要跟多種文件系統(tǒng)打交道,內(nèi)核抽象了這VFS,專門用來適配各種文件系統(tǒng),并對外提供統(tǒng)一操作接口

2. 磁盤緩存:磁盤緩存是一種將磁盤上的一些數(shù)據(jù)保留著RAM中的軟件機(jī)制,這使得對這部分?jǐn)?shù)據(jù)的訪問可以得到更快的響應(yīng)。磁盤緩存在Linux中有三種類型:Dentry cache ,Page cache , Buffer cache。

3. 映射層:內(nèi)核從塊設(shè)備上讀取數(shù)據(jù),這樣內(nèi)核就必須確定數(shù)據(jù)在物理設(shè)備上的位置,這由映射層(Mapping Layer)來完成。

4. 通用塊層:由于絕大多數(shù)情況的I/O操作是跟塊設(shè)備打交道,所以Linux在此提供了一個(gè)類似vfs層的塊設(shè)備操作抽象層。下層對接各種不同屬性的塊設(shè)備,對上提供統(tǒng)一的Block IO請求標(biāo)準(zhǔn)。

5. I/O調(diào)度層:大多數(shù)的塊設(shè)備都是磁盤設(shè)備,所以有必要根據(jù)這類設(shè)備的特點(diǎn)以及應(yīng)用特點(diǎn)來設(shè)置一些不同的調(diào)度器。

6. 塊設(shè)備驅(qū)動(dòng):塊設(shè)備驅(qū)動(dòng)對外提供高級的設(shè)備操作接口。

7. 物理硬盤:這層就是具體的物理設(shè)備。

5種類型的Linux I/O調(diào)度器

Linux 從2.4內(nèi)核開始支持I/O調(diào)度器,到目前為止有5種類型:Linux 2.4內(nèi)核的 Linus Elevator、Linux 2.6內(nèi)核的 Deadline、 Anticipatory、 CFQ、 Noop,其中Anticipatory從Linux 2.6.33版本后被刪除了。目前主流的Linux發(fā)行版本使用Deadline、 CFQ、 Noop三種I/O調(diào)度器。下面依次簡單介紹:

1 Linus Elevator

在2.4 內(nèi)核中它是第一種I/O調(diào)度器。它的主要作用是為每個(gè)設(shè)備維護(hù)一個(gè)查詢請求,當(dāng)內(nèi)核收到一個(gè)新請求時(shí),如果能合并就合并。如果不能合并,就會(huì)嘗試排序。如果既不能合并,也沒有合適的位置插入,就放到請求隊(duì)列的最后。

2 Anticipatory

Anticipatory的中文含義是"預(yù)料的,預(yù)想的",顧名思義有個(gè)I/O發(fā)生的時(shí)候,如果又有進(jìn)程請求I/O操作,則將產(chǎn)生一個(gè)默認(rèn)的6毫秒猜測時(shí)間,猜測下一個(gè)進(jìn)程請求I/O是要干什么的。這個(gè)I/O調(diào)度器對讀操作優(yōu)化服務(wù)時(shí)間,在提供一個(gè)I/O的時(shí)候進(jìn)行短時(shí)間等待,使進(jìn)程能夠提交到另外的I/O。Anticipatory算法從Linux 2.6.33版本后被刪除了,因?yàn)槭褂肅FQ通過配置也能達(dá)到Anticipatory的效果。

3 DeadLine

Deadline翻譯成中文是截止時(shí)間調(diào)度器,是對Linus Elevator的一種改進(jìn),它避免有些請求太長時(shí)間不能被處理。另外可以區(qū)分對待讀操作和寫操作。DEADLINE額外分別為讀I/O和寫I/O提供了FIFO隊(duì)列。Deadline的工作流程如圖 2 所示。

圖2 Deadline的工作流程

Linux IO系統(tǒng)簡介和調(diào)度器的工作流程詳細(xì)概述

4 CFQ

CFQ全稱Completely Fair Scheduler ,中文名稱完全公平調(diào)度器,它是現(xiàn)在許多 Linux 發(fā)行版的默認(rèn)調(diào)度器,CFQ是內(nèi)核默認(rèn)選擇的I/O調(diào)度器。它將由進(jìn)程提交的同步請求放到多個(gè)進(jìn)程隊(duì)列中,然后為每個(gè)隊(duì)列分配時(shí)間片以訪問磁盤。對于通用的服務(wù)器是最好的選擇,CFQ均勻地分布對I/O帶寬的訪問。CFQ為每個(gè)進(jìn)程和線程,單獨(dú)創(chuàng)建一個(gè)隊(duì)列來管理該進(jìn)程所產(chǎn)生的請求,以此來保證每個(gè)進(jìn)程都能被很好的分配到I/O帶寬,I/O調(diào)度器每次執(zhí)行一個(gè)進(jìn)程的4次請求。該算法的特點(diǎn)是按照I/O請求的地址進(jìn)行排序,而不是按照先來后到的順序來進(jìn)行響應(yīng)。簡單來說就是給所有同步進(jìn)程分配時(shí)間片,然后才排隊(duì)訪問磁盤,CFQ的工作流程如圖 3 所示 。

圖3 CFQ的工作流程

Linux IO系統(tǒng)簡介和調(diào)度器的工作流程詳細(xì)概述

5 NOOP

NOOP全稱No Operation,中文名稱電梯式調(diào)度器,該算法實(shí)現(xiàn)了最簡單的FIFO隊(duì)列,所有I/O請求大致按照先來后到的順序進(jìn)行操作。NOOP實(shí)現(xiàn)了一個(gè)簡單的FIFO隊(duì)列,它像電梯的工作主法一樣對I/O請求進(jìn)行組織。它是基于先入先出(FIFO)隊(duì)列概念的 Linux 內(nèi)核里最簡單的I/O 調(diào)度器。此調(diào)度程序最適合于固態(tài)硬盤。NOOP的工作流程如圖4 所示。

圖4 NOOP的工作流程

I/O調(diào)度器的選擇

目前主流Linux發(fā)行版本使用三種I/O調(diào)度器:DeadLine、CFQ、NOOP,通常來說Deadline適用于大多數(shù)環(huán)境,特別是寫入較多的文件服務(wù)器,從原理上看,DeadLine是一種以提高機(jī)械硬盤吞吐量為思考出發(fā)點(diǎn)的調(diào)度算法,盡量保證在有I/O請求達(dá)到最終期限的時(shí)候進(jìn)行調(diào)度,非常適合業(yè)務(wù)比較單一并且I/O壓力比較重的業(yè)務(wù),比如Web服務(wù)器,數(shù)據(jù)庫應(yīng)用等。CFQ 為所有進(jìn)程分配等量的帶寬,適用于有大量進(jìn)程的多用戶系統(tǒng),CFQ是一種比較通用的調(diào)度算法,它是一種以進(jìn)程為出發(fā)點(diǎn)考慮的調(diào)度算法,保證大家盡量公平,為所有進(jìn)程分配等量的帶寬,適合于桌面多任務(wù)及多媒體應(yīng)用。NOOP 對于閃存設(shè)備和嵌入式系統(tǒng)是最好的選擇。對于固態(tài)硬盤來說使用NOOP是最好的,DeadLine次之,而CFQ效率最低。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • IO
    IO
    +關(guān)注

    關(guān)注

    0

    文章

    448

    瀏覽量

    39132
  • Linux系統(tǒng)
    +關(guān)注

    關(guān)注

    4

    文章

    593

    瀏覽量

    27392
  • 調(diào)度器
    +關(guān)注

    關(guān)注

    0

    文章

    98

    瀏覽量

    5245

原文標(biāo)題:調(diào)整 Linux I/O 調(diào)度器優(yōu)化系統(tǒng)性能

文章出處:【微信號:C_Expert,微信公眾號:C語言專家集中營】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    深入探討Linux的進(jìn)程調(diào)度

    ,以及其運(yùn)行的順序。這篇文章將詳細(xì)探討Linux進(jìn)程調(diào)度工作原理、主要算法、調(diào)度策略以及其在
    的頭像 發(fā)表于 08-13 13:36 ?939次閱讀
    深入探討<b class='flag-5'>Linux</b>的進(jìn)程<b class='flag-5'>調(diào)度</b><b class='flag-5'>器</b>

    AndroidWifi工作流程

    AndroidWifi工作流程
    發(fā)表于 11-02 10:52

    Linux系統(tǒng)調(diào)度簡介

    系統(tǒng)資源的使用,提高系統(tǒng)使用效率。  Linux內(nèi)核中實(shí)現(xiàn)了Scheduler Classes,來實(shí)現(xiàn)多個(gè)調(diào)度類(Scheduler class)的協(xié)同
    發(fā)表于 01-18 14:12

    AndroidWifi工作流程

    AndroidWifi工作流程
    發(fā)表于 09-25 11:17

    AndroidWifi工作流程

    AndroidWifi工作流程
    發(fā)表于 11-08 09:07

    數(shù)字式雷達(dá)信號處理系統(tǒng)工作原理是什么?基本工作流程有哪些?

    數(shù)字式雷達(dá)信號處理系統(tǒng)組成及工作原理是什么?數(shù)字式雷達(dá)信號處理的基本工作流程有哪些?
    發(fā)表于 04-21 06:36

    保存FLASH工作流程寫數(shù)據(jù)流程

    STM32F407HAL用FLASH寫掉點(diǎn)保存FLASH工作流程寫數(shù)據(jù)流程:Flash解鎖——擦除扇區(qū)——寫數(shù)據(jù)到指定空間——上鎖寫保護(hù);讀數(shù)據(jù)流程:從指定地址讀出指定長度數(shù)據(jù)。源文件flash.c
    發(fā)表于 08-23 07:02

    Linux 2.6進(jìn)程調(diào)度

    分析了與Linux 2.6 進(jìn)程調(diào)度密切相關(guān)的一些重要數(shù)據(jù)結(jié)構(gòu),詳細(xì)描述了進(jìn)程調(diào)度的時(shí)機(jī)、調(diào)度的策略和調(diào)
    發(fā)表于 06-13 10:13 ?11次下載

    SIwave 3.0 工作流程簡介

    SIwave 3.0 工作流程簡介  一、PCB 文件調(diào)入 SIwave 3.0(兩種方式) :     Allegro版本為 15.2。   1.運(yùn)行 allegro 的 AnsoftLaunch SIwave 菜單,如
    發(fā)表于 04-05 06:43 ?47次下載

    測試工程師工作流程有哪些

    測試工程師的工作流程,與公司的整體工作流程,項(xiàng)目的測試要求等因素相關(guān)。本文主要討論測試工程師的一般工作流程
    的頭像 發(fā)表于 10-03 16:56 ?7706次閱讀

    雷電的4K工作流程

    在4K的雷電工作流程
    的頭像 發(fā)表于 05-31 11:20 ?2420次閱讀

    英創(chuàng)信息技術(shù)Linux系統(tǒng)調(diào)度簡介

    系統(tǒng)資源的使用,提高系統(tǒng)使用效率。 Linux內(nèi)核中實(shí)現(xiàn)了Scheduler Classes,來實(shí)現(xiàn)多個(gè)調(diào)度類(Scheduler class)的協(xié)同
    的頭像 發(fā)表于 02-05 10:31 ?1231次閱讀
    英創(chuàng)信息技術(shù)<b class='flag-5'>Linux</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>調(diào)度</b><b class='flag-5'>簡介</b>

    工作流程圖怎么用?有哪些繪制工作流程圖的軟件

    工作流程圖是清晰地展示工作中各個(gè)環(huán)節(jié)的流程圖圖示,主要用于工作活動(dòng)和效率的管理。工作流程圖這種圖示方法具有直觀描述性、簡潔性、可操作性和指導(dǎo)
    的頭像 發(fā)表于 07-28 14:22 ?3549次閱讀

    機(jī)器視覺系統(tǒng)的組成及工作流程

    機(jī)器視覺系統(tǒng)的組成及工作流程介紹。
    發(fā)表于 04-19 15:24 ?16次下載

    一套完整的機(jī)器視覺系統(tǒng)工作流程有哪些?

    機(jī)器視覺系統(tǒng)工作流程
    的頭像 發(fā)表于 06-06 15:17 ?2981次閱讀
    一套完整的機(jī)器視覺<b class='flag-5'>系統(tǒng)</b>的<b class='flag-5'>工作流程</b>有哪些?
    主站蜘蛛池模板: 少妇两个奶头喷出奶水了怎么办| G0GO人体大尺香蕉| 精品高潮呻吟99AV无码| 吸奶舔下面| 国产超碰人人爱被IOS解锁| 青青精品国产自在线拍| 99日韩精品| 嫩草AV久久伊人妇女| 3d在线看小舞被躁视频| 久拍国产在线观看| 有码在线播放| 久久国产精品人妻中文| 亚洲午夜久久影院| 黄页免费观看| 亚洲一卡二卡三卡四卡2021麻豆| 国产一区在线观看免费| 亚洲国产AV无码综合在线| 国产啪视频在线播放观看| 息与子在线交尾中文字幕| 国产欧美一本道无码| 校花娇喘呻吟校长陈若雪视频| 国产高清美女一级a毛片久久w| 少妇无码太爽了视频在线播放| 俄罗斯人与动ZOOZ| 爽爽影院线观看免费| 国产精品资源在线观看网站| 午夜天堂一区人妻| 国产在线亚洲精品观| 亚洲精品一二三| 久久国产综合精品欧美| 最近的中文字幕2019国语| 美女张开腿让男人桶爽无弹窗| 2020年国产理论| 欧美国产成人在线| 把腿张开再深点好爽宝贝| 日韩欧美成人免费中文字幕| 姑娘视频日本在线播放| 午夜福利理论片高清在线| 果冻传媒2021精品在线观看| 亞洲人妻AV無碼在線視頻| 久久中文字幕无线观看|