日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > 互聯(lián)網(wǎng) > 操作系統(tǒng):內(nèi)存管理(概念)

操作系統(tǒng):內(nèi)存管理(概念)

來源:程序員人生   發(fā)布時間:2016-06-25 08:55:49 閱讀次數(shù):2578次

對計(jì)算機(jī)系統(tǒng)而言,操作系統(tǒng)充當(dāng)著基石的作用,它是連接計(jì)算機(jī)底層硬件與上層利用軟件的橋梁,控制其他程序的運(yùn)行,并且管理系統(tǒng)相干資源,同時提供配套的系統(tǒng)軟件支持。對專業(yè)的程序員而言,掌握1定的操作系統(tǒng)知識比不可少,由于不管面對的是底層嵌入式開發(fā),還是上層的云計(jì)算開發(fā),都需要使用到1定的操作系統(tǒng)相干知識。

  • 內(nèi)存管理有哪幾種方式
  • 分段和分頁的區(qū)分是甚么
  • 甚么是虛擬內(nèi)存
  • 甚么是內(nèi)存碎片甚么是內(nèi)碎片甚么是外碎片
  • 虛擬地址邏輯地址線性地址物理地址有甚么區(qū)分
  • Cache替換算法有哪些

內(nèi)存管理有哪幾種方式

常見的內(nèi)存管理方式有塊式管理、頁式管理、段式和段頁式管理。

(1)塊式管理:把主存分為1大塊1大塊的,當(dāng)所需的程序片斷不在主存時就分配1塊主存空間,把程序片斷l(xiāng)oad入主存,就算所需的程序片斷只有幾個字節(jié)也只能把這1塊分配給它。這樣會造成很大的浪費(fèi),平均浪費(fèi)了50%的內(nèi)存空間,但是易于管理。

(2)頁式管理:把主存分為1頁1頁的,每頁的空間要比1塊1塊的空間小很多,這類方法的空間利用率要比塊式管理高很多

(3)段式管理:把主存分為1段1段的,每段的空間又要比1頁1頁的空間小很多,這類方法在空間利用率上又比頁式管理高很多,但是也有另外1個缺點(diǎn)。1個程序片斷可能會被分為幾10段,這樣很多時間就會被浪費(fèi)在計(jì)算每段的物理地址上。

(4)段頁式管理:結(jié)合了段式管理和頁式管理的優(yōu)點(diǎn)。把主存先分成若干段,每一個段又分成若干頁。段頁式管理每取1護(hù)具,要訪問3次內(nèi)存。

分段和分頁的區(qū)分是甚么

頁是信息的物理單位,分頁是為了實(shí)現(xiàn)離散分配方式,以消減內(nèi)存的外零頭,提高內(nèi)存的利用率;或說,分頁僅僅是由于系統(tǒng)管理的需要,而不是用戶的需要。

段是信息的邏輯單位,它含有1組其意義相對完全的信息。分段的目的是為了能更好地滿足用戶的需要。頁的大小固定且由系統(tǒng)肯定,把邏輯地址劃分為頁號和頁內(nèi)地址兩部份,是由機(jī)器硬件實(shí)現(xiàn)的,因此1個系統(tǒng)只能有1種大小的頁面。段的長度卻不固定,決定于用戶所編寫的程序,通常由編譯程序在對源程序進(jìn)程編輯時,根據(jù)信息的性質(zhì)來劃分。

分頁的作業(yè)地址空間是1維的,即單1的線性空間,程序員只需利用1個記憶符,便可表示1地址。分段的作業(yè)地址空間是2維的,程序員在標(biāo)識1個地址時,既需給出段名,又需給出段內(nèi)地址。

甚么是虛擬內(nèi)存

虛擬內(nèi)存簡稱虛存,是計(jì)算機(jī)系統(tǒng)內(nèi)存管理的1種技術(shù)。它是相對物理內(nèi)存而言的,可以理解為“假的”內(nèi)存。它使得利用程序認(rèn)為它具有連續(xù)可用的內(nèi)存(1個連續(xù)完全的地址空間),允許程序員編寫并允許比實(shí)際系統(tǒng)具有的內(nèi)存大很多的程序,這使得許多大型軟件項(xiàng)目能夠在具有有限內(nèi)存資源的系統(tǒng)上實(shí)現(xiàn)。而實(shí)際上,它通常被分割成多個物理內(nèi)存碎片,還有部份暫時存儲在外部磁盤存儲器上,在需要時進(jìn)行數(shù)據(jù)交換。虛存比實(shí)存有以下好處:

