copy_to_user與mmap的工作原理

來源:互聯網
上載者:User

  copy_to_user在每次拷貝時需要檢測指標的合法性,也就是使用者空間的指標所指向的地址的確是一段該進程本身的地址,而不是指向了不屬於它的地方,而且每次都會拷貝一次資料,頻繁訪問記憶體,由於虛擬位址連續,物理地址不一定會連續,從而造成CPU的CACHE頻繁失效,從而使速度降低   
  mmap僅在第一次使用時為進程建立頁表,也就是將一段物理地址映射到一段虛擬位址上,以後操作時不再檢測其地址的合法性(合法性交由CPU頁保護異常來做),另一方面是核心下直接操作mmap地址,可以不用頻繁拷貝,也就是說在核心下直接可用指標向該地址操作,而不再在核心中專門開一個緩衝區,然後將緩衝區中的資料拷貝一次進來,mmap一般是將一段連續的物理地址映射成一段虛擬位址,當然,也可以將每段連續,但各段不連續的物理地址映射成一段連續的虛擬位址,無論如何,其物理地址在每段之中是連續的,這樣一來,就不會造成CPU的CACHE頻繁失效,從而大大節約時間。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.