主頁 >  其他 > 作業系統NO.2 | 詳解作業系統的非連續記憶體管理(清華大學 作業系統原理)

作業系統NO.2 | 詳解作業系統的非連續記憶體管理(清華大學 作業系統原理)

2021-09-07 08:14:55 其他

創作不易,來了的客官點點關注,收藏,訂閱一鍵三連?😜


系列文章目錄

作業系統NO.1 | 了解作業系統的基礎知識


概述

作業系統NO.2 | 詳解作業系統的非連續記憶體管理,通過本期內容你將了解內層的層次結構、分頁、分段等知識,


目錄

系列文章目錄

概述

作業系統思維導圖

計算機系統基本結構和作業原理

計算機系統的基礎結構

計算機硬體系統作業原理

記憶體的層次結構

記憶體分層體系

記憶體管理目標

在作業系統中管理記憶體的不同方法

地址空間和地址生產

地址空間的定義

地址的生成

地址安全檢查

連續記憶體分配

記憶體碎片問題

磁區的動態分配

第一匹配分配

最優適配分配

最差適配分配

碎片整理方法

非連續記憶體管理

何為非連續記憶體管理?

非連續記憶體管理的優缺點

分段

段訪問機制

分段尋址方案

分頁

分頁地址空間

幀(frame)

頁(page)

頁尋址機制

頁表

分頁機制存在的問題

TLB(Translation Look-aside Buffer)

反向頁表

分頁和分段的區別


作業系統思維導圖


計算機系統基本結構和作業原理

計算機系統的基礎結構

計算機系統是由硬體系統軟體系統兩大部分組成,

計算機硬體: 計算機硬體由五個基本部分組成:運算器、控制器、存盤器、輸入設備和輸出設備,硬體是構成計算機系統各功能部件的集合,是由電子、機械和光電元件組成的各種計算機部件和設備的總稱,是計算機完成各項作業的物質基礎,計算機硬體是看得見、摸得著的,實實在在存在的物理物體,

計算機軟體:指與計算機系統操作有關的各種程式以及任何與之相關的檔案和資料的集合,其中程式是用程式設計語言描述的適合計算機執行的陳述句指令序列,

CPU:程式執行的地方

記憶體:防止程式的代碼和需要處理的資料

設備:主要是外設,例如硬碟、滑鼠等

計算機硬體系統作業原理

(1)計算機內部采用二進制來表示程式和資料,

(2)采用“存盤程式”的方式,將程式和資料放入同一個存盤器中(記憶體儲器),計算機能夠自動高速地從存盤器中取出指令加以執行,

作業原理


記憶體的層次結構

記憶體分層體系

運行記憶體(主存) / 磁盤(虛擬記憶體). 主存是在運行程式時所需要保存的資料空間,而磁盤是用于持久化資料保存的資料空間

CPU可以訪問的記憶體包括兩大類 : 暫存器 / cache(L1快取 / L2快取)

層次如下:

微處理器(CPU訪問)

|___CPU暫存器 / L1快取

|___L2快取

主存(程式訪問)

磁盤(程式訪問)

CPU暫存器到磁盤,讀寫速度不斷降低,單位成本不斷降低,大小不斷增大,

記憶體管理目標

抽象:邏輯地址空間,應用程式在記憶體中運行有利于作業系統的有效管理,讓作業系統不要考慮太多底層的原理,只需要訪問一個連續地址空間,即邏輯地址空間

保護:獨立地址空間,記憶體中可以運行多個不同的應用程式,應用程式相互之間可以訪問別的行程的地址空間,可能造成破壞,為了保護行程間的地址空間,需要進行隔離,因此需要獨立的地址空間

共享:訪問相同記憶體,行程之間也需要互動,因此需要作業系統提供一個共享的空間,讓行程來訪問相同的記憶體

虛擬更多的地址空間,當我們在記憶體運行了較多行程后,記憶體可能不夠,此時我們可以將最需要最必要的程式(行程)放到記憶體中,而其他程式(行程,不需要進行訪問的程式)放到硬碟(磁盤)上,通過此方法可以實作更多的地址空間

圖解:從圖中可以看到,在作業系統管理下,有四個放在記憶體中的程式(P1、P2、P3、P4),而正在運行的程式是P1,而其他等待中,尤其是P4可能由于當前正在等待某個行程需要一段時間后發生,因此P4的資料沒有必要放到記憶體中,作業系統就將P4匯入到硬碟中(虛擬),這樣也有利于P1、P2、P3程式的進行,


