欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux地址空間的轉(zhuǎn)換以及線程的理解和使用過(guò)程

 更新時(shí)間:2025年07月11日 10:16:28   作者:海綿寶寶de派小星  
文章解析了線程與進(jìn)程的關(guān)系,指出線程是進(jìn)程內(nèi)的執(zhí)行分支,Linux通過(guò)復(fù)用PCB實(shí)現(xiàn)輕量化管理,并詳細(xì)說(shuō)明了頁(yè)表分級(jí)機(jī)制(如兩級(jí)頁(yè)表)與4KB頁(yè)框的內(nèi)存映射原理,同時(shí)對(duì)比線程的優(yōu)缺點(diǎn),強(qiáng)調(diào)其資源高效性與共享風(fēng)險(xiǎn)

本篇主要進(jìn)行對(duì)于進(jìn)程和線程的理解,以及對(duì)于線程的一部分使用方法和使用的原理

線程的理解

首先回顧前面一篇的內(nèi)容中,對(duì)于進(jìn)程的基本認(rèn)識(shí):

什么是線程,如何理解線程?

線程是進(jìn)程內(nèi)部的一個(gè)執(zhí)行分支,那么也就意味著肯定是先有進(jìn)程,再有線程,這也是最基本的一個(gè)邏輯,那么在Linux系統(tǒng)中也確實(shí)是這樣,當(dāng)一個(gè)代碼被編譯完成之后,如果想要執(zhí)行這個(gè)進(jìn)程,那么在進(jìn)行啟動(dòng)這個(gè)進(jìn)程的時(shí)候,就會(huì)對(duì)這個(gè)進(jìn)程建立起對(duì)應(yīng)的地址,空間,頁(yè)表,代碼數(shù)據(jù),內(nèi)存區(qū)域的映射關(guān)系等等,這些就都是對(duì)于進(jìn)程在創(chuàng)建之初就應(yīng)該要儲(chǔ)備好的部分,后續(xù)在用特定的方案創(chuàng)建一個(gè)PCB的時(shí)候,其實(shí)只需要讓多個(gè)PCB去指向同樣的一部分內(nèi)容,就可以實(shí)現(xiàn)在共享地址空間中做到讓多個(gè)不同的執(zhí)行流去訪問(wèn)同一塊進(jìn)程內(nèi)的代碼和數(shù)據(jù),那么對(duì)于進(jìn)程的代碼和數(shù)據(jù)資源進(jìn)程合理的劃分,就能實(shí)現(xiàn)讓這些代碼之間的串行變成并發(fā)執(zhí)行,那么這一個(gè)一個(gè)的分支就叫做線程,因此基于上述的這兩個(gè)點(diǎn),可以得出下面的結(jié)論

  1. 線程在創(chuàng)建和釋放的時(shí)候可以比進(jìn)程更加輕量化,只需要對(duì)于各種各樣的PCB進(jìn)行管理即可
  2. 線程是進(jìn)程內(nèi)部的執(zhí)行流,本質(zhì)上線程是在進(jìn)程的地址空間中進(jìn)行運(yùn)行的
  3. 對(duì)于進(jìn)程的理解應(yīng)該更加深一點(diǎn):在之前的理解中,進(jìn)程就是代碼和數(shù)據(jù)以及內(nèi)核的數(shù)據(jù)結(jié)構(gòu),這個(gè)結(jié)論是沒(méi)有任何問(wèn)題的,但是放在現(xiàn)在要多一個(gè)新的理解,進(jìn)程是承擔(dān)分配系統(tǒng)資源的基本實(shí)體,具體是如何進(jìn)行承擔(dān)的,簡(jiǎn)單來(lái)說(shuō)就是從各種的內(nèi)核數(shù)據(jù)結(jié)構(gòu)和表現(xiàn)上來(lái)體現(xiàn)的,就是要花內(nèi)存占用對(duì)應(yīng)的CPU資源,這樣就是體現(xiàn)出分配系統(tǒng)資源的基本實(shí)體
  4. 有了對(duì)于線程的理解,那么在之前對(duì)于進(jìn)程的理解就應(yīng)該更加廣泛一些,之前對(duì)于進(jìn)程的理解是體現(xiàn)在了內(nèi)部只有一個(gè)PCB結(jié)構(gòu),這樣的進(jìn)程在現(xiàn)在看來(lái)是可以叫做是一個(gè)執(zhí)行流的進(jìn)程,現(xiàn)在對(duì)于進(jìn)程就轉(zhuǎn)換成了一個(gè)進(jìn)程內(nèi)會(huì)包含有一大堆的申請(qǐng)的資源,并且還會(huì)有至少一個(gè)的PCB結(jié)構(gòu),而多線程其實(shí)就是內(nèi)部有多個(gè)這樣的PCB結(jié)構(gòu),這就實(shí)現(xiàn)了一個(gè)單進(jìn)程中有多線程
  5. Linux當(dāng)中線程和進(jìn)程都會(huì)被 操作系統(tǒng)調(diào)度,那么現(xiàn)在的問(wèn)題是,是否需要重新設(shè)計(jì)一個(gè)線程的結(jié)構(gòu)呢?事實(shí)上從Linux的操作系統(tǒng)設(shè)計(jì)模式中可以看出并沒(méi)有這樣做,而是把之前對(duì)于進(jìn)程的相關(guān)字段都重新復(fù)用了起來(lái),也就是說(shuō)Linux中的線程設(shè)計(jì)是完全用進(jìn)程來(lái)進(jìn)行模擬的,站在CPU的角度來(lái)說(shuō),當(dāng)它拿到一個(gè)具體的PCB結(jié)構(gòu)執(zhí)行流的時(shí)候,它認(rèn)為自己將來(lái)在CPU上跑的時(shí)候的執(zhí)行的那個(gè)PCB,是要比傳統(tǒng)意義上理解的那個(gè)單個(gè)進(jìn)程PCB是不一樣的,最起碼是小于等于單PCB的進(jìn)程,所以自此之后,可以換一個(gè)角度去看Linux中的進(jìn)程,可以把進(jìn)程線程都看做事一個(gè)輕量級(jí)的進(jìn)程,這個(gè)輕量級(jí)的進(jìn)程指的就是單純這個(gè)PCB,而對(duì)應(yīng)的整個(gè)地址,比如有地址空間頁(yè)表等等信息,這些全部加起來(lái)就叫做是真正意義上的進(jìn)程,而并非是輕量級(jí)進(jìn)程

