主頁 > 作業系統 > 計算機中存盤體系的設計

計算機中存盤體系的設計

2020-09-20 20:58:55 作業系統

概述

在計算機運行程序中,存盤器是各種資訊存盤和交換的中心,而計算機所有存盤器所構成的存盤系統更是整個計算機系統的核心組成部分,在一臺計算機中通常有多個存盤器:主存盤器Cache、通用暫存器磁盤暫存器各種緩沖存盤器光碟存盤器等,

為了評定不同存盤器的性能差異,人們制定了一些主要的性能指標:速度,容量和價格,

其中速度我們用存盤器的訪問周期、讀出時間、頻帶寬度等來進行表示,容量用位元組B、千位元組KB、兆位元組MB和千兆位元組GB等表示,價格則是用單位容量的價錢表示,例如$C/bit

講了這么多存盤器的內容,那什么叫做存盤體系哪?

下邊我們引入存盤體系的定義:

兩個或兩個以上速度、容量和價格各不相同的存盤器用硬體、軟體、或軟體與硬體相結合的方法連接建立起來的一個系統,

簡單來說,就是一個將不同型別的存盤器用軟體或者硬體方法結合成一個整體,該系統對程式員透明,并且,從應用程式員來看,它僅僅是一個存盤器,這個存盤器的速度接近速度最快的那個存盤器,存盤容量與容量最大的那個存盤器相等,單位容量的價格接近最便宜的那個存盤器,

為了更加便于理解存盤體系速度、容量和價格的關系,我們畫出下圖用更加嚴謹的方式來進行表述,

符號說明

\[M_i:i\text{號存盤器} \]

\[T_i\text{:}i\text{存盤器的速度性能} \]

\[S_i\text{:}i\text{號存盤器的容量性能} \]

\[C_i\text{:}i\text{號存盤的價格} \]

各個存盤器的各個性能指標和其構成的存盤體系的性能指標之間的關系為:

\[T≈min(T1,T2,……,Tn),用存盤周期表示 \]

\[S=max(S1,S2,……,Sn),容量用MB或GB表示 \]

\[C≈min(C1,C2,……,Cn),價格用每位的價格表示 \]

存盤體系的分類

在計算機系統中一般來說存盤器類別主要有Cache、主存盤器和輔助存盤器三類組成,按照不同的組合方式構成了兩種存盤體系:

  1. Chache存盤體系:由Cache和主存盤器構成
    • 主要目的:提高存盤器速度,或者說是為了貪圖Cache的存盤速度
    • 系統程式員看:速度接近Cache,存盤器容量等于主存,每位的價格接近主存盤器
  2. 虛擬存盤體系:由主存盤器和磁盤存盤器構成
    • 主要目的:擴大存盤器容量,或者說貪圖磁盤存盤器的容量,
    • 應用程式員看:速度接近主存盤器,存盤容量是虛擬地址空間,每位價格接近磁盤存盤器,

看到這里可能大家會有疑問,三種存盤器兩兩組合方式組中結果不是應該是三種嗎?

或者說應該還有一種組合方式即Cache+磁盤存盤器??

坦白來講此種存盤體系理論上講是可以有的,但是實際應用中,由于Cache和虛擬存盤器的速度差別太大,強行相互結合,根本不可能發揮出Cache存盤器的速度優勢,實際上還會大大拖累Cache的運行,因此此種組合方式在實際應用程序中根本不可能存在,

image-20200418100446764

存盤效率

關于速度的評定我們一般通過,訪問周期、存取周期、存盤周期、存取時間等來進行表示,

關于這些指標的計算我們詳細可以參照百度百科

提到了存盤器的速度,我們就提另一個指標存盤效率

首先我們給出命中率的定義:

\(M_1\)存盤器中達到的訪問效率,給出以下公式

\[??=N_1/\left( N_1+N_2 \right) \]

其中:

$ N_1 \(是\)M_1$存盤器訪問到的效率,

\(N_2\)是對\(M_2\)存盤器的訪問次數

進而我們引出存盤系統的訪問效率:

\[e=\frac{T1}{T}=\frac{T1}{H\cdot T1+\left( 1-H \right) \cdot T2}=\frac{1}{H+\left( 1-H \right) \cdot \frac{T2}{T1}}=f\left( H,\frac{T2}{T1} \right) \]

