成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

為什么進(jìn)程地址空間中包括操作系統(tǒng)?

系統(tǒng) 其他OS
我們看到的地址都是虛擬地址,物理內(nèi)存與虛擬內(nèi)存的映射關(guān)系維護(hù)在頁表中,當(dāng)CPU執(zhí)行機(jī)器指令時(shí)需要根據(jù)頁表將虛擬地址轉(zhuǎn)為物理內(nèi)存地址,但這個(gè)過程對程序員來說是透明的,我們看不到這樣的一個(gè)轉(zhuǎn)換過程。

?大家好,我是小風(fēng)哥,今天聊聊進(jìn)程地址空間這點(diǎn)小事。

說到進(jìn)程的地址空間,大家可能都知道這樣一張圖:

圖片

這張圖就是Linux程序運(yùn)行起來后所謂的進(jìn)程地址空間,這里包括我們熟悉的代碼區(qū)、數(shù)據(jù)區(qū)、以及堆區(qū)和棧區(qū),今天我們不講解這些區(qū)域,而是重點(diǎn)關(guān)注這個(gè)地址空間中最上面的一塊區(qū)域——內(nèi)核,這里的問題是:為什么進(jìn)程地址空間中要包括操作系統(tǒng)(內(nèi)核)呢?

要想知道這個(gè)問題的答案,你需要知道操作系統(tǒng)到底是如何管理內(nèi)存的。

現(xiàn)代操作系統(tǒng)大都利用虛擬內(nèi)存系統(tǒng)來管理內(nèi)存,我們看的上圖,這一段連續(xù)的內(nèi)存區(qū)域其實(shí)只是一個(gè)假象,物理內(nèi)存中并不一定真的存在這樣一個(gè)內(nèi)存布局,利用虛擬內(nèi)存系統(tǒng)將一些非連續(xù)的內(nèi)存塊(頁)映射到一段連續(xù)的地址空間——也就是我們看到的上圖,這就是所謂的虛擬內(nèi)存。

我們看到的地址都是虛擬地址,物理內(nèi)存與虛擬內(nèi)存的映射關(guān)系維護(hù)在頁表中,當(dāng)CPU執(zhí)行機(jī)器指令時(shí)需要根據(jù)頁表將虛擬地址轉(zhuǎn)為物理內(nèi)存地址,但這個(gè)過程對程序員來說是透明的,我們看不到這樣的一個(gè)轉(zhuǎn)換過程。

那么為什么內(nèi)核要將自己映射到進(jìn)程的地址空間呢?

我們知道CPU在執(zhí)行指令時(shí)是有權(quán)限狀態(tài)的,x86處理器有4個(gè)權(quán)限狀態(tài),操作系統(tǒng)一般使用其中兩個(gè),這就是所謂的用戶態(tài)與內(nèi)核態(tài),我們寫的程序運(yùn)行在用戶態(tài),操作系統(tǒng)運(yùn)行在內(nèi)核態(tài)。

圖片

在一些場景下,像我們讀寫文件、收發(fā)網(wǎng)絡(luò)數(shù)據(jù)等都需要操作系統(tǒng)的幫助,也就是調(diào)用操作系統(tǒng)提供的服務(wù),這個(gè)過程就是所謂的系統(tǒng)調(diào)用,關(guān)于系統(tǒng)調(diào)用我們在之前的文章中已經(jīng)多次講解過了,在系統(tǒng)調(diào)用這個(gè)場景下就涉及從用戶態(tài)切換到內(nèi)核態(tài)。

此外還有其它場景涉及用戶態(tài)與內(nèi)核態(tài)的切換,像中斷處理以及異常處理等。

既然你知道我們的程序運(yùn)行時(shí)需要頻繁的進(jìn)行用戶態(tài)與內(nèi)核態(tài)切換那么剩下的就簡單了。

圖片

如果內(nèi)核與用戶態(tài)程序位于不同的地址空間,那么當(dāng)用戶態(tài)與內(nèi)核態(tài)進(jìn)行切換時(shí)就勢必涉及頁表的切換——從用戶態(tài)進(jìn)入內(nèi)核態(tài)需要將用戶進(jìn)程的頁表切換為內(nèi)核頁表,而如果從內(nèi)核態(tài)退出回到用戶態(tài)就涉及將內(nèi)核頁表切換為用戶進(jìn)程頁表,切換頁表對于計(jì)算機(jī)系統(tǒng)來說算是一個(gè)不小的開銷。

而如果內(nèi)核與用戶態(tài)程序位于同一個(gè)地址空間中,那么上述頁表切換的開銷就可以避免了,這就是為什么內(nèi)核要將自己映射到進(jìn)程地址空間的重要原因。

好啦,這篇就到這里,希望對大家理解進(jìn)程地址空間有所幫助。?

責(zé)任編輯:武曉燕 來源: 碼農(nóng)的荒島求生
相關(guān)推薦

2012-09-21 14:35:01

2009-12-14 18:27:21

Linux操作系統(tǒng)

2010-01-05 17:16:51

2010-01-06 15:41:07

Linux操作系統(tǒng)

2012-06-08 09:16:16

操作系統(tǒng)

2010-04-14 13:59:45

Unix操作系統(tǒng)

2010-04-16 18:19:32

Unix操作系統(tǒng)

2022-06-26 00:24:57

C語言操作系統(tǒng)語言

2025-01-06 08:28:45

C語言操作系統(tǒng)程序

2019-08-06 10:05:03

Linux操作系統(tǒng)C語言

2010-04-09 17:25:13

Unix操作系統(tǒng)

2010-04-14 15:58:25

Unix操作系統(tǒng)

2010-04-19 09:08:20

Unix操作系統(tǒng)

2010-04-19 16:47:40

Unix操作系統(tǒng)

2010-04-14 13:20:29

Unix操作系統(tǒng)

2010-04-14 16:45:15

Unix操作系統(tǒng)

2010-04-30 17:27:59

Unix操作系統(tǒng)

2020-12-17 18:30:44

華為鴻蒙智能手機(jī)操作系統(tǒng)

2022-01-17 11:53:39

操作系統(tǒng)計(jì)算機(jī)來

2018-12-19 12:03:02

操作系統(tǒng)WindowsLinux
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 精品久久久久久亚洲综合网站 | 精品国产一二三区 | 精品视频一区二区三区在线观看 | 精品美女久久久 | 精品久久久久久久久久久久久久 | 欧美日韩中 | 一区二区高清不卡 | 精品一区二区免费视频 | 成人网址在线观看 | 桃花av在线| 91中文在线观看 | 欧美日产国产成人免费图片 | 男女那个视频 | 黄色亚洲网站 | 精品亚洲视频在线 | 一级a爱片久久毛片 | 天天射天天干 | 亚洲国产精品99久久久久久久久 | 国产视频久久久 | 久久88| 在线日韩中文字幕 | 亚洲91 | 91视频在线看 | 国产精品久久久久久久免费观看 | 成人三级av | 丁香综合 | 亚洲精品白浆高清久久久久久 | 亚洲国产乱码 | 欧美色图另类 | 国产成人精品免费视频 | 国产色网 | 日韩精品av一区二区三区 | 日韩视频中文字幕 | 精品日韩一区二区三区 | 欧美色综合天天久久综合精品 | 91亚洲欧美 | 在线欧美亚洲 | 久久久精品天堂 | 欧美日韩久久 | 成人美女免费网站视频 | www.日日干 |