地址空間的轉(zhuǎn)換問(wèn)題

下面要談的一個(gè)問(wèn)題是虛擬到物理地址轉(zhuǎn)換的問(wèn)題,這個(gè)問(wèn)題其實(shí)已經(jīng)提過(guò)了,在最初對(duì)于進(jìn)程的理解中就已經(jīng)有了一個(gè)初步的描述,在前面的對(duì)于地址空間的轉(zhuǎn)換問(wèn)題的理解只是停留在于,從虛擬地址到物理地址是要進(jìn)行頁(yè)表的映射 進(jìn)行轉(zhuǎn)換,而這樣的理解其實(shí)并不是特別到位的,下面這個(gè)模塊將對(duì)于這個(gè)過(guò)程進(jìn)行更加詳細(xì)的描述和理解

在之前對(duì)于文件系統(tǒng)的理解當(dāng)中,提及過(guò)這樣的一個(gè)觀點(diǎn),文件系統(tǒng)最終會(huì)指導(dǎo)操作系統(tǒng)和磁盤的設(shè)備進(jìn)行io交互的時(shí)候,是以4kb為一個(gè)單位進(jìn)行數(shù)據(jù)交互的,那么這個(gè)4kb也被叫做是一個(gè)文件塊,換句話說(shuō),站在操作系統(tǒng)的角度來(lái)講,它并不關(guān)心這個(gè)數(shù)據(jù)是啥,到底是圖片還是視頻還是音頻,它關(guān)心的是讀取這個(gè)文件的內(nèi)容,要從外設(shè)搬到內(nèi)存中,是要以一個(gè)數(shù)據(jù)塊為一個(gè)單位進(jìn)行搬運(yùn)的,那在進(jìn)程間通信的時(shí)候,也提及過(guò)對(duì)于共享內(nèi)存的創(chuàng)建大小,必須要以這個(gè)配置為單位

