當(dāng)前位置:首頁 > 公眾號精選 > 嵌入式微處理器
[導(dǎo)讀]1 前言 內(nèi)存管理是Linux內(nèi)核中非常重要的部分,今天和大家一起學(xué)習(xí)一下。 當(dāng)我們要學(xué)習(xí)一個新知識點(diǎn)時,比較好的過程是先理解出現(xiàn)這個技術(shù)點(diǎn)的 背景原因,同期其他解決方案,新技術(shù)點(diǎn)解決了什么問題以及它存在哪些不足和改進(jìn)之處,這樣整個學(xué)習(xí)過程是 閉環(huán) 的

1 前言

內(nèi)存管理是Linux內(nèi)核中非常重要的部分,今天和大家一起學(xué)習(xí)一下。

當(dāng)我們要學(xué)習(xí)一個新知識點(diǎn)時,比較好的過程是先理解出現(xiàn)這個技術(shù)點(diǎn)的 背景原因,同期其他解決方案,新技術(shù)點(diǎn)解決了什么問題以及它存在哪些不足和改進(jìn)之處,這樣整個學(xué)習(xí)過程是 閉環(huán) 的,個人覺得這是個很好的學(xué)習(xí)思路。

凡事都是相通的,計(jì)算機(jī)學(xué)科的一些問題在現(xiàn)實(shí)生活中都可以找到原型,所以我覺得計(jì)算機(jī)科學(xué)家大部分都是善于觀察生活并總結(jié)歸納的。人類社會就是一臺復(fù)雜的機(jī)器,其中充滿了機(jī)制和規(guī)則,所以有時候跳進(jìn)代碼海洋不如先回到生活之中,尋找原型再探究代碼,可能理解會更深刻。

linux內(nèi)存管理卷帙浩繁,本文只能層層遞進(jìn)地帶你領(lǐng)略冰山輪廓,通過本文你將了解到以下內(nèi)容:

  • 為什么需要管理內(nèi)存

  • linux段頁管理機(jī)制

  • 內(nèi)存碎片的產(chǎn)生機(jī)理

  • 伙伴系統(tǒng)的基本原理
  • 伙伴系統(tǒng)的優(yōu)勢和不足
  • slab分配器的基本原理

2 為什么需要管理內(nèi)存

老子的著名觀點(diǎn)是無為而治,簡單說就是不過多干預(yù)而充分依靠自覺就可以有條不紊地運(yùn)作,理想是美好的,現(xiàn)實(shí)是殘酷的。

在linux系統(tǒng)中如果以一種原始簡單的方式管理內(nèi)存是存在一些問題的,我們來看幾個場景。

2.1 內(nèi)存管理的問題

  • 進(jìn)程空間隔離問題

假如現(xiàn)在有ABC三個進(jìn)程運(yùn)行在linux的內(nèi)存空間,設(shè)定os給進(jìn)程A分配的地址空間是0-20M 進(jìn)程B地址空間30-80M,進(jìn)程C地址空間90-120M,如圖:



在某些時候程序空間的訪問可能出現(xiàn)問題,比如進(jìn)程A訪問了屬于進(jìn)程B的空間,進(jìn)程B訪問了屬于進(jìn)程C的空間,甚至修改了空間的值,這樣就會造成混亂和錯誤,所以實(shí)際中是不允許這種情況發(fā)生的。


  • 內(nèi)存效率和內(nèi)存不足問題

機(jī)器的內(nèi)存是有限資源,而進(jìn)程數(shù)量是無法確定的,如果在某些時候已經(jīng)啟動的進(jìn)程占據(jù)了所有內(nèi)存空間,此時就無法啟動新進(jìn)程了,因?yàn)闆]有新內(nèi)存可分配了,但是我們觀察到已經(jīng)啟動的進(jìn)程有時候是在睡大覺,也就是給了內(nèi)存也不用,這樣效率確實(shí)是有點(diǎn)低,所以我們需要一個管理員把不用的內(nèi)存倒騰出來,另外連續(xù)內(nèi)存實(shí)在是很珍貴,很多時候我們沒法有效及時地分配連續(xù)內(nèi)存,因此虛擬化和離散化可能會有效提高內(nèi)存的使用率。


  • 程序定位調(diào)試和編譯運(yùn)行問題

由于程序運(yùn)行時的位置時不確定的,我們在定位問題、調(diào)試代碼、編譯執(zhí)行時都會存在很多問題,我們希望每個進(jìn)程有一致且完整的地址空間,同樣的起始位置放置了堆、棧以及代碼段等,從而簡化編譯和執(zhí)行過程中的 linker 鏈接器、loader 加載器的使用。