(1) 擴(kuò)大地址空間。不管段式虛存,還是頁式虛存,或是段頁式虛存,尋址空間都比實(shí)存大。

(2)內(nèi)存保護(hù)。每一個進(jìn)程運(yùn)行在各自的虛擬內(nèi)存地址空間,相互不能干擾對方。另外,虛存還對特定的內(nèi)存地址提供寫保護(hù),可以避免代碼或數(shù)據(jù)被歹意篡改

(3)公平分配內(nèi)存。采取了虛存以后,每一個進(jìn)程都相當(dāng)于有太陽大小的虛存空間。

(4)當(dāng)進(jìn)程需要通訊時,可采取虛存同享的方式實(shí)現(xiàn)。

不過,使用虛存也是有代價的,主要表現(xiàn)在以下幾個方面:
(1)虛存的管理需要建立很多數(shù)據(jù)結(jié)構(gòu),這些數(shù)據(jù)結(jié)構(gòu)要占用額外的內(nèi)存
(2)虛擬地址到物理地址的轉(zhuǎn)換,增加了指令的履行時間
(3)頁面的換入換出需要磁盤I/O,這是很耗時間的。
(4)如果1頁中只有1部份數(shù)據(jù),會很浪費(fèi)內(nèi)存。

甚么是內(nèi)存碎片?甚么是內(nèi)碎片?甚么是外碎片?

內(nèi)存碎片是由于屢次進(jìn)行內(nèi)存分配釀成的,當(dāng)進(jìn)行內(nèi)存分配時,內(nèi)存格式1般為:(用戶使用段)(空白段)(用戶使用段),當(dāng)空白段很小的時候可能不能提供給用戶足夠需要的空間,可能夾在中間的空白段的大小為5,而用戶需要的內(nèi)存大小為6,這樣會產(chǎn)生很多的間隙造成使用效力的降落,這些很小的空隙叫碎片。

內(nèi)碎片:分配給程序的存儲空間沒有用完,有1部份是程序不使用,但其他程序也沒法用的空間。內(nèi)碎片是處于區(qū)域內(nèi)部或頁面內(nèi)部的存儲塊,占有這些區(qū)域或頁面的進(jìn)程其實(shí)不使用這個存儲塊,而在進(jìn)程占有這塊存儲塊時,系統(tǒng)沒法利用它,直到進(jìn)程釋放它,或進(jìn)程結(jié)束時,系統(tǒng)才有可能利用這個存儲塊。。

由于空間太小,小到?jīng)]法給任何程序分配(不屬于任何進(jìn)程)的存儲空間是外碎片。外部碎片是處于任何已分配區(qū)域或頁面外部的空閑存儲塊,這些存儲塊的綜合可以滿足當(dāng)前申請的長度要求,但是由于它們的地址不連續(xù)或其他緣由,使得系統(tǒng)沒法滿足當(dāng)前申請。

內(nèi)碎片和外碎片是1對矛盾體,1種特定的內(nèi)存分配算法,很難同時解決好內(nèi)碎片和外碎片問題,只能根據(jù)利用特點(diǎn)進(jìn)行取舍。。。

虛擬地址、邏輯地址、線性地址、物理地址有甚么區(qū)分

虛擬地址是指由程序產(chǎn)生的由段選擇符合段內(nèi)偏移地址組成的地址。這兩部份組成的地址并沒有直接訪問物理內(nèi)存,而是要通過分段地址的變換處理后才會對應(yīng)到相應(yīng)的物理內(nèi)存地址。

邏輯地址指由程序產(chǎn)生的段內(nèi)偏移地址。有時直接把邏輯地址當(dāng)做虛擬地址,二者并沒有明確的界限。。

線性地址是指虛擬地址到物理地址變換之間的中間層,是處理器可尋址的內(nèi)存空間(稱為線性地址空間)中的地址。程序代碼會產(chǎn)生邏輯地址,或說是段中的偏移地址,加上相應(yīng)段基址就生成了1個線性地址。如果啟用了分頁機(jī)制,那末線性地址可以再經(jīng)過變換產(chǎn)生物理地址。若沒有采取分頁機(jī)制,那末線性地址就是物理地址。

物理地址是指限制CPU外部地址總線上的尋址物理內(nèi)存的地址信號,是地址變換的終究結(jié)果。