為了方便描述,畫(huà)出下面的最初步的示意圖

在上述的這個(gè)系統(tǒng)中,物理內(nèi)存和磁盤進(jìn)行io交互的時(shí)候,在硬件的層面上,可以通過(guò)某種方式把數(shù)據(jù)從磁盤弄到內(nèi)存當(dāng)中,而從純硬件的角度來(lái)講,這個(gè)過(guò)程就是把數(shù)據(jù)從一個(gè)設(shè)備拷貝到另外一個(gè)設(shè)備上,但是現(xiàn)在的一個(gè)問(wèn)題是,把數(shù)據(jù)加載到內(nèi)存的什么位置?加載多少?從哪里開(kāi)始加載?這些問(wèn)題都是需要解決的,甚至以至于還有比如說(shuō)這個(gè)數(shù)據(jù)的訪問(wèn)權(quán)限是多少,這個(gè)數(shù)據(jù)的屬性是什么,這些問(wèn)題本質(zhì)上來(lái)說(shuō)就已經(jīng)不屬于是硬件的范疇了,那這個(gè)問(wèn)題的解決措施是由操作系統(tǒng)中的文件系統(tǒng)來(lái)解決的,文件系統(tǒng)把磁盤整體進(jìn)行一個(gè)管理,那么此時(shí)文件系統(tǒng)就可以通過(guò)文件路徑來(lái)把對(duì)應(yīng)的文件打開(kāi),再把對(duì)應(yīng)的數(shù)據(jù)塊中的信息加載到物理內(nèi)存中,從而實(shí)現(xiàn)了一個(gè)文件的加載和讀取的過(guò)程,而這個(gè)過(guò)程其實(shí)也是在之前的理解范圍之內(nèi)的

這里要引出的一個(gè)結(jié)論就是,不管是什么數(shù)據(jù),可能是這個(gè)文件的內(nèi)容,也可能是這個(gè)文件的屬性,但只要是屬于這個(gè)文件的數(shù)據(jù)范圍內(nèi),它在進(jìn)行加載的時(shí)候的基本單位就是4kb,這是由文件系統(tǒng)來(lái)進(jìn)行設(shè)置的,也就是說(shuō)在文件系統(tǒng)的層面上看這個(gè)新建的hello.exe這個(gè)可執(zhí)行程序,本質(zhì)上可以看成是由若干個(gè)小的4kb這樣的文件塊組成的,一般給這樣的數(shù)據(jù)段叫做是ELF數(shù)據(jù)段,那么最終的結(jié)論是,這里的每一個(gè)數(shù)據(jù)塊都是4kb為單位的,那么在最終的操作系統(tǒng)中,本質(zhì)上也會(huì)這樣進(jìn)行劃分,而這樣的每一個(gè)這樣的4kb大小的數(shù)據(jù)塊,在磁盤的角度看來(lái)就叫做是頁(yè)幀,而在物理空間中的這個(gè)4kb的一塊一塊的空間就被叫做是頁(yè)框,所以上面的圖可以修改為下面的模樣:

那么這樣就能得出一個(gè)樸素的結(jié)論是,未來(lái)這個(gè)文件當(dāng)中哪怕只是需要修改一個(gè)比特位,也必須要把這個(gè)數(shù)據(jù)所在的這個(gè)4kb的數(shù)據(jù)塊全部弄出來(lái)加載到內(nèi)存中,在內(nèi)存中進(jìn)行修改后,再刷新到磁盤上,這個(gè)就是基本單位的含義

下面的一個(gè)問(wèn)題是,既然物理空間被劃分成了這樣,那么實(shí)際上計(jì)算一下:

