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

為什么進程地址空間中包括操作系統?

系統 其他OS
我們看到的地址都是虛擬地址,物理內存與虛擬內存的映射關系維護在頁表中,當CPU執行機器指令時需要根據頁表將虛擬地址轉為物理內存地址,但這個過程對程序員來說是透明的,我們看不到這樣的一個轉換過程。

?大家好,我是小風哥,今天聊聊進程地址空間這點小事。

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

圖片

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

要想知道這個問題的答案,你需要知道操作系統到底是如何管理內存的。

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

我們看到的地址都是虛擬地址,物理內存與虛擬內存的映射關系維護在頁表中,當CPU執行機器指令時需要根據頁表將虛擬地址轉為物理內存地址,但這個過程對程序員來說是透明的,我們看不到這樣的一個轉換過程。

那么為什么內核要將自己映射到進程的地址空間呢?

我們知道CPU在執行指令時是有權限狀態的,x86處理器有4個權限狀態,操作系統一般使用其中兩個,這就是所謂的用戶態與內核態,我們寫的程序運行在用戶態,操作系統運行在內核態。

圖片

在一些場景下,像我們讀寫文件、收發網絡數據等都需要操作系統的幫助,也就是調用操作系統提供的服務,這個過程就是所謂的系統調用,關于系統調用我們在之前的文章中已經多次講解過了,在系統調用這個場景下就涉及從用戶態切換到內核態。

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

既然你知道我們的程序運行時需要頻繁的進行用戶態與內核態切換那么剩下的就簡單了。

圖片

如果內核與用戶態程序位于不同的地址空間,那么當用戶態與內核態進行切換時就勢必涉及頁表的切換——從用戶態進入內核態需要將用戶進程的頁表切換為內核頁表,而如果從內核態退出回到用戶態就涉及將內核頁表切換為用戶進程頁表,切換頁表對于計算機系統來說算是一個不小的開銷。

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

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

責任編輯:武曉燕 來源: 碼農的荒島求生
相關推薦

2009-12-14 18:27:21

Linux操作系統

2010-01-05 17:16:51

2012-09-21 14:35:01

2010-01-06 15:41:07

Linux操作系統

2012-06-08 09:16:16

操作系統

2010-04-14 13:59:45

Unix操作系統

2010-04-16 18:19:32

Unix操作系統

2022-06-26 00:24:57

C語言操作系統語言

2025-01-06 08:28:45

C語言操作系統程序

2019-08-06 10:05:03

Linux操作系統C語言

2010-04-09 17:25:13

Unix操作系統

2010-04-14 15:58:25

Unix操作系統

2010-04-19 09:08:20

Unix操作系統

2010-04-14 13:20:29

Unix操作系統

2010-04-19 16:47:40

Unix操作系統

2010-04-14 16:45:15

Unix操作系統

2010-04-30 17:27:59

Unix操作系統

2025-07-01 02:25:00

CPU內存系統

2020-12-17 18:30:44

華為鴻蒙智能手機操作系統

2018-12-19 12:03:02

操作系統WindowsLinux
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕在线一区 | 草草在线观看 | 免费在线一区二区 | 国产一区二区久久 | 欧美一区二区三区视频在线观看 | 欧美日韩三级 | 久久久精品视 | 性欧美精品一区二区三区在线播放 | 狠狠爱免费视频 | 国产精品久久久久免费 | 亚洲高清久久 | 久久久久久久一区二区 | 精品粉嫩超白一线天av | 国产精品日韩在线观看 | 免费久| 91在线观看免费 | a级黄色片视频 | 天天躁天天操 | 日韩在线观看中文字幕 | 成人国产午夜在线观看 | 日本午夜视频 | 在线观看亚洲专区 | 97国产一区二区 | 日本午夜在线视频 | 高清一区二区三区 | 成人欧美一区二区三区黑人孕妇 | 99精品欧美一区二区三区 | 日韩一区二区免费视频 | 日韩在线观看一区二区三区 | 午夜二区| 欧美一区二区三区在线播放 | 日韩国产中文字幕 | 精品入口麻豆88视频 | 天天拍天天操 | 91在线播 | 精品视频一区二区三区 | 久久影音先锋 | 正在播放国产精品 | 欧美寡妇偷汉性猛交 | 日日欧美 | 日韩欧美国产精品一区 |