在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

為什么進程地址空間中要包括操作系統(內核)呢?

dyquk4xk2p3d ? 來源:碼農的荒島求生 ? 2023-04-18 09:09 ? 次閱讀

今天聊聊進程地址空間這點小事。

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

2b7bd68c-dd79-11ed-bfe3-dac502259ad0.png

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

為什么進程地址空間中要包括操作系統(內核)呢?要想知道這個問題的答案,你需要知道操作系統到底是如何管理內存的。

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

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

那么為什么內核要將自己映射到進程的地址空間呢? 我們知道CPU在執行指令時是有權限狀態的,x86處理器有4個權限狀態,操作系統一般使用其中兩個,這就是所謂的用戶態與內核態,我們寫的程序運行在用戶態,操作系統運行在內核態。

2b875dd6-dd79-11ed-bfe3-dac502259ad0.png

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

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

2b93e6f0-dd79-11ed-bfe3-dac502259ad0.png

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

而如果內核與用戶態程序位于同一個地址空間中,那么上述頁表切換的開銷就可以避免了,這就是為什么內核要將自己映射到進程地址空間的重要原因。 好啦,這篇就到這里,希望對大家理解進程地址空間有所幫助。






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19736

    瀏覽量

    232769
  • 操作系統
    +關注

    關注

    37

    文章

    7022

    瀏覽量

    124678
  • Linux系統
    +關注

    關注

    4

    文章

    601

    瀏覽量

    28152

原文標題:為什么進程地址空間中包括操作系統?