在地址空間中按4kb的劃分,是需要有100多萬(wàn)個(gè)頁(yè)框的,這是一個(gè)相當(dāng)龐大的數(shù)據(jù),那么下一個(gè)問(wèn)題是,對(duì)于這個(gè)頁(yè)框的管理該如何進(jìn)行管理呢?所以操作系統(tǒng)的內(nèi)部會(huì)維護(hù)一個(gè)結(jié)構(gòu)體對(duì)象,用來(lái)描述這個(gè)頁(yè)框的屬性,而在操作系統(tǒng)中就存在這樣一個(gè)數(shù)組,用來(lái)描述這個(gè)結(jié)構(gòu)體,可以近似的理解為是struct page pages[1048576],而在這個(gè)結(jié)構(gòu)體page中,里面存在了很多的字段,這些字段可能是意味著有物理內(nèi)存是否被鎖定,也有這段內(nèi)存是否被使用,當(dāng)前內(nèi)存是否準(zhǔn)備釋放,每一種情況都用一個(gè)比特位來(lái)表示,所以在內(nèi)存中對(duì)于物理內(nèi)存的管理,就可以轉(zhuǎn)換成對(duì)于這個(gè)標(biāo)記位的每一個(gè)比特位的管理

下一個(gè)問(wèn)題是,頁(yè)表的大小問(wèn)題,在虛擬地址中有2^32個(gè)地址,這些地址都要被頁(yè)表進(jìn)行映射嗎?經(jīng)過(guò)簡(jiǎn)單的計(jì)算就可以很容易知道,這是不可能的,如果每一個(gè)地址都進(jìn)行映射,那么頁(yè)表所占據(jù)的空間可能就已經(jīng)是一個(gè)很大的概念了,所以得出的一個(gè)結(jié)論是,上面圖中的這個(gè)頁(yè)表其實(shí)是不完全準(zhǔn)確的,真正的頁(yè)表結(jié)構(gòu)還有其他的結(jié)構(gòu)組成

虛擬到物理地址到底是如何進(jìn)行轉(zhuǎn)換的呢?在CPU中有很多的寄存器,其中一個(gè)寄存器叫做eip,那這個(gè)寄存器主要是存儲(chǔ)的是虛擬地址,而在CPU上還會(huì)有一個(gè)小組件叫做MMU,那這個(gè)組件其實(shí)就可以理解為可以完成從虛擬到物理地址的轉(zhuǎn)換工作,那這個(gè)轉(zhuǎn)換是如何進(jìn)行轉(zhuǎn)換的?

以32位的機(jī)器為例,現(xiàn)在有一個(gè)地址,假設(shè)它是1111 1111 1001 0001 0000 0000 0010 1000,那么在實(shí)際的內(nèi)存中其實(shí)并不會(huì)把這32個(gè)數(shù)字看成一個(gè)整體,而是會(huì)把前10個(gè)數(shù)字看出一個(gè)整體,中間10個(gè)數(shù)字看成一個(gè)整體,后面的12個(gè)數(shù)字看成一個(gè)整體,而實(shí)際上頁(yè)表也并非是一個(gè)大的頁(yè)表,而是會(huì)存在分級(jí)的情況,按32位的機(jī)器來(lái)看,會(huì)分成兩級(jí),第一級(jí)叫做是頁(yè)目錄,頁(yè)目錄整體上來(lái)說(shuō)是被用作查找的,但是頁(yè)目錄的查找只會(huì)使用前10個(gè)比特位,那頁(yè)目錄總共會(huì)有多少個(gè)呢?經(jīng)過(guò)計(jì)算總共會(huì)有1024個(gè)組合方式,那么在之后進(jìn)行查詢頁(yè)表的時(shí)候,就會(huì)先找到前10位對(duì)應(yīng)的內(nèi)容,再用中間的十位進(jìn)行查找,那中間的這10位就被叫做是頁(yè)表項(xiàng),也叫做是二級(jí)頁(yè)表,在實(shí)際進(jìn)行查找的時(shí)候,可以把前10個(gè)轉(zhuǎn)換成一個(gè)二進(jìn)制的數(shù)字,而這個(gè)數(shù)字就對(duì)應(yīng)了這個(gè)數(shù)組的下標(biāo),而這個(gè)數(shù)組里面的內(nèi)容指向的是下一級(jí)的頁(yè)表,從這個(gè)開(kāi)始的地方就能搜索到下一級(jí)的頁(yè)表是誰(shuí),那么實(shí)際上,在這個(gè)一級(jí)頁(yè)表中其實(shí)存儲(chǔ)了的是一個(gè)映射關(guān)系,而這個(gè)第一部分的內(nèi)容是不需要被存儲(chǔ)起來(lái)的,直接把前10個(gè)比特位當(dāng)成是一個(gè)數(shù)組的下標(biāo)用就可以了,實(shí)現(xiàn)了一個(gè)二進(jìn)制的拆分機(jī)制