在作業系統中管理記憶體的不同方法

地址空間和地址生產

地址空間的定義

地址空間:地址空間分為物理地址空間和邏輯地址空間,

物理地址空間:硬體支持的地址空間,比如記憶體條代表的主存,以及硬碟代表的存盤空間,這兩種存盤空間即為物理記憶體,物理記憶體的控制和管理是由硬體來完成的,( address : [0, Max_sys] )

邏輯地址空間:一個運行的程式所看到的地址空間,一維的線性地址空間,( address : [0, Max_prog] )

地址的生成

邏輯地址的生成經過了很多轉換程序,該程序基本上不需要作業系統的幫助,是通過應用程式、編譯器、loader等來完成,執行的程式放大記憶體中后,仍然是邏輯地址,不是物理地址,這兩者的區別如下:

物理地址的生多了一條映射關系,圖中的指令有自己的邏輯地址,需要將次邏輯地址取出來,然后放到物理記憶體中,而這個程序中CPU的MMU表示了此程序的映射關系,從而得到邏輯地址對應的物理地址,

因此物理地址的生成步驟如下:

1.CPU執行指令時,ALU部件會需要指令的內容,它會發出請求獲取指令內容

2.CPU的MMU會查找邏輯地址的映射表,從而得出是否有對應的物理地址,找到后CPU就會給主存發送請求,告訴主存需要的物理地址

3.主存會把記憶體的內容通過總線傳給CPU,隨后CPU繼續執行指令

地址安全檢查

作業系統需要設定邏輯地址空間的基址和界限:

作業系統首先要確保每一個程式它可以有效訪問的地址空間,即起始地址和長度,因此得到哪塊區域是可以合法訪問的;

一旦CPU需要執行指令時,作業系統會查找map,map會指出邏輯地址是否滿足區域的限制,滿足限制就會得到物理地址的位置,否則CPU就會產生記憶體訪問例外,

連續記憶體分配

當一個程式準許運行在記憶體中時,分配一個連續的區間;

分配一個連續的記憶體空間給運行的程式以此訪問資料,

記憶體碎片問題

記憶體碎片問題指的是空閑的記憶體無法被利用的情況,記憶體碎片問題需要有效的避免,

記憶體碎片又分為外部碎片和內部碎片:

外部碎片 : 分配單元間的未使用記憶體

內部碎片 : 分配單元內的未使用記憶體

磁區的動態分配

簡單的記憶體管理方法,磁區的動態分配方式有以下三種 :

第一匹配分配

為了分配n位元組,使用第一個可用空閑塊以致塊的尺寸比n大,即在記憶體中找到第一個比需求大的空閑塊, 分配給應用程式基本原理和實作方法:重按地址排序的空閑塊串列,分配需要尋找一個合適的磁區,重分配需要檢查,看是否自由磁區能合并于相鄰的空閑磁區,

優勢:簡單;易于產生更大空閑塊、想著地址空間的結尾,

劣勢:容易產生外部碎片,不確定性大,

最優適配分配

為了分配n位元組,使用最小的可用空閑塊,以致塊的尺寸比n大,即在記憶體中找到最小的空閑塊, 分配給應用程式,

基本原理和實作方法:為了避免分割大空閑塊,為了最小化外部碎片產生的尺寸,需要按照尺寸排列的空閑塊串列,分配需要尋找一個合適的磁區,重分配需要搜索和合并于相鄰的空閑分塊(若有),

優勢:當大部分分配時小尺寸時非常有效,比較簡單,

劣勢:外部碎片產生,重分配慢,以產生很多沒用的微小碎片,

最差適配分配

為了分配n位元組,使用最大可用空閑塊,以致快的尺寸比n大,即在記憶體中找到最大的空閑塊, 分配給應用程式,

基本原理和實作方法:為了避免有太多微小的碎片;按尺寸排列的空閑塊串列,分配很快(獲得最大的磁區),重分配需要合并于相鄰的空閑磁區,若有,需要調整空閑塊串列,

優勢:假如分配是中等尺寸效果最好,

劣勢:重新分配慢,產生外部碎片,易于破碎大的空閑塊以致大磁區無法被分配,

以上三種分配演算法,并沒有最好的一種的說法,根據需求不同,演算法適配不同,因此三者都不能滿足同時滿足需求,