2.2 虛擬地址空間

為了解決上述的一些問題,linux系統(tǒng)引入了虛擬空間的概念,虛擬化的出現(xiàn)和硬件有密不可分的聯(lián)系,可以說是軟硬件組合的結(jié)果,虛擬地址空間就是在程序和物理空間所增加的中間層,這也是內(nèi)存管理的重點(diǎn)。


磁盤 disk 作為一種大容量的存儲也作為"內(nèi)存"的一部分參與程序的運(yùn)行,內(nèi)存管理系統(tǒng)會將不常用非活躍內(nèi)存進(jìn)行頁面換出,可以認(rèn)為內(nèi)存磁盤的緩存,內(nèi)存中保留了活躍的數(shù)據(jù),從而間接擴(kuò)展了有限的物理內(nèi)存空間,這部分空間稱為虛擬內(nèi)存是相對于物理內(nèi)存而言的。



3.段頁管理機(jī)制

本文并不深入地將分段管理內(nèi)存和分頁管理內(nèi)存,因?yàn)閷⑦@些細(xì)節(jié)的優(yōu)秀文章很多,感興趣的使用搜索引擎一鍵即達(dá)。

段頁機(jī)制也不是一蹴而就的,經(jīng)歷了單純物理分段、單純分頁、單純邏輯分段等階段,最終演進(jìn)出來了分段和分頁結(jié)合的內(nèi)存管理方式,段頁結(jié)合獲得了分段和分頁的優(yōu)勢也避免了單一模式的弊端,是一種比較好的管理模式。

本文對于段頁管理機(jī)制只想通俗地說明一些概念,段頁管理機(jī)制是分段式管理和分頁式管理的組合,段式管理是邏輯上的管理方式,分頁管理是偏物理上的管理方式

計(jì)算機(jī)里面的一些技術(shù)和實(shí)現(xiàn)都可以在現(xiàn)實(shí)生活中找到縮影,所謂藝術(shù)和科技源自生活大概就是這個意思吧。

舉個栗子
在進(jìn)行居民戶籍管理時都會有區(qū)縣市的概念,但是實(shí)際上并沒有這種實(shí)體,都是邏輯上的,增加了這些行政單位之后可以讓地址管理更加直接。

對于我們居民來說唯一的實(shí)體就是自己的房子住所,這是物理上的單位,是真實(shí)存在的,這也是最基本的單位。

對比linux段頁時管理來說,段是邏輯上的單位相當(dāng)于區(qū)縣市的概念,頁是物理上的單位相當(dāng)于小區(qū)/房屋的概念,這樣就方便很多。

多級頁表也很好理解,總的物理內(nèi)存假如有4GB,頁大小為4KB,那么就總共有2^20個頁,數(shù)量還是非常大的,這樣編號來建立索引尋址比較不方便,所以引入多級頁表,來減少存儲便于管理。

段頁機(jī)制加持下的邏輯地址和物理地址的映射關(guān)系簡圖,也就是虛擬地址到物理地址的對應(yīng)關(guān)系:

圖片來自網(wǎng)絡(luò)

內(nèi)存管理單元( MMU Memory Management Unit )是硬件層組件,主要提供將虛擬地址映射為物理地址。

MMU 的工作流程:CPU 生成邏輯地址交給分段單元,分段單元進(jìn)行處理將邏輯地址轉(zhuǎn)換為線性地址,再線性地址交給分頁單元,分頁單元根據(jù)頁表映射轉(zhuǎn)換內(nèi)存物理地址,其中可能出現(xiàn)缺頁中斷。

缺頁中斷( Page Fault )是只當(dāng)軟件試圖訪問一個虛擬地址時,經(jīng)過段頁轉(zhuǎn)換為物理地址之后,此時發(fā)現(xiàn)該頁并沒有在內(nèi)存中,這時 cpu 就會報(bào)出中斷,再進(jìn)行相關(guān)虛擬內(nèi)存的調(diào)入工作或者分配工作,如果出現(xiàn)異常也可能直接中斷。

4.物理內(nèi)存和內(nèi)存碎片

前面說的段頁管理機(jī)制算是虛擬空間的部分,然而linux內(nèi)存管理的另外一個重要部分就是物理內(nèi)存的管理了,也就是如何分配和回收物理內(nèi)存,這就涉及到一些內(nèi)存分配算法和分配器。

4.1 物理內(nèi)存分配器