那為什么要這樣做,這樣做的好處在哪里?實(shí)際上頁(yè)表的存儲(chǔ)是物理內(nèi)存的哪個(gè)位置,本身我們也不清楚,所以當(dāng)前在進(jìn)行頁(yè)表的構(gòu)建的時(shí)候,從虛擬地址映射的這個(gè)過(guò)程中,如果沒(méi)有對(duì)應(yīng)的這級(jí)頁(yè)表,在進(jìn)行重新申請(qǐng)的時(shí)候就填到這個(gè)里面,最終凡是從這個(gè)地址開(kāi)始的都會(huì)通過(guò)這個(gè)頁(yè)表來(lái)查,而這個(gè)頁(yè)表也可以當(dāng)成是一個(gè)數(shù)組,而這個(gè)數(shù)組其中也有10個(gè)比特位,也就是1024,那么這個(gè)數(shù)字實(shí)際上也可以看出是一個(gè)數(shù)組的下標(biāo),里面存放的內(nèi)容就是實(shí)際這個(gè)地址最終映射到所要申請(qǐng)的頁(yè)框的起始地址,因?yàn)槲锢韮?nèi)存的角度來(lái)講這個(gè)頁(yè)框的大小是以4kb進(jìn)行io的,所以在實(shí)際進(jìn)行尋找這個(gè)具體內(nèi)容的時(shí)候,就要通過(guò)先找到這個(gè)內(nèi)容屬于哪個(gè)頁(yè)框,再通過(guò)這個(gè)頁(yè)框找到內(nèi)部的這個(gè)內(nèi)容,那要找某一個(gè)數(shù)據(jù)或者是代碼,前提就是要找到虛擬地址所在的頁(yè)框,所以在這個(gè)頁(yè)表中存儲(chǔ)的就是物理內(nèi)存的頁(yè)框,因此,本質(zhì)上來(lái)說(shuō),對(duì)于頁(yè)表這個(gè)結(jié)構(gòu)來(lái)說(shuō),整個(gè)頁(yè)目錄和頁(yè)表項(xiàng)當(dāng)中真正有用的部分是幫助操作系統(tǒng)找到頁(yè)框,隨后再找到具體的對(duì)應(yīng)的內(nèi)容,而找到頁(yè)框之后,就可以根據(jù)最后的那12個(gè)比特位當(dāng)成是一個(gè)偏移量,來(lái)找到與之對(duì)應(yīng)的內(nèi)容數(shù)據(jù)了,來(lái)用下面的這個(gè)圖描述一下更為清楚:

借助這樣的結(jié)構(gòu),就可以使得整個(gè)頁(yè)表的體積大大減小,但是更為重要的是,此時(shí)找到的就是物理內(nèi)存中的頁(yè)框了,但是在平時(shí)進(jìn)行訪問(wèn)的時(shí)候其實(shí)并不關(guān)心頁(yè)框,關(guān)心的是頁(yè)框中的某一個(gè)數(shù)據(jù),但是只需要借助最后的偏移量就可以找到了,只需要由前10個(gè)比特位找到頁(yè)目錄,然后再通過(guò)下標(biāo)找到對(duì)應(yīng)的頁(yè)表,再通過(guò)中間的10個(gè)比特位找到對(duì)應(yīng)的頁(yè)表項(xiàng),再通過(guò)頁(yè)表項(xiàng)的內(nèi)容找到頁(yè)框,再通過(guò)最后的這個(gè)偏移量來(lái)找到所需要的數(shù)據(jù)內(nèi)容