碎片整理方法

壓縮式碎片整理

重置程式來合并孔洞,要求所有程式是動態可重置的,

注意:當程式處于等待時進行重置,同時需要考慮開銷,

交換式碎片整理

運行程式需要更多的記憶體,搶占等待的程式并回收他們的記憶體,

注意:需要考慮什么時候進行程式交換


非連續記憶體管理

何為非連續記憶體管理?

連續記憶體存在分配的缺點:分配給一個程式的物理記憶體是連續的;記憶體利用率較低以及有外碎片和內碎片的問題,而非連續記憶體分配管理可以來改善連續分配的問題,

非連續記憶體管理的優缺點

優勢:

一個程式的物理記憶體是非連續的;

更好的記憶體利用和管理;

允許共享代碼和資料;

支持動態加載和動態鏈接,

劣勢:

建立虛擬地址和物理地址的轉換難度大,因此有軟體方案和硬體方案,

硬體方案:分段和分頁,

軟體方案:虛擬記憶體

分段

分段的邏輯視圖

段訪問機制

段 : 一個段相當于一個記憶體“塊”,即一個邏輯地址空間,在程式中會有來自不同檔案的函式 ; 在程式執行時, 不同的資料也有不同的欄位, 比如 : 堆 / 堆疊 / .bss / .data 等

圖片:從左至右是硬體實作方案

分段尋址方案

邏輯地址空間連續,但是物理地址空間不連續,使用映射機制進行關聯

程式訪問記憶體地址需要:一個二維的元組(s,addr),即一個段號(S)和段內偏移(addr)

作業系統:作業系統建立并維護一張段表, 存盤(段號, 物理地址中的起始地址, 長度限制)

物理地址 : 段表中的起始地址 + 二元組中的偏移地址

分頁

分頁地址空間

1.劃分物理記憶體至固定大小的幀(物理頁),大小是2的冪

2.劃分邏輯地址空間至相同大小頁(邏輯頁),大小是2的冪

3.建立方案:轉換邏輯地址為物理地址,需要頁表和MMU/TLB

幀(frame)

物理記憶體被分割為大小相等的幀,

一個記憶體物理地址是一個二元組(f,o),f代表頁幀號,o代表幀內偏移(S位),

物理地址=2S*f+o

eg:16-bit的地址空間,9-bit(512byte)大小的頁幀物理地址(3,6)

物理地址=(3,6)

物理地址=1542

頁(page)

一個程式的邏輯地址空間被劃分為大俠相等的頁,

頁內偏移的大小=幀內偏移的大小

一個邏輯地址是一個二元組(p,o):

p:頁號(P位,2p個頁)

o:頁內偏移(S位,每頁有2s位元組)

頁尋址機制

程式運行的時候,CPU會尋址(邏輯地址以及虛擬地址),CPU通過(p,o)以及頁表來尋找幀號和幀內偏移,隨后幀號和幀內偏移得到物理地址,

因此,我們可以得到頁尋址機制:

1.頁映射到幀

2.頁是連續的虛擬記憶體

3.真是非連續的物理記憶體

4.不是所有的頁都有對應的幀

頁表

每個運行的程式都有一個頁表,頁表類似于一個陣列的對應關系,頁表的索引是頁號,對應的頁表項的內容是幀號,

屬于程式運行狀態,頁表會動態變化

地址轉換實體