文章出處:【微信號:良許Linux,微信公眾號:良許Linux】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    linux操作系統下的進程通信設計

    信號量值大于0,進程被喚醒,轉入步驟(1)。(4) 當進程不再使用一個信號量控制的資源時,信號量值加1。如果此時有進程正在睡眠等待此信號量,則喚醒此進程。維護信號量狀態的是Linux
    發表于 04-16 09:17

    什么是QNX操作系統

    網絡通信和中斷處理,其進程在獨立的地址空間中運行。所有其他操作系統服務都實現為協作的用戶進程,因此QNX
    發表于 06-07 14:16

    開發必讀,操作系統進程和線程

    模式中用戶的線程對操作系統不可見。優點:用戶線程開幾個都沒問題,且上下文切換發生用戶空間,切換的效率較高;缺點:一個用戶線程如果阻塞了,則整個進程都將會阻塞,另外在多核 CPU中,是
    發表于 06-18 09:35

    開發必讀,操作系統進程和線程

    模式中用戶的線程對操作系統不可見。優點:用戶線程開幾個都沒問題,且上下文切換發生用戶空間,切換的效率較高;缺點:一個用戶線程如果阻塞了,則整個進程都將會阻塞,另外在多核 CPU中,是
    發表于 07-01 06:30

    操作系統為什么分內核態和用戶態?這兩者如何切換?

    操作系統為什么分內核態和用戶態,這兩者如何切換?進程地址空間會劃分為哪些區域?堆和棧有什么區別?
    發表于 07-23 09:01

    為何將Linux操作系統劃分為用戶和內核

    :使用Linux操作系統提供的功能2、Linux操作系統的組成:用戶和內核空間——為何將Linux操作系統劃分為用戶和
    發表于 12-15 08:35

    有關Linux系統的PBC (進程控制塊)基礎知識介紹

    ,比如打開的文件,掛起的信號,處理器狀態,內核數據結構,內存映射地址空間等。在操作系統中,內核的調度對象時線程,而不是
    發表于 06-23 16:27

    什么是操作系統內核

    什么是操作系統內核 操作系統內核是指大多數操作系統的核心部分。它由操作系統中用于管理存儲器、文
    發表于 06-17 07:23 ?1w次閱讀

    為什么選擇微內核操作系統

    例如原來在宏內核操作系統中,用戶應用程序是通過系統調用,陷入到內核中,然后再讀取、訪問文件。而在微內核操作系統中,則是用戶應用程序通過發送I
    的頭像 發表于 06-03 14:35 ?4315次閱讀

    深入淺出Linux的進程地址空間

    我們知道,在32位機器上linux操作系統中的進程地址空間大小是4G,其中0-3G是用戶空間,3G-4G是
    的頭像 發表于 06-20 09:57 ?2073次閱讀

    高性能混合微內核操作系統RT-Thread Smart達到業界領先的技術水準

    通常來講操作系統分為宏內核和微內核兩種不同的架構,如下圖所示,操作系統中分為了用戶域和核心域兩個地址空間
    的頭像 發表于 09-11 15:33 ?3105次閱讀
    高性能混合微<b class='flag-5'>內核操作系統</b>RT-Thread Smart達到業界領先的技術水準

    淺談鴻蒙操作系統的微內核

    獲取用戶所有權限的做法,在安全性上大大提升。 什么是微內核? 微內核結構由一個非常簡單的硬件抽象層和一組比較關鍵的原語或系統調用組成;這些原語,僅僅
    的頭像 發表于 10-13 12:36 ?6417次閱讀

    Linux系統為什么需要區分內核空間與用戶空間?

    ,或叫線性地址空間)為 4G(2的32次方)。也就是說一個進程的最大地址空間為 4G。 操作系統
    的頭像 發表于 10-14 14:38 ?3757次閱讀
    Linux<b class='flag-5'>系統</b>為什么需要區分<b class='flag-5'>內核</b><b class='flag-5'>空間</b>與用戶<b class='flag-5'>空間</b>?

    以32位系統為例介紹內核空間和用戶空間

    4G(2的32次方)。也就是說一個進程的最大地址空間為 4G。 操作系統的核心是內核(kernel),它獨立于普通的應用程序,可以訪問受保
    的頭像 發表于 11-12 17:41 ?3137次閱讀
    以32位<b class='flag-5'>系統</b>為例介紹<b class='flag-5'>內核</b><b class='flag-5'>空間</b>和用戶<b class='flag-5'>空間</b>

    Linux系統為什么需要引入虛擬地址

    在 Linux 系統中,采用了虛擬內存管理技術,事實上大多數現在操作系統都是如此!在 Linux 系統中,每一個進程都在自己獨立的地址
    的頭像 發表于 10-07 17:28 ?1148次閱讀
    Linux<b class='flag-5'>系統</b>為什么需要引入虛擬<b class='flag-5'>地址</b>
    主站蜘蛛池模板: 手机免费看大片 | 亚洲码在线 | 欧美18videosex性欧美69 | 亚洲国产综合人成综合网站00 | 成 人 免 费 黄 色 | 香蕉视频色版在线观看 | 亚洲高清在线视频 | 国模吧一区二区三区精品视频 | 巨骚综合网 | 伊人www| 99在线国产视频 | 97久久精品国产精品青草 | 在线亚洲成人 | 天堂8在线天堂bt | 色婷婷精品大全在线视频 | 欧美伊人久久大香线蕉综合69 | 色香蕉在线 | 欧美美女福利视频 | 四虎4hu影库永久地址 | 好紧好爽太大了h视频 | xxxx日本老师hd | 久久水蜜桃网 | 在线中文天堂 | 97伊人网| 视频二区中文字幕 | 美女扒开尿口给男人桶爽视频 | 天堂中文资源在线地址 | 男男生子大肚play做到生 | 美女扒开尿口给男人桶爽视频 | 色人阁综合| videosgratis欧美另类老太 | 激情五月五月婷婷 | 特黄视频| 亚洲欧洲色天使日韩精品 | 欧美性另类 | 久久精品视频免费播放 | 国产免费一级高清淫日本片 | 午夜看一级特黄a大片黑 | 日本一区二区不卡视频 | 怡红院黄色 | 欧美精品1|