分配器和分配算法就像公司財(cái)務(wù)內(nèi)存就像公司資金,如何把資金合理使用是財(cái)務(wù)的本職工作,如何把物理內(nèi)存合理使用是分配器的分內(nèi)之事。

4.2 內(nèi)存碎片分類和機(jī)理

如果我們不知道內(nèi)存碎片是什么,試想一下我們常說的碎片化的時間,也就是那些雖然空閑但是沒有被利用的時間,其實(shí)內(nèi)存也是如此。

無論是時間還是內(nèi)存被碎片化之后都無法被有效利用,因此合理管理減少碎片對我們來說是至關(guān)重要的,這也是物理內(nèi)存分配算法和分配器的研究重點(diǎn)。

按照碎片的位置和產(chǎn)生原因,內(nèi)存碎片分為外部碎片內(nèi)部碎片,我們看下這兩種碎片的直觀展示:



圖片來自網(wǎng)絡(luò)

從圖中可以知道,外部碎片是進(jìn)程與進(jìn)程間未分配的內(nèi)存空間,外部碎片的出現(xiàn)和進(jìn)程頻繁的分配和釋放內(nèi)存有直接關(guān)系,這個很好理解,模擬一下分配不同空間的進(jìn)程不同時間釋放就可以看到外部碎片的產(chǎn)生了。


內(nèi)部碎片主要因?yàn)?/span>分配器粒度問題以及一些地址限制導(dǎo)致實(shí)際分配的內(nèi)存大于所需內(nèi)存,這樣在進(jìn)程內(nèi)部就會出現(xiàn)內(nèi)存空洞。


雖然虛擬地址讓進(jìn)程使用的內(nèi)存在物理內(nèi)存上是離散的,但是很多時候進(jìn)程需要一定量連續(xù)物理內(nèi)存,如果大量碎片存在,就會造成無法啟動進(jìn)程的問題,如圖Process7需要一塊連續(xù)的物理內(nèi)存卻無法被分配:

圖片來自網(wǎng)絡(luò)

如果還是沒有很清楚,試想一下平時和三五好友去食堂吃飯或者坐公交的場景,整個車廂都沒有連續(xù)的3個座位,所以要么分開坐要么都站著

5. 伙伴系統(tǒng)算法基本原理

5.1 一些準(zhǔn)備知識

  • 物理頁框

linux將物理內(nèi)存按照頁來劃分,內(nèi)存頁的大小在不同的軟硬件中可能不一樣,linux內(nèi)核設(shè)置為4KB,有的內(nèi)核可能更大也可能更小,當(dāng)時不同的大小在實(shí)際中都是有考量的,就像面包一樣有大有小,并不是整齊劃一的。

  • 頁框記錄結(jié)構(gòu)

在內(nèi)核中為了建立對物理內(nèi)存頁page的使用情況的監(jiān)控,會有struct page這樣的數(shù)據(jù)結(jié)構(gòu)來記錄頁的位置地址/使用情況等,相當(dāng)于內(nèi)核對內(nèi)存頁管理的一本賬目。

  • 延時分配和實(shí)時分配

linux系統(tǒng)有內(nèi)核態(tài)和用戶態(tài)之分,內(nèi)核態(tài)申請內(nèi)存就立刻滿足并且認(rèn)為這個請求一定是合理的。然而用戶態(tài)申請內(nèi)存的請求,總是盡量延后分配物理內(nèi)存,所以用戶態(tài)進(jìn)程是先獲得一個虛擬內(nèi)存區(qū),在運(yùn)行時通過缺頁異常獲得一塊真正的物理內(nèi)存,我們執(zhí)行 malloc 時獲取的只是虛擬內(nèi)存而已,并不是真實(shí)的物理內(nèi)存,也是這個原因造成的。

5.2 伙伴系統(tǒng)簡介

第一次聽到這個算法名稱就很好奇為什么叫伙伴系統(tǒng)?讓我們來一起揭秘。

  • 伙伴系統(tǒng)要解決什么問題

伙伴系統(tǒng)算法是解決外部碎片的有力工具,簡單來說它針對頻繁請求和釋放不同大小的一組連續(xù)頁框的場景,建立一套管理機(jī)制來高效的分配和回收資源,降低外部碎片。

  • 解決外部碎片的思路

第一種思路:把已經(jīng)存在的外部碎片通過新的技術(shù)把這些非連續(xù)的空閑內(nèi)存映射到連續(xù)的線性空間,其實(shí)相當(dāng)于沒有去降低外部碎片的產(chǎn)生而是治理型方案,但是這種方案在真實(shí)需要連續(xù)物理內(nèi)存時是無效的。