記憶體空間的大小:邏輯地址空間(16bit即64kb),物理記憶體空間(32kb

頁內的偏移和頁幀的偏移一致,頁、幀大小一樣;

40:頁號4,頁內偏移:0

31023:頁號3,頁內偏移:1023

紅色的01

0代表物理頁幀在物理記憶體中不存在,CPU訪問到0會產生例外,

1代表物理頁幀在物理記憶體中存在,對應的頁幀號位00100即為4,因此映射出來頁號對應幀號是4,幀偏移和頁偏移一致為1023.

分頁機制存在的問題

1.空間代價問題

2.時間的開銷問題,訪問一個記憶體單元需要2次記憶體訪問,一次用于獲取頁表項,一次用于訪問資料

3.頁表可能非常大,64位機器(2^64)如果每頁1024位元組,會需要2^54大小的頁表

解決方法:

1.建立快取(caching),把最常用的程式和內容快取到接近CPU的地方

2.通過間接訪問的方式

3.為了讓頁表的記憶體空間盡量小,我們可以通過多級多層頁表來解決此問題,

TLB(Translation Look-aside Buffer)

TLB位于CPU內部(MMU里),是一種快取(cache),它的內容是一個鍵值對,keyp頁號和f幀號,得到f,因為頁偏移和幀偏移一致,就可以得到物理記憶體地址,

TLB使用關聯記憶體實作,具備快速訪問性能,

如果TLB命中,物理頁號可以很快備貨區;未命中對應的表項,回到頁表里面去查找f,隨后通過(CPU或軟體,具體看系統版本)執行會被更新到TLB中,

圖示如下:

二級頁表

二級串列:即拆分為了一級頁表和二級頁表,對于它的尋址程序,首先會找一級頁表,將p(頁號)作為index

查找一級頁面對應的頁表項,這個值是二級串列的起始地址,形成一個在二級頁表對于P2的頁表項,對應二級頁表映射的幀號,隨后根據頁內偏移o可以得到物理記憶體地址,

如果映射關系不存在,就沒必要再頁表中存放,以此節省了空間,

多級頁表

多級頁表:通過把頁號分位k個部分,來實作多級間接頁表,

反向頁表

反向頁表:不是讓頁表與邏輯地址的大小相對應,而是讓頁表與物理地址空間的大小相對應,即通過幀號f來查找邏輯地址里面的p頁號,

頁暫存器方案的權衡

基于關聯記憶體的方案

key:頁號,value:幀號

此方案同時也存在開銷過大的問題,技術復雜,

基于哈希查找方案

輸入的是:頁號+pid,中間通過哈希函式,輸出的幀號,

在反向頁表中通過哈希演算法來搜索一個頁對應的幀號

1.對頁號做哈希計算, 為了在幀表中獲取對應的幀號

2.頁 i 被放置在表 f(i) 位置, 其中 f 是設定的哈希函式

3.為了查找頁 i , 執行下列操作 :

計算哈希函式 f(i) 并且使用它作為頁暫存器表的索引, 獲取對應的頁暫存器

檢查暫存器標簽是否包含 i, 如果包含, 則代表成功, 否則失敗

分頁和分段的區別

1.目的的區別

頁是資訊的物理單位,分頁是為實作離散分配方式,以消減記憶體的外零頭,提高記憶體的利用率,分頁是出于系統管理的需要而不是用戶需要,

段是資訊的邏輯單位,它含有一組其意義相對完整的資訊,分段的目的是為了更好地滿足用戶的需要,

2.長度的區別

頁的大小固定而且由系統決定,由系統把邏輯地址劃分為頁號和頁內地址兩部分,是由機器硬體實作的,因而在系統中只能有一種大小的頁面,

段的長度不固定,決定于用戶所撰寫的程式,通常由編譯程式在對程式進行編譯時,根據資訊的性質來劃分,

即分段時段的尺寸可以改變,而分頁時的頁增是不變的,

3.地址空間

頁的地址空間是一維的,即單一的線形地址空間,程式員只要利用一個記憶符就可以表示一個地址,

作業地址空間是二維的,程式員在標識一個地址時,既需要給出段名,又需給出段內地址

4.碎片的區別

分頁有內部碎片無外部碎片;分段有外部碎片無內部碎片

5.絕對地址

處理器使用頁號和偏移量計算絕對地址;處理器使用段號和偏移量計算絕對地址

6.管理方式

對于分頁,作業系統必須為每個行程維護一個頁表,以說明每個頁對應的的頁框,當行程運行時,它的所有頁都必須在記憶體中,除非使用覆寫技識訓虛擬技術,另外作業系統需要維護一個空閑頁框串列,

對于分段,作業系統必須為每個行程維護一個段表,以說明每個段的加載地址和長度,當行程運行時,它的所有短都必須在記憶體中,除非使用覆寫技識訓虛擬技術,另外作業系統需要維護一個記憶體中的空閑的空洞串列,

特別的,當使用虛擬技術是,把一頁或一段寫入記憶體時可能需要把一頁或幾個段寫入磁盤,

7.共享和動態鏈接

分頁不容易實作,分段容易實作

此處參考https://blog.csdn.net/zhongyangtony

創作不易,客官點個贊,評論一下吧!超超和你一起加油?😜

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

標籤:其他

上一篇:??十大排序演算法詳解??——可能是你看過最全的,完整版代碼

下一篇:動態記憶體管理(下)

標籤雲
其他(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)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more