所以說(shuō),頁(yè)表中不存物理地址,但是會(huì)有頁(yè)框的物理地址,嚴(yán)格意義來(lái)說(shuō),它當(dāng)中只有頁(yè)框的物理地址,通過(guò)第二級(jí)索引就能找到物理內(nèi)存中頁(yè)框的物理地址,再根據(jù)偏移量就能直接定位到具體的地址了

完善一下剛才的圖:

總結(jié):

劃分頁(yè)表到底是什么呢?

劃分頁(yè)表的本質(zhì)是什么呢?本質(zhì)上來(lái)說(shuō),就是在劃分地址空間,站在進(jìn)程的角度來(lái)講,地址空間本身就是資源,所以劃分頁(yè)表就是在劃分資源

線程的優(yōu)點(diǎn)

  1. 創(chuàng)建一個(gè)新線程的代價(jià)要比創(chuàng)建一個(gè)新進(jìn)程小得多
  2. 與進(jìn)程之間的切換相比,線程之間的切換需要操作系統(tǒng)做的工作要少很多
  3. 線程占用的資源要比進(jìn)程少很多
  4. 能充分利用多處理器的可并行數(shù)量
  5. 在等待慢速I/O操作結(jié)束的同時(shí),程序可執(zhí)行其他的計(jì)算任務(wù)
  6. 計(jì)算密集型應(yīng)用,為了能在多處理器系統(tǒng)上運(yùn)行,將計(jì)算分解到多個(gè)線程中實(shí)現(xiàn)
  7. I/O密集型應(yīng)用,為了提高性能,將I/O操作重疊。線程可以同時(shí)等待不同的I/O操作

線程的缺點(diǎn)

性能損失:

  • 一個(gè)很少被外部事件阻塞的計(jì)算密集型線程往往無(wú)法與共它線程共享同一個(gè)處理器。
  • 如果計(jì)算密集型線程的數(shù)量比可用的處理器多,那么可能會(huì)有較大的性能損失,這里的性能損失指的是增加了額外的同步和調(diào)度開(kāi)銷,而可用的資源不變

健壯性降低:

  • 編寫多線程需要更全面更深入的考慮,在一個(gè)多線程程序里,因時(shí)間分配上的細(xì)微偏差或者因共享了不該共享的變量而造成不良影響的可能性是很大的,換句話說(shuō)線程之間是缺乏保護(hù)的

缺乏訪問(wèn)控制:

  • 進(jìn)程是訪問(wèn)控制的基本粒度,在一個(gè)線程中調(diào)用某些OS函數(shù)會(huì)對(duì)整個(gè)進(jìn)程造成影響

編程難度提高:

  • 編寫與調(diào)試一個(gè)多線程程序比單線程程序困難得多

線程的健壯性問(wèn)題

#include <iostream>
#include <unistd.h>
#include <pthread.h>
#include <sys/types.h>
#include <unistd.h>

// 新線程
void *ThreadRoutine(void *arg)
{
    const char *threadname = (const char *)arg;
    while (true)
    {
        std::cout << "I am a new thread: " << threadname << ", pid: " << getpid() << std::endl;
        sleep(1);
    }
}

int main()
{
    // 已經(jīng)有進(jìn)程了
    for (int i = 0; i < 5; i++)
    {
        char threadname[64];
        snprintf(threadname, sizeof(threadname), "%s-%d", "thread", i);
        pthread_t tid;
        pthread_create(&tid, nullptr, ThreadRoutine, (void *)threadname);
        sleep(1);
        if (i == 4)
            int a = 10 / 0;
    }
    return 0;
}

運(yùn)行結(jié)果如下:

從中看出的一個(gè)問(wèn)題是,當(dāng)出現(xiàn)除0錯(cuò)誤的時(shí)候,所有的線程都被終止了,這是因?yàn)樗械木€程都共享信號(hào)的處理方式,所以當(dāng)有一個(gè)線程收到信號(hào)后,其實(shí)所有的線程也就都被終止了

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • linux 定時(shí)休眠的實(shí)現(xiàn)思路

    linux 定時(shí)休眠的實(shí)現(xiàn)思路

    這篇文章主要介紹了linux 定時(shí)休眠的實(shí)現(xiàn)思路,休眠的類型有三種類型,文章對(duì)每種類型介紹的都很詳細(xì),需要的朋友可以參考下
    2018-07-07
  • ROS控制Turtlebot3移動(dòng)機(jī)器人的基礎(chǔ)教程

    ROS控制Turtlebot3移動(dòng)機(jī)器人的基礎(chǔ)教程

    這篇文章主要給大家介紹了關(guān)于ROS控制Turtlebot3移動(dòng)機(jī)器人的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 騰訊云ubuntu服務(wù)器tomcat訪問(wèn)慢的原因分析及解決方法

    騰訊云ubuntu服務(wù)器tomcat訪問(wèn)慢的原因分析及解決方法

    在騰訊云上配了個(gè)一元的學(xué)生云,開(kāi)始一切正常,直到配置tomcat開(kāi)始出現(xiàn)各種莫名其妙的問(wèn)題。最終找到問(wèn)題的原因。下面小編通過(guò)本教程給大家介紹下騰訊云ubuntu服務(wù)器tomcat訪問(wèn)慢的原因分析及解決方法,一起看看吧
    2016-10-10
  • 解決虛擬機(jī)NAT模式無(wú)法上網(wǎng)問(wèn)題

    解決虛擬機(jī)NAT模式無(wú)法上網(wǎng)問(wèn)題

    文章主要介紹了確認(rèn)虛擬機(jī)網(wǎng)絡(luò)連接問(wèn)題的兩個(gè)步驟:首先檢查虛擬機(jī)的IP地址是否與主機(jī)在同一網(wǎng)段,其次確保虛擬機(jī)相關(guān)服務(wù)已開(kāi)啟
    2024-12-12
  • Ubuntu無(wú)法聯(lián)網(wǎng)的解決方法

    Ubuntu無(wú)法聯(lián)網(wǎng)的解決方法

    這篇文章主要為大家詳細(xì)介紹了Ubuntu無(wú)法聯(lián)網(wǎng)的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • Apache Hadoop版本詳解

    Apache Hadoop版本詳解

    本文總結(jié)了ApacheHadoop和Cloudera Hadoop的版本衍化過(guò)程,并給出了選擇Hadoop版本的一些建議。感興趣的朋友一起看看吧
    2017-09-09
  • Linux 安裝二進(jìn)制MySQL 及 破解MySQL密碼的方法

    Linux 安裝二進(jìn)制MySQL 及 破解MySQL密碼的方法

    這篇文章主要介紹了Linux 安裝二進(jìn)制MySQL 及 破解MySQL密碼的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Linux中的LUN、磁盤、LVM和文件系統(tǒng)映射使用

    Linux中的LUN、磁盤、LVM和文件系統(tǒng)映射使用

    這篇文章主要介紹了Linux中的LUN、磁盤、LVM和文件系統(tǒng)映射使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • centos系統(tǒng)為php安裝memcached擴(kuò)展步驟

    centos系統(tǒng)為php安裝memcached擴(kuò)展步驟

    這篇文章主要介紹了centos系統(tǒng)為php安裝memcached擴(kuò)展的步驟,大家參考使用吧
    2014-01-01
  • linux中ssh免密通信的實(shí)現(xiàn)

    linux中ssh免密通信的實(shí)現(xiàn)

    這篇文章主要介紹了linux中ssh免密通信的實(shí)現(xiàn),詳細(xì)的介紹了什么是ssh及其ssh免密通信,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2018-11-11

最新評(píng)論