虛擬地址到物理地址的轉(zhuǎn)化方法是與體系結(jié)構(gòu)相干的,1般有分段與分頁兩種方式。以x86CPU為例,分段分頁都是支持的。內(nèi)存管理單元負(fù)責(zé)從虛擬地址到物理地址的轉(zhuǎn)化。邏輯地址是段標(biāo)識+段內(nèi)偏移量的情勢,MMU(Memory Management Unit內(nèi)存管理單元)通過查詢段表,可以把邏輯地址轉(zhuǎn)化為線性地址。如果CPU沒有開啟分頁功能,那末線性地址就是物理地址;如果CPU開啟了分頁功能,MMU還需要查詢頁表來將線性地質(zhì)轉(zhuǎn)化為物理地址:邏輯地址(段表)-》線性地址(頁表)-》物理地址。

映照是1種多對1的關(guān)系,即不同的邏輯地址可以映照到同1個線性地址上;不同的線性地址也能夠映照到同1個物理地址上。而且,同1個線性地址在產(chǎn)生換頁以后,也可能被重新裝載到另外1個物理地址上,所以這類多對1的映照關(guān)系也會隨時間產(chǎn)生變化。。

Cache替換算法有哪些

數(shù)據(jù)可以寄存在CPU或是內(nèi)存中。CPU處理快,但是容量?。粌?nèi)存容量大,但是轉(zhuǎn)交給CPU處理的速度慢。為此需要Cache(緩存)來做1個折衷。最有可能的數(shù)據(jù)先從內(nèi)存調(diào)入Cache,CPU再從Cache讀取數(shù)據(jù),這樣會快許多。但是,Cache中所寄存的數(shù)據(jù)不是100%有用的。CPU從Cache總讀取到有用的數(shù)據(jù)稱為“命中”。

Cache替換算法有隨機(jī)算法、FIFO算法、LRU算法、LFU算法和OPT算法。

(1)隨機(jī)算法(RAND)。隨機(jī)算法就是用隨機(jī)數(shù)產(chǎn)生器產(chǎn)生1個要替換的塊號,將該塊替換出去,此算法簡單、易于實(shí)現(xiàn),而且它不斟酌Cache塊過去、現(xiàn)在及將來的使用情況。但是由于沒有益用上層存儲器使用的“歷史信息”、沒有根據(jù)訪存的局部性原理,故不能提高Cache的命中率,命中率較低。

(2)先進(jìn)先出(FIFO)算法。先進(jìn)先出(First In First Out,F(xiàn)IFO)算法是將最早進(jìn)入Cache的信息塊替換出去。FIFO算法按調(diào)入Cache的前后決定淘汰的順序,選擇最早調(diào)入Cache的字塊進(jìn)行替換,它不需要記錄各字塊的使用情況,比較容易實(shí)現(xiàn),系統(tǒng)開消小,其缺點(diǎn)是可能會把1些需要常常使用的程序可(如循環(huán)程序)也作為最早進(jìn)入Cache的塊替換掉,而且沒有根據(jù)訪存的局部性原理,故不能提高Cache的命中率。由于最早調(diào)入的信息可能以后還要用到,或常常要用到,如循環(huán)程序。此法簡單、方便,利用了主存的“歷史信息”,但其實(shí)不能說最早進(jìn)入的就不常常使用,其缺點(diǎn)是不能正確反應(yīng)程序局部性原理,命中率不高,可能出現(xiàn)1種異?,F(xiàn)象。

(3)近期最少使用(LRU)算法。近期最少使用(Least Recently Used,LRU)算法是將近期最少使用的Cache中的信息塊替換出去。該算法較先進(jìn)先出算法要好1些,但此法也不能保證過去不經(jīng)常使用將來也不經(jīng)常使用。
LRU算法是根據(jù)各塊使用的情況,總是選擇那個最近最少使用的塊被替換。這類方法雖然比較好地反應(yīng)了程序局部性規(guī)律,但是這類替換方法需要隨時記錄Cache中各塊的使用情況,以便肯定哪一個塊是近期最少使用的塊。LRU算法相對公道,但實(shí)現(xiàn)起來比較復(fù)雜,系統(tǒng)開消較大。通常需要對每塊設(shè)置1個稱為計(jì)數(shù)器的硬件或軟件模塊,用以記錄其被使用的情況。

實(shí)現(xiàn)LRU策略的方法有很多種。簡單介紹計(jì)數(shù)器法、寄存器棧法及硬件邏輯比較對法的設(shè)計(jì)思路。