第二種思路:把這些小的空閑的不連續(xù)內(nèi)存記錄在案,如果有新的分配需求就從中搜索合適的將空閑內(nèi)存分配出去,這樣就避免了在新的區(qū)域進(jìn)行分配內(nèi)存,有種變廢為寶的感覺,其實(shí)這樣場景也很熟悉當(dāng)你想吃一包餅干時,你媽媽肯定會說先把之前剩下一半沒吃完的吃掉,不要先開新的了。

基于一些其他方面的考量,linux內(nèi)核選擇了第二種思路來解決外部碎片。

  • 伙伴內(nèi)存塊的定義

在伙伴系統(tǒng)中把大小相同且物理地址連續(xù)的兩塊內(nèi)存區(qū)域稱為伙伴,連續(xù)地址的要求其實(shí)是比較苛刻了,但是這也是算法的關(guān)鍵,因?yàn)檫@樣的兩塊內(nèi)存區(qū)域可以合并一塊更大的區(qū)域。


  • 伙伴系統(tǒng)的核心思想

伙伴系統(tǒng)將不同大小的連續(xù)物理頁框進(jìn)行管理,在申請時從最接近的頁框大小進(jìn)行分配,剩余的進(jìn)行新的拆解,并將有伙伴關(guān)系的內(nèi)存會進(jìn)行合并成為大的頁框。

5.3 伙伴系統(tǒng)的基本過程

伙伴系統(tǒng)維護(hù)了 n=0~10 共 11 個塊鏈表,每個塊鏈表分別包含了大小為 2^n 個連續(xù)的物理頁。當(dāng) n=10 時即 1024 個 4KB 頁對應(yīng) 4MB 大小的連續(xù)物理內(nèi)存塊,這里的 n稱為 order,在伙伴系統(tǒng)中 order為0~10,也就是最小的是 4KB,最大的內(nèi)存塊是4MB,這些相同大小的物理塊組成雙向鏈表進(jìn)行管理,如圖展示了 order=0 和 order=2 的兩個雙向鏈表的情況:

圖片來自網(wǎng)絡(luò)


申請內(nèi)存過程:假設(shè)請求一個頁框塊,伙伴系統(tǒng)算法先在 order=0 的鏈表中檢查是否有空閑塊可分配。如果沒有則查找下一個更大的塊,在 order=1 的鏈表中找一個空閑塊,鏈表中存在就把2個頁框拆分,1個頁框分配出去1 個頁框加入到 order=0的鏈表中。如果 order=1 的鏈表中仍未找到空閑塊,就繼續(xù)向更大的order搜索,如果找到進(jìn)行拆分處理,如果最終至 order=10 的鏈表也沒有空閑塊,則算法報(bào)錯。

合并內(nèi)存過程:合并內(nèi)存的過程是伙伴算法中伙伴塊的體現(xiàn),算法把兩個塊具有相同大小 A且它們物理地址連續(xù)的內(nèi)存合并為一個大小為 2A 的單獨(dú)塊?;锇樗惴ㄊ亲缘紫蛏系喜⒌模鋵?shí)這個過程和 leveldb 中 sst 的合并過程很相似,區(qū)別在于伙伴算法要求內(nèi)存塊是連續(xù)的,這個過程也體現(xiàn)了伙伴系統(tǒng)對于大塊內(nèi)存的友好。

圖片來自網(wǎng)絡(luò)

5.4 伙伴系統(tǒng)的優(yōu)勢和不足

伙伴系統(tǒng)算法較好地解決了外部碎片問題,并且對于大內(nèi)存塊的分配比較友好小粒度的內(nèi)存可能造成內(nèi)部碎片,但是伙伴系統(tǒng)對于伙伴塊的定義很苛刻,并且在合并伙伴塊的過程涉及較多的鏈表操作,對于一些頻繁的申請可能剛合并就會被拆分掉,這就做了無用功,所以伙伴系統(tǒng)還是存在一些問題的。

6. Slab分配器

從伙伴系統(tǒng)的介紹可以知道其分配的最小單位是 4KB 的頁框,這對于一些頻繁申請的小到幾十字節(jié)的內(nèi)存來說還是十分浪費(fèi)的,所以我們需要更細(xì)粒度的分配器,這就是slab分配器。

slab分配器并不是和伙伴系統(tǒng)分立的,而是建立在伙伴系統(tǒng)之上,可以看作是伙伴系統(tǒng)的二級分銷商,更加靠近用戶側(cè),但是slab分配器因?yàn)楦拷褂梅剑虼嗽诮Y(jié)構(gòu)實(shí)現(xiàn)上比伙伴系統(tǒng)更加復(fù)雜,本文只能簡單概括。

