九九热免费在线观看_毛片女人毛片一级毛片毛片_欧美在线视频一区二区_在线免费看av片_精品视频9999_99视频网站

移動端

淺談計算機中存儲模型之物理內存

2018年08月28日 16:18$artinfo.Reprint點擊量:764

  小伙伴們有沒有好奇,數據在計算機內存中,是如何存儲的?計算機中物理內存的模型是怎樣的呢?今天就給大家詳細的介紹一下。
 
  在了解存儲模型之前,我們首先應該了解一下計算機的存儲體系。
 
  個人感覺學這部分的知識應該首先在腦海中抽象出存儲體系,因為無論磁盤,物理內存還是虛擬內存都是互相有聯xi的,抽象出模型有助于我們的理解和記憶。接著需要哪部分知識或再次深入哪部分知識,從體系圖中找。
 
  建議不要在這塊知識拉長戰線,看了前面忘后面。
 

  計算機存儲體系圖
 
  簡述上圖:
 
  從進程開始,我們知道進程運行在內存中,每個進程都有自己獨立的內存地址空間,目的是安全和利用內存,一個進程的地址空間是抽象出來的,屬于虛擬內存,而內存分為虛擬內存和物理內存。
 
  從物理內存分析,物理內存管理分為等長和不等長劃分,等長劃分一般通過位圖來記錄結構,不等長劃分一般通過空閑區表來記錄。
 
  而物理內存的要通過算法來使進程合理分配回收,其中分配算法有四種,回收算法分為四種情況,而內存分配和回收會引起內存碎片問題,內存碎片問題分為內碎片和外碎片,解決方案有壓縮技術。
 
  從虛擬內存分析,分為頁式/段式/段頁式內存管理,中間通過頁表/段表/段頁表來進行物理到虛擬內存的轉換,重點是頁式管理,頁式管理中重要的概念有頁表項,多級頁表,倒排頁表,MMU,快表TLB和頁錯誤/缺頁異常,而虛擬存儲技術中核心概念就是將內存中暫時不用的頁面(內存塊)放入磁盤上,問題是哪些頁面(內存塊)放到磁盤上呢,于是我們引入頁面置換算法,其中OPT為理想置換算法,基本算法有FIFO,FIFO改進后的第二次機會算法和時鐘算法,LRU中老化算法和NRU,既然部分頁面暫存到磁盤上,那么就要聊聊磁盤。
 
  磁盤是硬件,所以要討論它的結構,和如何存取數據,以及磁盤調度的一些算法,此外,虛擬內存還有重要的兩個技術就是內存映射和寫時復制。
 
  物理內存
 
  物理內存其實就是我們機器的實際內存大小,比如我的筆記本電腦內存是4G。我們都知道程序是要加載道內存中才能執行,所以物理內存越大,我們電腦的性能就越好。
 
  位圖
 
  位圖(bitmap),其實就是用位來標記數據。
 
  在等長內存管理中,比如我們將內存等分為大小相同的內存塊,那么一位標記一塊,因為會形成一個位圖。
 

  
       這樣,我們需要多大的塊,只需要匹配bitmap中連續多少個0即可。
 
  空閑區表
 
  在不等長劃分中,比如我們根據進程的大小來分配內存,這是就需要采用空閑區表來存儲空閑的內存。
 


 

  空閑區鏈表只不過是通過鏈式結構將空閑區表中的數據組織起來。
 
  內存分配算法
 
  上面說了我們如何通過數據結構來組織未分配的內存,我們以空閑區鏈表結構為例,下面來說說物理內存的分配算法,有如下四種。
 
  1.適配算法
 
  適配算法是在空閑區鏈表中從頭開始查找符合申請內存大小的塊,直到找到滿足條件的為止,該算法不斷的從頭開始試驗申請,所以大部分使用的都是低地址空間的內容,從而流出了高地址空間來滿足大的申請需求,但是缺點是會在較低的地址空間中頻繁的申請和釋放導致低地址空間中的內存碎片,而且每次都查找都從頭開始,查找效率比較低。
 
  2.下次適配算法
 
  下次適配算法是適配算法的一個改進,它每次從上一次適配的地方開始向下查找,不需要每次都從頭開始,此算法使得內存使用均勻,但是不會有大的內存塊來滿足內存分配。
 
  3.jia適配算法
 
  此算法先按照內存塊的空閑區大小從小到大進行排序,排序后,每次從頭開始匹配,這樣匹配出來的結果肯定是you的,但實際因為比較符合申請內存的大小,會出現很多較小的內存碎片無法使用,并且每次分配后都要重新排序,開銷比較大。
 
  4.差適配算法
 
  此算法按照內存塊的空閑區從大到小進程排序,排序后,有進程申請內存時,將表頭大的內存塊分配給它,這樣如果不能分配則所有不能分配,且將大內存分配給它,若只占用一小部分還可以進行二次分配。
 
  內存回收算法
 
  內存分配且進程使用完后,我們要進行回收,一般而言,內存回收算法和內存的分配算法有著密切的關系。
 
  所以我們僅僅看內存回收算法可能會出現的四種情況。
 


 

  左上為上相鄰,右下相鄰,左下是上下相鄰,右下是上下不相鄰。
 
  內存碎片
 
  什么是內存碎片,就是在內存中占據一定大小的空間卻得不到利用的內存。內存碎片分為內碎片和外碎片。
 
  內碎片:比如按頁式分配等長,那么如果有一個進程需要5頁多內存,那么我們只能給他分配6頁內存,那么這第6頁是未用完的,其中除過一些數據外,我們還有空閑的被該進程占據,其他進程也不能使用。
 
  外碎片:外碎片是還未分出來的,未被進程占用且因為太小或其他不滿足條件再次分配的小的內存塊稱為外碎片。
 
  緊縮技術:我們一般采用緊縮技術來合并小的內存碎片,原理是將暫時不運行的進程安全的移動位置,獨立出內存碎片,從而組裝多個內存碎片合并成一個大的內存塊。
 
  注意的是有些進程并不能被移動,比如正在讀寫IO。
 
  伙伴算法
 
  伙伴算法是Linux底層內存分配回收算法的一種實現。本文只講述伙伴算法的基本原理。伙伴算法基本思想:將內存大小變為二的n此方 。
 
  如果一個程序申請的內存塊大小 m 滿足 2^n-1 < m < 2^n條件,那么就將此時的內存塊分配給它。
 

  如上圖,我們現在需要200K空間,1M等于1024K,如果m小于1M的一半,那么繼續分離m,當分離到256時,剛好能滿足200K的需求,所以分配。
 
  歸還時,采用內存回收算法的思想,看左右相鄰。若沒被占用則合并(也是為什么叫伙伴算法)。