從上邊的公式中我們可以得出提高存盤系統的兩條途徑:

  1. 提高命中率H
  2. 兩個存盤器的速度差別不應太大

在實際操作中有時第二條途徑做不多(如虛擬存盤器),因此,在實際操作程序中我們通過提高命中率來提高存取效率,

那此處可能就又有一個問題:如何提高命中率?

我們一般采用預取技術來提高命中率

措施:在未命中時,把\(M_2\)存盤器中相鄰幾個單元組成的一個資料塊都取出來送入到\(M_1\)存盤其中,

在引入預取技術之后我們可以的出新的命中率公式:

\[H^{\prime}=\frac{H+n-1}{n} \]

其中:

\(H^{\prime}\)是采用預取技術之后的命中率

\(H\)是原來的命中率

\(n\)是資料塊大小與資料重復使用次數的乘積,

為了更加深入的理解命中率我們做下邊一個例題

例:在一個Cache存盤系統中,當Cache的塊大小為一個字時,命中率為H=0.8;假設資料的重復利用率為5,Cache的塊大小為4個字

  1. 計算Cache存盤系統的命中率是多少?
  2. 假設\(T_2=5T_1\),分別計算訪問效率,

image-20200418112402622

存盤體系原理

存盤體系具體操作程序中可能會遇到容量不足或者速度不夠的問題,下邊我們分成兩個專題分別對其進行討論和解決,

容量不足的問題

第一種方案:增加主存容量

解決容量不足的問題,我們最容易想到的便是增加主存容量,正如缺啥補啥,缺少容量我們增加主存容量必然可以在一定程度上解決容量不足的問題,但是提到任何一種方案,不考慮經濟因素便是耍流氓,我們要知道主存的價格并不是非常便宜,隨著主存容量的增加,存盤器價格總量必然增加,從而導致單位容量存盤器價格增加,顯然這不是最終的解決的方案,

第二種方案:采用兩級存盤器

既然僅僅增加主存容量我們不能根本上解決該問題,因此我們也提出了第二種方案來進行補充--將主存和輔存結合在一起采用兩級存盤結構,利用低價格的輔存來擴充存盤容量,

當然能夠用輔存擴充容量且能達到主存的速度,其背后是有如下依據的:

首先計算機中所有的資訊可以分為如下三類:

  1. 活躍的資訊,即當前正在使用的資訊
  2. 待命的資訊,將要使用的資訊
  3. 靜止的資訊,已被使用而不再處理的資訊

因此我們按照不同的使用頻率,可以將不同的資訊放置到不同的存盤器中,可將活躍的資訊和部分待命的資訊放在主存中,其余部分放到輔存,以減少主存容量的要求,從而實作擴充容量的同時又不會顯著的增加成本,

由于資訊本身的使用頻率不是固定的,或者說同一個資訊在不同的時間段可能被分為不同的類別,因此在使用兩級存盤之后,主輔存之間的資訊調出和調入可能會有一些問題,

程式的調入和調出由程式員考慮和安排,一定程度上增加了程式員的負擔,因此使用輔助機構自動定位,從而引出了虛擬存盤器

可以將高速輔存(如磁盤)偽裝成主存訪問,資訊在主存、輔存之間的調進和調出完全由輔助機構自動完成,

速度不足的問題

存盤器的速度往往是整個計算機速度的第一個瓶頸,

方法一,同樣也是從主存入手,提高主存的速度,此法也在采用,但此法隨存盤器速度的提高成本也會顯著增加,

方法二也是引入二級存盤結構,只不過引入的是Cache+主存 此體系的結構圖如下:

image-20200418230010769

讓CPU直接與它速度匹配的Cache訪問,此法也需要CPU和cache之間利用輔助機構來完成cache與主存之間資訊的調入與調出,

輔助機構的功能

上邊解決兩個問題都需要用到輔助機構,那么我們到此處可能會有疑問了,那輔助機構到底有什么功能那?

首先,第一個是地址映像功能

解決\(M_2\) 中的資訊采用何種規則調入到\(M_1\)中(即調入規則的問題),

image-20200419092111891

第二個功能叫做地址變換功能:

根據映像規則,將包括\(M_2\)在內的大空間的地址轉換成CPU能夠直接訪問的\(M_1\)中的地址(即地址變換問題),