個人感覺slab分配器的亮點(diǎn)包括:最小粒度為對象和內(nèi)存惰性歸還。

Linux 所使用的 slab 分配器的基礎(chǔ)是 Jeff Bonwick 為 SunOS 操作系統(tǒng)首次引入的一種算法。Jeff 的分配器是圍繞對象緩存進(jìn)行的。在內(nèi)核中,會為有限的對象集(例如文件描述符和其他常見結(jié)構(gòu))分配大量內(nèi)存。Jeff 發(fā)現(xiàn)對內(nèi)核中普通對象進(jìn)行初始化所需的時間超過了對其進(jìn)行分配和釋放所需的時間。因此他的結(jié)論是不應(yīng)該將內(nèi)存釋放回一個全局的內(nèi)存池,而是將內(nèi)存保持為針對特定初始化的狀態(tài)。

from 《linux slab 分配器剖析》

slab采用對象作為最小單位的理論基礎(chǔ)就在于初始化一個結(jié)構(gòu)的時間可能超過了分配和釋放的時間。

slab分配器可以看作是一種內(nèi)存預(yù)分配機(jī)制,就像超市會把常用的物品放到大家更容易找到的位置,事先把這些對象準(zhǔn)備好申請時就可以立刻分配出去了。

  • slabs_full鏈表中slab已經(jīng)完全分配出去

  • slabs_partial鏈表中的slab部分已經(jīng)被分配出去了

  • slabs_empty: 鏈表中的slab都是空閑的 也就是可以被回收

對象是從 slab 中進(jìn)行分配和釋放的,每個kmem_cache的slab列表是存在狀態(tài)遷移的,但是被回收的部分slab并不會立刻歸還給伙伴系統(tǒng),并且在分配時會優(yōu)先分配最近被釋放的對象,目的是利用cpu緩存的局部性原理,可以看出來slab分配器的細(xì)節(jié)做的很足,但是為了實(shí)現(xiàn)這一套復(fù)雜的邏輯,就要維護(hù)多個隊(duì)列會比伙伴系統(tǒng)更復(fù)雜。

slab的內(nèi)容相比buddy更復(fù)雜,本文不再展開。

7.結(jié)語

linux內(nèi)存管理的東西確實(shí)非常多,本文也只有5k字并且沒有源碼,所以只能是淺談

從工程角度來說,本文也只是拋磚引玉的作用,所以這篇文章并不是深入的探討內(nèi)存管理,對此我也表示歉意。

讓我的好朋友sy審稿了一下,他說看著寫了很多但又好像啥也沒寫,其實(shí)我跟他的感受一樣,可能最近寫文章沒感覺,和上篇快手面試題差不多,寫完之后有點(diǎn)迷茫。

所以最后還是那句話,本文只是淺談,深入理解還是需要去看內(nèi)核書籍,沒有捷徑。

8.巨人的肩膀

  • https://blog.csdn.net/XD_hebuters/article/details/79519406

  • https://blog.csdn.net/xd_hebuters/article/details/79506062

  • https://jacktang816.github.io/post/linuxmemorymanage/

  • https://jacktang816.github.io/post/memoryfragmentation/

  • https://www.jianshu.com/p/98f9f86b2aeb

  • https://www.cnblogs.com/sunsky303/p/9214223.html

  • https://www.cnblogs.com/klb561/p/11062166.html

  • http://abcdxyzk.github.io/blog/2015/03/03/kernel-mm-slab2/

  • https://www.ibm.com/developerworks/cn/linux/l-linux-slab-allocator/index.html


本文授權(quán)轉(zhuǎn)載自公眾號“后端技術(shù)指南針”,作者后端技術(shù)指南針

-END-




推薦閱讀



【01】10 大白帽黑客專用的 Linux 操作系統(tǒng)
【02】STM32好找工作,所以學(xué)linux終究是錯付了嗎?
【03】Linux內(nèi)核中I2C總線及設(shè)備長啥樣?這回終于搞清楚了!
【04】Linux如何調(diào)試內(nèi)存泄漏?超牛干貨奉獻(xiàn)給你(代碼全)
【05】嵌入式Linux驅(qū)動離不開的知識:深入解析Linux Platform_device


免責(zé)聲明:整理文章為傳播相關(guān)技術(shù),版權(quán)歸原作者所有,如有侵權(quán),請聯(lián)系刪除

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點(diǎn),不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

嵌入式ARM

掃描二維碼,關(guān)注更多精彩內(nèi)容

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