版權與免責聲明: 凡本網注明“來源:智慧城市網”的所有作品,均為浙江興旺寶明通網絡有限公司-智慧城市網合法擁有版權或有權使用的作品,未經本網授權不得轉載、摘編或利用其它方式使用上述作品。已經本網授權使用作品的,應在授權范圍內使用,并注明“來源:智慧城市網www.3121000.com”。違反上述聲明者,本網將追究其相關法律責任。

本網轉載并注明自其它來源(非智慧城市網www.3121000.com)的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或和對其真實性負責,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品第一來源,并自負版權等法律責任。

編輯精選

更多

本站精選

更多

專題推薦

更多

名企推薦

更多

浙公網安備 33010602000006號

主站蜘蛛池模板: 免费看啪啪网站 | 奇米视频7777 | 久久精品国产亚洲精品166m | 国产的毛片 | 2019日本中文字幕 | 国产精品第页 | 久在线视频播放免费视频 | 国产精品88久久久久久妇女 | 韩国一级特黄大片视频看看 | 91成人免费看| 女女久久 | 色婷婷777 | 日韩欧美一区二区三区中文精品 | 欧美精品a∨在线观看不卡 国产精品视频网 | 神马影院91| 国产农村一级一级毛片 | 亚洲精品亚洲人成在线观看 | 尤物在线观看 | 久久亚洲成人精品 | 日日操av| 久久这里只有精品18 | 久久久久久久久毛片精品 | 91福利视频一区 | 国产久草在线 | 国产影视精品一区二区三区 | 色婷婷一区二区三区四区 | 欧美一区二区三区免费看 | 日本亚洲精品成人欧美一区 | 国产91福利视频 | 男人操女人网址 | 亚洲成人二区 | 92久色 | 欧美人成在线观看 | 大地资源在线观看免费动漫 | 99久久精品视频免费 | a一级片在线观看 | 欧美一级免费 | 日韩精品1区2区3区 国产综合人综合 | 免费观看做爰视频ⅹxx午夜 | 99蜜桃在线观看免费视频网站 | 7777女女免费女淫网站 |