第三個功能是進行頁面替換

\(M_1\)中裝滿資訊的條件下,采用何種演算法,算出呼叫\(M_1\)的部分資訊,使\(M_2\)中的部分功能調到\(M_1\)中(即替換演算法問題),

關于這三部分功能下邊我們會分成三個小專題分別來進行講述,

存盤體系中的頁式管理

因為存盤器本身的物理結構并不適合資訊的存盤于組織,因此我們在對存盤器使用之前需要對其抽象出一層邏輯結構來進行資訊組織,因此此處我們引入頁式管理的概念,

頁的定義

首先我們要明白頁式管理中"頁"是何含義,

頁式管理中將虛擬存盤空間實際存盤空間等分成固定大小的頁,使虛擬頁可裝入主存中不同的實際頁面位置,

頁式管理中的地址表示

頁式管理將物理的存盤結構進行一層抽象,引入了“頁”來進行管理,從而使得對存盤地址的訪問也需要某種新的地址表示,

  1. 虛地址(邏輯地址,程式地址):包括\(M_2\)在內的大空間地址,

image-20200419095418109

其中,

\(N_v\):虛頁號

\(N_r\):頁內地址

  1. 實地址(物理地址):為CPU能直接訪問的\(M_1\)中的地址,

image-20200419095652055

其中:

\(n_v\):實頁號

\(n_r\):頁內地址

當然參考兩種地址表示不是目的,為了解決虛地址實地址,因此下邊我們引入了頁表的概念,

頁表是一種特殊的資料結構,放在系統空間的頁表區,存放邏輯頁與物理頁幀的對應關系,

頁表具有以下特點:

  1. 頁表所需行數和虛頁號數相等,虛頁號與頁表行號對應,因此無需虛頁號欄位,
  2. 頁表中每行內容分為兩個欄位:實頁號\(n_v\)以及裝入位(1位,其中0表示該頁已裝入,1表示該頁未被裝入)

針對上邊的兩個特點我們可以設計出結構如下的頁表:

image-20200419101412684

此時可能會有同學問了,虛頁號到哪里去了??

這個很容易解釋,根據第一個特點,虛頁號和頁表行號一致的,而頁表行號實際上是從零開始逐行“+1“的,也即我們看到的上邊那個兩行的頁表實際上等同于下邊這種三行結構的頁表,

image-20200419102126403

頁式管理的地址變換(關鍵)

①根據\(N_v\)去查頁表中的某一行m,
②查該行的裝入位,
③裝入位=1時,命中,表示該虛頁已裝入,

  • 從該行中送出\(n_v\)(實頁號),
  • 再將\(N_r\)直送\(n_r\)
  • 即完成\(N_vN_r\)\(n_v n_r\)

④裝入位=0時,失效,表示該虛頁未裝入\(M_1\)中,

image-20200419103434817

為了加深理解我們做下邊一個例題,

某虛擬存盤器共8個頁面,每頁為1024個字,實際主存為4096個字,采用頁表法進行地址映象,映象表的內容如下表所示:

image-20200419103800929

1)列出會發生頁面失效的全部虛頁號;
2)按以下虛地址計算主存實地址:
0、3728、1023、1024、2055、7800、4096、6800

image-20200419103901227

地址映象及其變換

在上一小節,我們簡單介紹了虛地址和實地址之間的轉換,但實際上如果存盤系統使用的是不同地址映像方式的話,可能地址變換方式可能也會有很大的不同,一般來說我們常用的地址映像方式有以下四種:

  1. 全相聯
  2. 直接相聯
  3. 組相聯
  4. 段相聯

下邊我們分四個小專題分別對其進行介紹,

全相聯映象及其變換

