色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

    文章

    19404

    瀏覽量

    230833
  • 操作系統
    +關注

    關注

    37

    文章

    6889

    瀏覽量

    123611
  • Linux系統
    +關注

    關注

    4

    文章

    595

    瀏覽量

    27472

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

文章出處:【微信號:良許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 ?9975次閱讀

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

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

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

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

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

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

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

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

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

    ,或叫線性地址空間)為 4G(2的32次方)。也就是說一個進程的最大地址空間為 4G。 操作系統
    的頭像 發表于 10-14 14:38 ?3639次閱讀
    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 ?3024次閱讀
    以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 ?1010次閱讀
    Linux<b class='flag-5'>系統</b>為什么需要引入虛擬<b class='flag-5'>地址</b>
    主站蜘蛛池模板: 国产麻豆AV伦 | 免费99精品国产自在现线 | 美女打开双腿扒开屁股男生 | FREE性丰满白嫩白嫩的HD | 757一本到午夜宫 | 日韩在线 无码 精品 | 污污内射久久一区二区欧美日韩 | 美女被打开了屁股进去的视频 | 国产99热在线观看 | 国产亚洲精品久久综合阿香 | 91久久综合精品国产丝袜长腿 | 琪琪伦伦影院理论片 | 亚洲AV无码一区二区三区牛牛 | 含羞草影院AE在线观看 | 含羞草国产亚洲精品岁国产精品 | 男女XX00上下抽搐动态图 | 99视频精品全部免费免费观 | 午夜在线观看免费完整直播网 | 国产成人在线视频观看 | 国产午夜亚洲精品不卡电影 | 亚洲国产免费观看视频 | 成人综合在线观看 | 无码爽死成人777在线观看网站 | 德国美女密密麻麻浓毛 | 免费视频网站嗯啊轻点 | 国产九色在线 | 蜜臀AV人妻久久无码精品麻豆 | 在线精彩视频在线观看免费 | 国产成人精品区在线观看 | 被室友C哭调教双性 | a在线免费观看视频 | 国产在线综合色视频 | 肉伦禁忌小说np | 两个吃奶一个添下面视频 | 日本VA在线视频播放 | 国产高清视频在线观看不卡v | 新影音先锋男人色资源网 | WWW污污污抽搐喷潮COM | 狠狠色在在线视频观看 | 国产在线观看成人免费视频 | 久久久久久天天夜夜天天 |