計(jì)數(shù)器法:緩存的每塊都設(shè)置1個計(jì)數(shù)器。計(jì)數(shù)器的操作規(guī)則以下:

  • 被調(diào)入或被替換的塊,其計(jì)數(shù)器清0,而其他的計(jì)數(shù)器則加1
  • 當(dāng)訪問命中時,所有塊的計(jì)數(shù)值與命中塊的計(jì)數(shù)值要進(jìn)行比較,如果計(jì)數(shù)值小于命中塊的計(jì)數(shù)值,則該塊的計(jì)數(shù)值加”1”;如果塊的計(jì)數(shù)值大于命中塊的計(jì)數(shù)值,則數(shù)值不變。最后將命中塊的計(jì)數(shù)器清為“0”
  • 需要替換時,則選擇計(jì)數(shù)值最大的塊被替換。

(4)最優(yōu)替換算法(OPT算法)。使用最優(yōu)替換算法(OPTimal replacement Algorithm)時必須先履行1次程序,統(tǒng)計(jì)Cache的替換情況。有了這樣的先驗(yàn)信息,在第2次履行該程序時即可以用最有效的方式來替換,以到達(dá)最優(yōu)的目的。

前面介紹的幾種頁面替換算法主要是以主存儲器中頁面調(diào)度情況的歷史信息為根據(jù)的,它假定將來主存儲器中的頁面調(diào)度情況與過去1段時間內(nèi)主存儲器中的頁面調(diào)度情況是相同的,明顯,這類假定不總是正確的。最好的算法應(yīng)當(dāng)是選擇將來最久不被訪問的頁面作為被替換的頁面,這類替換算法的命中率1定是最高的,它就是最優(yōu)替換算法。

要實(shí)現(xiàn)OPT算法,唯1的辦法是讓程序先履行1遍,記錄下實(shí)際的頁地址流情況。根據(jù)這個頁地址流才能找出當(dāng)前要被替換的頁面。明顯,這樣做是不現(xiàn)實(shí)的。因此,OPT算法只是1種理想化的算法,但是它也是1種很有用的算法。實(shí)際上,常常把這類算法用來作為評價其他頁面替換算法好壞的標(biāo)準(zhǔn)。在其他條件相同的情況下,哪種頁面替換算法的命中率與OPT算法最接近,那末它就是1種比較好的頁面替換算法。

(5)最少使用算法(LFU算法 Least Frequently Used Algorithm)。選擇最少訪問的頁面作為被替換的頁面。明顯,這是1種公道的算法,由于到目前為止最少使用的頁面,極可能是將來最少訪問的頁面。該算法既充分利用了主存中頁面調(diào)度情況的歷史信息,又正確反應(yīng)了程序的局部性。但是,這類算法實(shí)現(xiàn)起來非常困難,它要為每一個頁面設(shè)置1個很長的計(jì)數(shù)器,并且要選擇1個固定的時鐘為每一個計(jì)數(shù)器定時計(jì)數(shù)。在選擇被替換頁面時,要從所有計(jì)數(shù)器中找出1個計(jì)數(shù)器值最大的計(jì)數(shù)器。

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 91精品国产综合久久久久蜜臀 | 粉嫩精品一区二区三区在线观看 | 精品国产乱码久久久久久蜜臀 | 久久久久高清 | free性中国hd国语page1 | 成人h视频在线观看 | 男人的天堂亚洲 | 四虎伊人| 91麻豆精品国产 | 蜜桃视频一区二区三区 | 久久精品亚洲一区二区 | av成人毛片 | 亚洲一区中文字幕 | 日本综合在线 | 狠狠干导航 | 亚洲精品在线电影 | 亚洲自拍第二页 | 成人免费av电影 | 五月综合激情 | 视频在线观看国产 | 久久久com| 黄色免费网站入口 | 欧美人体一区二区三区 | 亚洲精品一二三区 | 淫片网站| av在线免费网站 | 欧美福利一区二区 | 51av在线 | 精品久久久久久久久久久久久久久 | 免费看黄色网 | 亚洲精品第一页 | 日本精品黄色 | 久久久噜噜噜久久久 | 色综综 | 一区二区三区高清不卡 | 在线a网| 久久国产精品一区 | 国产精品999 | 欧美精品在线视频 | 国产一区二区在线播放 | 久久久久久国产精品 |