垂死挣扎-2
P135
請(qǐng)求分段系統(tǒng)是在分段系統(tǒng)的基礎(chǔ)上,增加了請(qǐng)求調(diào)段功能和分段置換功能所形成的分段式虛擬存儲(chǔ)系統(tǒng)。分段式存儲(chǔ)管理方式分配算法與可變分區(qū)的分配算法相似,可以采用最佳適應(yīng)法、最壞適應(yīng)法和首次適應(yīng)法等分配算法。顯然仍然要解決外碎片的問(wèn)題。
- ??首次?適應(yīng)分配算法:?這種算法按分區(qū)序號(hào)從空閑分區(qū)表的第一個(gè)表目開(kāi)始查找該表,?把最先找到的大于或等于作業(yè)大小的空閑分區(qū)分給要求的作業(yè)?。然后,再按照作業(yè)的大小,從該分區(qū)中劃出一塊內(nèi)存空間分配給作業(yè),余下的空閑分區(qū)仍留在空閑分區(qū)表中。如果查找到分區(qū)表的最后仍沒(méi)有找到大于或等于該作業(yè)的空閑區(qū),則此次分配失敗。?優(yōu)點(diǎn):優(yōu)先利用內(nèi)存中低址部分的空閑分區(qū),而高址部分的空閑分區(qū)很少被利用,從而保留了高址部分的大空閑區(qū)。為以后到達(dá)的大作業(yè)分配大的內(nèi)存空間創(chuàng)造了條件。缺點(diǎn):低址部分不斷被劃分,致使留下許多難以利用的、很小的空閑分區(qū)。?
- 循環(huán)?首次?適應(yīng)分配算法:?這種算法是由最先適應(yīng)分配算法經(jīng)過(guò)改進(jìn)而形成的。在為作業(yè)分配內(nèi)存時(shí),不再每次從空閑分區(qū)表的第一個(gè)表項(xiàng)開(kāi)始查找,而是從上次找到的空閑區(qū)的下一個(gè)空閑區(qū)開(kāi)始查找,直至找到第一個(gè)能滿足要求的空閑區(qū)為止,并從中劃分出一塊與請(qǐng)求大小相等的內(nèi)存空間分配給作業(yè)。為實(shí)現(xiàn)該算法,應(yīng)設(shè)置一起始查找指針,以指示下一次開(kāi)始查找的空閑分區(qū),并采用循環(huán)查找方式。即如果最后一個(gè)空閑分區(qū)的大小仍不能滿足要求,則返回到第一個(gè)空閑分區(qū)進(jìn)行查找。?優(yōu)點(diǎn)?:內(nèi)存中的空閑區(qū)分布得更均勻,減少查找空閑分區(qū)的開(kāi)銷。?缺點(diǎn)?:系統(tǒng)中缺乏大的空閑分區(qū),對(duì)大作業(yè)不利。
- 最佳適應(yīng)分配算法?:該算法從所有未分配的分區(qū)中挑選一個(gè)?最接近作業(yè)大小且大于或等于作業(yè)的空閑分區(qū)分配給作業(yè)?,目的是使每次分配后剩余的碎片最小。為了查找到大小最合適的空閑分區(qū),需要查遍整個(gè)空閑分區(qū)表,從而增加了查找時(shí)間。因此,為了加快查找速度,要求將所有的空閑分區(qū),按從小到大遞增的順序進(jìn)行排序。這樣,第一次找到的滿足要求的空閑分區(qū),必然是最佳的。?缺點(diǎn):每次分配之后形成的剩余部分,卻是一些小的碎片,不能被別的作業(yè)利用。因此,該算法的內(nèi)存利用率是不高的。?
- 最壞適應(yīng)分配算法:?該算法從所有未分配的分區(qū)中挑選一個(gè)?最大的空閑分區(qū)分配給作業(yè)?,目的是使分配后剩余的空閑分區(qū)足夠大,可以被別的作業(yè)使用。為了查找到最大的空閑分區(qū),需要查遍整個(gè)空閑分區(qū)表,從而增加了查找時(shí)間。因此,為了加快查找速度,要求將所有的空閑分區(qū)按從大到小遞減的順序進(jìn)行排序。這樣,第一次找到的空閑分區(qū),必然是最大的。優(yōu)點(diǎn):最壞適應(yīng)分配算法在分配后剩余的空閑分區(qū)可能比較大,仍能滿足一般作業(yè)的要求,可供以后使用。從而最大程度地減少系統(tǒng)中不可利用的碎片。缺點(diǎn):這種算法使系統(tǒng)中的各空閑分區(qū)比較均勻地減小,工作一段時(shí)間以后,就不能滿足對(duì)較大空閑分區(qū)的分配要求。
?
?
在虛擬存儲(chǔ)系統(tǒng)中,若進(jìn)程在內(nèi)存中占三塊(開(kāi)始時(shí)為空,采用先進(jìn)先出頁(yè)面淘汰算法,當(dāng)執(zhí)行訪問(wèn)頁(yè)號(hào)序列為1、2、3、4、1、2、5、1、2、3、4、5、6時(shí),將產(chǎn)生( )次缺頁(yè)中斷。
先進(jìn)先出頁(yè)面替換算法(The First-In First-Out Page Replacement Algorithm)。顧名思義,這種算法的思路是把所有已在內(nèi)存中的頁(yè)面組織成一個(gè)隊(duì)列(也可以是一個(gè)鏈表),每次當(dāng)有頁(yè)面換入到內(nèi)存中的時(shí)候,就添加到隊(duì)列的末尾;當(dāng)需要頁(yè)面換出時(shí),直接從隊(duì)列中移除頁(yè)面。把留在內(nèi)存中時(shí)間最長(zhǎng)的頁(yè)面換出內(nèi)存, 1?? 1 2?? 12 3?? 123 4?? 234 1?? 341 2?? 412 5?? 125 1 2 3? ?253 4?? 534 5 6? 346?
?
?
操作系統(tǒng)采用緩沖技術(shù),通過(guò)減少對(duì)CPU的()次數(shù),提高資源的利用率。
引入緩沖的主要原因包括:緩和CPU與I/O設(shè)備間速度不匹配的矛盾;減少對(duì)CPU的中斷頻率,放寬對(duì)中斷響應(yīng)時(shí)間的限制;提高CPU和I/O設(shè)備之間的并行性。所以采用緩沖技術(shù),可減少對(duì)CPU的中斷次數(shù),從而提高系統(tǒng)效率。
?
?
多級(jí)反饋隊(duì)列調(diào)度算法是一種CPU處理機(jī)調(diào)度算法,UNIX操作系統(tǒng)采取的便是這種調(diào)度算法。 **多級(jí)(假設(shè)為N級(jí))反饋隊(duì)列調(diào)度算法可以如下原理** 1、設(shè)有N個(gè)隊(duì)列(Q1,Q2....QN),其中各個(gè)隊(duì)列對(duì)于處理機(jī)的優(yōu)先級(jí)是不一樣的,也就是說(shuō)位于各個(gè)隊(duì)列中的作業(yè)(進(jìn)程)的優(yōu)先級(jí)也是不一樣的。一般來(lái)說(shuō),優(yōu)先級(jí)Priority(Q1) > Priority(Q2) > ... > Priority(QN)。怎么講,位于Q1中的任何一個(gè)作業(yè)(進(jìn)程)都要比Q2中的任何一個(gè)作業(yè)(進(jìn)程)相對(duì)于CPU的優(yōu)先級(jí)要高(也就是說(shuō),Q1中的作業(yè)一定要比Q2中的作業(yè)先被處理機(jī)調(diào)度),依次類推其它的隊(duì)列。 2、對(duì)于某個(gè)特定的隊(duì)列來(lái)說(shuō),里面是遵循時(shí)間片輪轉(zhuǎn)法。也就是說(shuō),位于隊(duì)列Q2中有N個(gè)作業(yè),它們的運(yùn)行時(shí)間是通過(guò)Q2這個(gè)隊(duì)列所設(shè)定的時(shí)間片來(lái)確定的(為了便于理解,我們也可以認(rèn)為特定隊(duì)列中的作業(yè)的優(yōu)先級(jí)是按照FCFS來(lái)調(diào)度的)。 3、各個(gè)隊(duì)列的時(shí)間片是一樣的嗎?不一樣,這就是該算法設(shè)計(jì)的精妙之處。各個(gè)隊(duì)列的時(shí)間片是隨著優(yōu)先級(jí)的增加而減少的,也就是說(shuō),優(yōu)先級(jí)越高的隊(duì)列中它的時(shí)間片就越短。同時(shí),為了便于那些超大作業(yè)的完成,最后一個(gè)隊(duì)列QN(優(yōu)先級(jí)最低的隊(duì)列)的時(shí)間片一般很大(不需要考慮這個(gè)問(wèn)題)。 **多級(jí)反饋隊(duì)列調(diào)度算法描述** 1、進(jìn)程在進(jìn)入待調(diào)度的隊(duì)列等待時(shí),首先進(jìn)入優(yōu)先級(jí)最高的Q1等待。 2、首先調(diào)度優(yōu)先級(jí)高的隊(duì)列中的進(jìn)程。若高優(yōu)先級(jí)中隊(duì)列中已沒(méi)有調(diào)度的進(jìn)程,則調(diào)度次優(yōu)先級(jí)隊(duì)列中的進(jìn)程。例如:Q1,Q2,Q3三個(gè)隊(duì)列,只有在Q1中沒(méi)有進(jìn)程等待時(shí)才去調(diào)度Q2,同理,只有Q1,Q2都為空時(shí)才會(huì)去調(diào)度Q3。 3、對(duì)于同一個(gè)隊(duì)列中的各個(gè)進(jìn)程,按照時(shí)間片輪轉(zhuǎn)法調(diào)度。比如Q1隊(duì)列的時(shí)間片為N,那么Q1中的作業(yè)在經(jīng)歷了N個(gè)時(shí)間片后若還沒(méi)有完成,則進(jìn)入Q2隊(duì)列等待,若Q2的時(shí)間片用完后作業(yè)還不能完成,一直進(jìn)入下一級(jí)隊(duì)列,直至完成。 4、在低優(yōu)先級(jí)的隊(duì)列中的進(jìn)程在運(yùn)行時(shí),又有新到達(dá)的作業(yè),那么在運(yùn)行完這個(gè)時(shí)間片后,CPU馬上分配給新到達(dá)的作業(yè)(搶占式)。 **我們來(lái)看一下該算法是如何運(yùn)作的** 假設(shè)系統(tǒng)中有3個(gè)反饋隊(duì)列Q1,Q2,Q3,時(shí)間片分別為2,4,8。 現(xiàn)在有3個(gè)作業(yè)J1,J2,J3分別在時(shí)間 0 ,1,3時(shí)刻到達(dá)。而它們所需要的CPU時(shí)間分別是3,2,1個(gè)時(shí)間片。 1、時(shí)刻0 J1到達(dá)。于是進(jìn)入到隊(duì)列1 , 運(yùn)行1個(gè)時(shí)間片 , 時(shí)間片還未到,此時(shí)J2到達(dá)。 2、時(shí)刻1 J2到達(dá)。 由于時(shí)間片仍然由J1掌控,于是等待。 J1在運(yùn)行了1個(gè)時(shí)間片后,已經(jīng)完成了在Q1中的 2個(gè)時(shí)間片的限制,于是J1置于Q2等待被調(diào)度。現(xiàn)在處理機(jī)分配給J2。 3、時(shí)刻2 J1進(jìn)入Q2等待調(diào)度,J2獲得CPU開(kāi)始運(yùn)行。 4、時(shí)刻3 J3到達(dá),由于J2的時(shí)間片未到,故J3在Q1等待調(diào)度,J1也在Q2等待調(diào)度。 5、時(shí)刻4 J2處理完成,由于J3,J1都在等待調(diào)度,但是J3所在的隊(duì)列比J1所在的隊(duì)列的優(yōu)先級(jí)要高,于是J3被調(diào)度,J1繼續(xù)在Q2等待。 6、時(shí)刻5 J3經(jīng)過(guò)1個(gè)時(shí)間片,完成。 7、時(shí)刻6 由于Q1已經(jīng)空閑,于是開(kāi)始調(diào)度Q2中的作業(yè),則J1得到處理器開(kāi)始運(yùn)行。 J1再經(jīng)過(guò)一個(gè)時(shí)間片,完成了任務(wù)。于是整個(gè)調(diào)度過(guò)程結(jié)束。 從上面的例子看,在多級(jí)反饋隊(duì)列中,后進(jìn)的作業(yè)不一定慢完成。 路由器收到一個(gè)數(shù)據(jù)包,數(shù)據(jù)包的目標(biāo)地址是202.65.17.4,該子網(wǎng)屬于哪一個(gè)網(wǎng)段? 在登錄到別人電腦和登錄qq時(shí)都不需要DNS進(jìn)行域名解析的,這就證明網(wǎng)絡(luò)是沒(méi)有問(wèn)題的,但是當(dāng)你輸入的是網(wǎng)址,這樣就需要DNS進(jìn)行域名解析服務(wù),網(wǎng)址登不上去,就證明DNS服務(wù)有問(wèn)題。 c類網(wǎng)絡(luò)只有最后8位來(lái)分配子網(wǎng)號(hào)和主機(jī)號(hào),每個(gè)子網(wǎng)至少容納55臺(tái)主機(jī),所以需要6位來(lái)分配主機(jī)號(hào),只有兩位來(lái)分配子網(wǎng)號(hào),子網(wǎng)掩碼就是255.255.255.11000000;就是255.255.255.192 在網(wǎng)絡(luò)7層協(xié)議中,如果想使用UDP協(xié)議達(dá)到TCP協(xié)議的效果,可以在哪層做文章? 因?yàn)閁DP要達(dá)到TCP的功能就必須實(shí)現(xiàn)擁塞控制的功能,而且是在路由之間實(shí)現(xiàn),這個(gè)在底層明顯是做不到擁塞控制的,在應(yīng)用層也是做不到的,因?yàn)閼?yīng)用層之間和應(yīng)用程序掛鉤,一般只能操控主機(jī)的程序,而表示層是處理所有與數(shù)據(jù)表示及運(yùn)輸有關(guān)的問(wèn)題,包括轉(zhuǎn)換、加密和壓縮,在傳輸層是不可能的,因?yàn)槟阋呀?jīng)使用了UDP協(xié)議,無(wú)法在本層轉(zhuǎn)換它,只有在會(huì)話層. 會(huì)話層(SESSION LAYER)允許不同機(jī)器上的用戶之間建立會(huì)話關(guān)系。會(huì)話層循序進(jìn)行類似的?傳輸層?的普通數(shù)據(jù)的傳送,在某些場(chǎng)合還提供了一些有用的增強(qiáng)型服務(wù)。允許用戶利用一次會(huì)話在遠(yuǎn)端的分時(shí)系統(tǒng)上登陸,或者在兩臺(tái)機(jī)器間傳遞文件。 會(huì)話層提供的服務(wù)之一是管理對(duì)話控制。會(huì)話層允許信息同時(shí)雙向傳輸,或任一時(shí)刻只能單向傳輸。如果屬于后者,類似于物理信道上的半雙工模式,會(huì)話層將記錄此時(shí)該輪到哪一方 接入WEB服務(wù)器第一次被訪問(wèn)到時(shí),不同協(xié)議的發(fā)生順序 、當(dāng)你給WEB服務(wù)器接上網(wǎng)線的時(shí)候,它會(huì)自動(dòng)發(fā)送一條ARP信息,使得接入網(wǎng)關(guān)能找的到它;網(wǎng)關(guān)上會(huì)形成一條類似:2c 96 1e 3c? 3e 9b - 192.168.1.123的MAC地址到IP地址的映射記錄。 2、如用戶在瀏覽器中輸入域名,如本地DNS緩存中沒(méi)有,必然會(huì)進(jìn)行一次DNS查詢,以確定該域名的IP地址。 3、HTTP。獲得DNS對(duì)應(yīng)的IP地址以后,使用HTTP協(xié)議訪問(wèn)web服務(wù)器(不考慮TCP三次握手建立連接的階段)。 Linux用戶分為:擁有者、組群(Group)、其他(other) linux中的文件屬性過(guò)分四段,如? -rwzrwz--- 第一段? -? 是指文件類型 表示這是個(gè)普通文件 文件類型部分 -為:表示文件 d為:表示文件夾 l為:表示<a href="https://www.baidu.com/s?wd=%E9%93%BE%E6%8E%A5%E6%96%87%E4%BB%B6&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y3nWnzPWbzmHNBn1RYuHmd0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3En1TvPHmzn1b4" target="_blank">鏈接文件,可以理解為 windows中的快捷方式(link file) b為:表示里面可以供存儲(chǔ)周邊設(shè)備 c為:表示里面為一次性讀取裝置 第二段? rwz? 是指擁有者具有可讀可寫(xiě)可執(zhí)行的權(quán)限?? 類似于windows中的所有者權(quán)限比如 administrator 對(duì)文件具有 修改、讀取和執(zhí)行權(quán)限 第三段? rwz 是指所屬于這個(gè)組的成員對(duì)于這個(gè)文件具有,可讀可寫(xiě)可執(zhí)行的權(quán)限?????? 類似于windows中的組權(quán)限比如administrators組,屬于這個(gè)組的成員對(duì)于文件的都有 可讀可寫(xiě)可執(zhí)行權(quán)限 第四段? --- 是指其他人對(duì)于這個(gè)文件沒(méi)有任何權(quán)限 類似于windows中的 anyone 一樣就是說(shuō)所有人對(duì)著個(gè)文件都會(huì)有一個(gè)怎樣的權(quán)限 </a> 在局域網(wǎng)絡(luò)內(nèi)的某臺(tái)主機(jī)用ping命令測(cè)試網(wǎng)絡(luò)連接時(shí)發(fā)現(xiàn)網(wǎng)絡(luò)內(nèi)部的主機(jī)都可以連同,而不能與公網(wǎng)連通,問(wèn)題可能是 局域網(wǎng)的網(wǎng)關(guān)或主機(jī)的網(wǎng)關(guān)設(shè)置有誤主機(jī)IP設(shè)置有誤 沒(méi)有設(shè)置連接局域網(wǎng)的網(wǎng)關(guān) 局域網(wǎng)的網(wǎng)關(guān)或主機(jī)的網(wǎng)關(guān)設(shè)置有誤 局域網(wǎng)DNS服務(wù)器設(shè)置有誤
在Linux系統(tǒng)中,/etc/skel你可以存儲(chǔ)用于創(chuàng)建用戶目錄的系統(tǒng)用戶默認(rèn)文件
Linux下的/etc/skel目錄往往不被人注意,其實(shí)此目錄在新建用戶時(shí)還是很有用的,靈活運(yùn)用此目錄可以節(jié)約一定的配置時(shí)間。?
skel是skeleton的縮寫(xiě),意為骨骼、框架。故此目錄的作用是在建立新用戶時(shí),用于初始化用戶根目錄。系統(tǒng)會(huì)將此目錄下的所有文件、目錄都復(fù)制到新建用戶的根目錄,并且將用戶屬主與用戶組調(diào)整為與此根目錄相同。所以可將用戶配置文件預(yù)置到/etc/skel目錄下,比如說(shuō).bashrc、.profile與.vimrc等。?
注:?
1.如果在新建用戶時(shí),沒(méi)有自動(dòng)建立用戶根目錄,則無(wú)法調(diào)用到此框架目錄。?
2.如果不想以默認(rèn)的/etc/skel目錄作為框架目錄,可以在運(yùn)行useradd命令時(shí)指定新的框架目錄。例如:?
sudo useradd -d /home/chen -m -k /etc/my_skel chen?
上述命令將新建用戶chen,設(shè)置用戶根目錄為/home/chen,并且此目錄會(huì)自動(dòng)建立;同時(shí)指定框架目錄為/etc/my_skel。?
3.如果不想在每次新建用戶時(shí),都重新指定新的框架目錄,可以通過(guò)修改/etc/default/useradd配置文件來(lái)改變默認(rèn)的框架目錄,方法如下:?
查找SKEL變量的定義,如果此變量的定義已被注釋掉,可以取消注釋,然后修改其值:?
SKEL=/etc/my_skel
?
?
Nagle算法主要是用來(lái)避免大量的小數(shù)據(jù)包在網(wǎng)絡(luò)中傳輸,從而降低網(wǎng)絡(luò)容量利用率。比如一個(gè)20字節(jié)的TCP首部+20字節(jié)的IP首部+1個(gè)字節(jié)的數(shù)據(jù)組成的TCP數(shù)據(jù)報(bào),有效傳輸通道利用率只有將近1/40。如果網(wǎng)絡(luò)充斥著這樣的小分組數(shù)據(jù),則網(wǎng)絡(luò)資源的利用率是相當(dāng)?shù)拖碌摹!?但是對(duì)于一些需要小包場(chǎng)景的程序,比如像telnet或ssh這樣的交互性比較強(qiáng)的程序,你需要關(guān)閉這個(gè)算法。可以在Socket設(shè)置TCP_NODELAY選項(xiàng)來(lái)關(guān)閉這個(gè)算法。
?
格式:sync
強(qiáng)制將內(nèi)存中的文件緩沖內(nèi)容寫(xiě)到磁盤。
?
?
?
對(duì)一個(gè)含有20個(gè)元素的有序數(shù)組做二分查找,數(shù)組起始下標(biāo)為1,則查找A[2]的比較序列的下標(biāo)為
(high-low)/2+low = middle; 下標(biāo)從1開(kāi)始,因?yàn)椴檎也檎褹[2],?low始終為1; (20-1)/2+1=10; (10-1)/2+1 = 5; (5-1)/2+1 = 3; (3-1)/2+1 = 2; 一棵Huffman樹(shù)有m個(gè)葉結(jié)點(diǎn),使用struct Node{Node *l,*r;int val;}結(jié)構(gòu)來(lái)存儲(chǔ)該樹(shù)中的結(jié)點(diǎn),一共會(huì)產(chǎn)生多少個(gè)NULL指針? Huffman樹(shù)樹(shù)中沒(méi)有度為1的節(jié)點(diǎn) 所以節(jié)點(diǎn)數(shù) n=n0+n1+n2 =n0+n2 =n0+(n0-1) =2n0-1 =2m-1 一共有2m-1個(gè)節(jié)點(diǎn),因此有2m-1-1條邊,一條邊占用一個(gè)指針域,因此被占用的指針域個(gè)數(shù)為2m-2 2m-1個(gè)節(jié)點(diǎn)一共有4m-2個(gè)指針域 未被占用的指針域個(gè)數(shù)為4m-2-(2m-2)=2m 最后答案為2m 哈夫曼樹(shù)沒(méi)有度為一的節(jié)點(diǎn),有m個(gè)葉子節(jié)點(diǎn)所以就有2m個(gè)空指針轉(zhuǎn)載于:https://www.cnblogs.com/Hanzo/p/5876209.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
- 上一篇: Lucene查询索引(分页)
- 下一篇: iOS - Quartz 2D 画板绘制