首先我們給出`全相聯映象的含義:

對輔存中的任何一個頁面都可以放到主存中任何一個頁面的映像規則,稱為全相聯映射,

按照其定義我們給出以下示意圖:

image-20200419135856144

我們不難全相聯映射具有如下特點:
輔存中的任何一個頁面都可能映射到主存中,

地址變換

地址表示的示意圖如下:

image-20200419141730911

當然上邊具體變換方法不只一種,除了上一章節介紹的頁表法外還有一種方法叫做目錄表法

全相聯目錄表法

該種方法要求用相聯存盤器作為目錄表(相聯存盤器是一種可按照內容的特征欄位來訪問的一種存盤器,是一個小容量高速存盤器),

目錄表的結構具有如下特點:

  1. 目錄表的行數與主存頁面數相等
  2. 目錄表中每行的內容:
    1. \(N_v\)為相聯比較欄位;
    2. \(n_v\)為主存頁號(非相聯比較欄位),

具體變換程序如下:

image-20200426134821716

當然為了便于理解,我們畫出其詳細的變換程序

image-20200426134939577

具體程序如下:

  1. 將虛地址中的\(N_V\)送目錄表中去進行相聯比較(一個\(t_m\)),
  2. 當有某個比較器比較相等(比較的時候是比較的是\(N_v\)相關聯的欄位)時,將該行\(n_V\)送出,同時\(N_r\)\(n_r\),實作了\(N_vN_r\)\(n_vn_r\)的變換(命中).
  3. 若沒有相等的,不命中,等待調入,

通過以上程序我們不難分析出全相連目錄表法具有如下特點:

  1. 產生頁面沖突的可能性很小(因為頁表的行數和主存行數相同);
  2. 與頁表放入主存中相比,查表的速度快(因為目錄表是放到相聯存盤器中的,輸入高速存盤器);

當然該方法也有以下缺點:

  1. 可擴展性差(因為相聯存盤器容量在一定程度上限制了主存的擴展,不能太大超過相聯存盤器的行數)
  2. 主存容量增加時,目錄表的造價高,速度降低(成本原因,在工程上很常見),

直接映象及其變換

該方法現將輔存按照主存大小分為若干塊,在輔存的每一塊內都有與主存相同的頁面數,輔存每塊內的頁面只能調入到與主存相同的頁面上,

該方法與全相聯映射相比我們發現,直接映象輔存中的某塊具體某一頁能夠調度的位置是固定的(或者說是固定的幾個位置),

下面我們畫出直接映象的規則示意圖:

image-20200426174130291

其中:

  • \(N_d\) :塊號
  • \(N_v′\):塊內頁號

從圖中我們可以看到,該方法先將輔存按主存大小分為若干塊,在輔存的每塊內都有與主存相同的頁面數,輔存每塊內的頁面只能調入到與主存相同的頁面上(可以簡單理解為一個蘿卜一個坑????)

地址變換

在展開說明直接映象的地址變換之前我們先了解下直接相聯請情況下,實地址和虛地址是如何表示的,

由于直接映象引入了“塊”,因此我們在給定虛地址時肯定要給出塊號,然后我們通過塊號(\(N_d\))、塊內頁號(\(N_v'\))以及頁內地址(\(N_r\))三部分來最終定位到具體的資料地址,此處我們給出示意圖便于理解,

image-20200426180432289

實地址和硬體是高度相關的,因此基本不會發生變化,和前邊一樣由兩部分組成實頁號(\(n_v\))頁內地址(\(n_r\)),示意圖如下:

image-20200419095652055

同樣的,由于引入了“塊”的概念因此在進行地址變換的時候我們需要一個新的表--塊表

塊表具有如下特點

  1. 塊表長度與主存頁面數相等,
  2. 塊表行中的內容:塊號\(N_d\)

image-20200426185348027

有了前邊兩點的鋪墊之后,我們下邊可以詳細講述一下地址變換的程序:

給出地址變換的一個簡單示意圖

image-20200426185958047

  1. 根據塊內頁號\(N_v′\)去查塊表中的\(N_v′\)行,獲取到對應的塊號
  2. 將虛地址中的塊號\(N_d\)與所選塊表中的 \(N_d\)比較,
  3. 相同時則命中,直接將\(N_v′\)\(n_v\)\(N_r\)\(n_r\)
  4. 不同時,則表示未命中

從上邊的分析中我們可以總結出直接相連映象具有如下特點:

  1. 可將查表與訪存同時進行,有利于訪問速度的提高(命中時),
  2. 產生頁面沖突的可能性極大(因無靈活的存放余地),

組相聯映象及地址變換

組相連映像則是先將主存分為頁面數相同的若干組,再將輔存按主存劃分為若干區,組內采用全相聯映象,組間采用直接映象,

這個很明顯通過分組融合了全相連映象和直接映象,說起來還有點小期待:happy::happy:,

同樣的,我們先給出示意圖:

image-20200426193735395

其中:

  • \(Nd\):區號
  • \(s\) :組號
  • \(q\):組內頁號——輔存
  • \(s'\):組號
  • \(q′\)組內頁號——主存

從圖中我們可以明顯看到:組間是直接相聯的,而組內則是全相聯,

地址變換

同樣的我們先給出其地址的表示方法

image-20200426195427767

由于映象方式的改變,我們在進行地址變換的時候,需要引入一個新的表--隨機存盤器表

該表具有如下特點:

  1. 表的行數與組數相等(本例2組,即2行),
  2. 每 行 大 字 段 數與組內頁面數相等(本例2個 ),
  3. 每 個 大 字 段 又分為三個小欄位,
  4. 每個大欄位還有一個比較器,

為了便以理解我們畫出其示意圖:

組相聯隨機存盤器表

具體的變換程序如下:

image-20200426211319171

  1. 根據虛地址中的s去查RAM表中的某一行,
  2. 將虛地址中的\(N_d\)、q同時送各比較器與所選行中的\(N_d\)、q進行比較,
  3. 當有一個比較器相等時:
    1. 將s→s’(組間直接),
    2. 將相等大欄位中q’送出作q’,
    3. 再將\(N_r\)\(n_r\),即實作了將虛址(\(N_d\),s ,q ,\(N_r\) )→( s′, q′,\(n_r\))命中時的地址變換

最后我們總結出組相聯映象的特點:

既有直接映象中對號入座部分(組間直接),可減少查表范圍,縮短查表時間,又有全相聯中的靈活存放規則(組內全相聯),從而可降低頁面沖突,

缺點: 控制機構復雜

段相聯映象

所謂段相連映象,其實跟組相聯特別相似--對主輔的劃分與組相聯映象相同,但為區分兩種不同的映象規則,將組相聯中的組改為段,段間采用全相聯,段內采用直接映象,

其示意圖如下:

image-20200426215311319

image-20200429140911373

四種映象規則的關系

  1. 在組相聯映象中,當每組只有一頁時,此時的組相聯就是直接映象,

    當把主存只分為一個組時,此時的組相聯也就是全相聯映象,即直接映象和全相聯映象是組相聯映象的兩個特例,

  2. 在段相聯映象中,當每段只有一頁時,此時的段相聯映象就是全相聯映象,

    當把主存只分為一個段時,此時的段相聯也就是直接映象,

總結

本文主要從存盤體系由來、分類以及原理角度來講解一個存盤體系的設計,努力做到全面,當然由于個人水平有限,文章難免可能會有錯誤,如若發現,懇請指出,不勝感激,

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/91677.html

標籤:Linux

上一篇:MySQL5.7沒有初始密碼解決辦法

下一篇:mongodb分片集群 搭建 + keyFile認證

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • CA和證書

    1、在 CentOS7 中使用 gpg 創建 RSA 非對稱密鑰對 gpg --gen-key #Centos上生成公鑰/密鑰對(存放在家目錄.gnupg/) 2、將 CentOS7 匯出的公鑰,拷貝到 CentOS8 中,在 CentOS8 中使用 CentOS7 的公鑰加密一個檔案 gpg -a ......

    uj5u.com 2020-09-10 00:09:53 more
  • Kubernetes K8S之資源控制器Job和CronJob詳解

    Kubernetes的資源控制器Job和CronJob詳解與示例 ......

    uj5u.com 2020-09-10 00:10:45 more
  • VMware下安裝CentOS

    VMware下安裝CentOS 一、軟硬體準備 1 Centos鏡像準備 1.1 CentOS鏡像下載地址 下載地址 1.2 CentOS鏡像下載程序 點擊下載地址進入如下圖的網站,選擇需要下載的版本,這里選擇的是Centos8,點擊如圖所示。 決定選擇Centos8后,選擇想要的鏡像源進行下載,此 ......

    uj5u.com 2020-09-10 00:12:10 more
  • 如何使用Grep命令查找多個字串

    如何使用Grep 命令查找多個字串 大家好,我是良許! 今天向大家介紹一個非常有用的技巧,那就是使用 grep 命令查找多個字串。 簡單介紹一下,grep 命令可以理解為是一個功能強大的命令列工具,可以用它在一個或多個輸入檔案中搜索與正則運算式相匹配的文本,然后再將每個匹配的文本用標準輸出的格式 ......

    uj5u.com 2020-09-10 00:12:28 more
  • git配置http代理

    git配置http代理 經常遇到克隆 github 慢的問題,這里記錄一下幾種配置 git 代理的方法,解決 clone github 過慢。 目錄 git配置代理 git單獨配置github代理 git配置全域代理 配置終端環境變數 git配置代理 主要使用 git config 命令 git單獨 ......

    uj5u.com 2020-09-10 00:12:33 more
  • Linux npm install 裝包時提示Error EACCES permission denied解

    npm install 裝包時提示Error EACCES permission denied解決辦法 ......

    uj5u.com 2020-09-10 00:12:53 more
  • Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包

    Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包。 18 (flaskApi) [root@67 flaskDemo]# yum -y install nginx 19 已加載插件:fastestmirror, langpacks 20 Loading ......

    uj5u.com 2020-09-10 00:13:13 more
  • Linux查看服務器暴力破解ssh IP

    在公網的服務器上經常遇到別人爆破你服務器的22埠,用來挖礦或者干其他嘿嘿嘿的事情~ 這種情況下正確的做法是: 修改默認ssh的22埠 使用設定密鑰登錄或者白名單ip登錄 建議服務器密碼為復雜密碼 創建普通用戶登錄服務器(root權限過大) 建立堡壘機,實作統一管理服務器 統計爆破IP [root ......

    uj5u.com 2020-09-10 00:13:17 more
  • CentOS 7系統常見快捷鍵操作方式

    Linux系統中一些常見的快捷方式,可有效提高操作效率,在某些時刻也能避免操作失誤帶來的問題。 ......

    uj5u.com 2020-09-10 00:13:31 more
  • CentOS 7作業系統目錄結構介紹

    作業系統存在著大量的資料檔案資訊,相應檔案資訊會存在于系統相應目錄中,為了更好的管理資料資訊,會將系統進行一些目錄規劃,不同目錄存放不同的資源。 ......

    uj5u.com 2020-09-10 00:13:35 more
最新发布
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:43:21 more
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:42:36 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:26:53 more
  • 設定Windows主機的瀏覽器為wls2的默認瀏覽器

    這里以Chrome為例。 1. 準備作業 wsl是可以使用Windows主機上安裝的exe程式,出于安全考慮,默認情況下改功能是無法使用。要使用的話,終端需要以管理員權限啟動。 我這里以Windows Terminal為例,介紹如何默認使用管理員權限打開終端,具體操作如下圖所示: 2. 操作 wsl ......

    uj5u.com 2023-04-19 09:25:49 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:19:04 more
  • Linux學習筆記

    IP地址和主機名 IP地址 ifconfig可以用來查詢本機的IP地址,如果不能使用,可以通過install net-tools安裝。 Centos系統下ens33表示主網卡;inet后表示IP地址;lo表示本地回環網卡; 127.0.0.1表示代指本機;0.0.0.0可以用于代指本機,同時在放行設 ......

    uj5u.com 2023-04-18 06:52:01 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:50 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:01 more
  • 你是不是暴露了?

    作者:袁首京 原創文章,轉載時請保留此宣告,并給出原文連接。 如果您是計算機相關從業人員,那么應該經歷不止一次網路安全專項檢查了,你肯定是收到過資訊系統技術檢測報告,要求你加強風險監測,確保你提供的系統服務堅實可靠了。 沒檢測到問題還好,檢測到問題的話,有些處理起來還是挺麻煩的,尤其是線上正在運行的 ......

    uj5u.com 2023-04-05 16:52:56 more
  • 細節拉滿,80 張圖帶你一步一步推演 slab 記憶體池的設計與實作

    1. 前文回顧 在之前的幾篇記憶體管理系列文章中,筆者帶大家從宏觀角度完整地梳理了一遍 Linux 記憶體分配的整個鏈路,本文的主題依然是記憶體分配,這一次我們會從微觀的角度來探秘一下 Linux 內核中用于零散小記憶體塊分配的記憶體池 —— slab 分配器。 在本小節中,筆者還是按照以往的風格先帶大家簡單 ......

    uj5u.com 2023-04-05 16:44:11 more