中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

保定企業(yè)自助建站搜索關(guān)鍵詞優(yōu)化排名

保定企業(yè)自助建站,搜索關(guān)鍵詞優(yōu)化排名,wordpress付費(fèi)查看視頻,專業(yè)網(wǎng)站建設(shè)詳細(xì)方案目錄 前言: 地址空間回顧 驗(yàn)證:一個(gè)變量是否會(huì)有兩個(gè)值? 一. 什么是地址空間 虛擬地址與物理地址之間的關(guān)系 二. 地址空間是如何設(shè)計(jì)的 1. 回答一個(gè)變量兩個(gè)值 2.擴(kuò)展 繼續(xù)深入理解 三. 為什么要有地址空間 原因: 1. 使…

目錄

?前言:?地址空間回顧

?驗(yàn)證:一個(gè)變量是否會(huì)有兩個(gè)值?

一. 什么是地址空間

虛擬地址與物理地址之間的關(guān)系

二. 地址空間是如何設(shè)計(jì)的?

1. 回答一個(gè)變量兩個(gè)值

2.擴(kuò)展

繼續(xù)深入理解

三. 為什么要有地址空間

原因:

1. 使操作系統(tǒng)對(duì)訪問或者映射的合法性檢查,殺掉非法進(jìn)程,從而保護(hù)數(shù)據(jù)安全。?

2. ?使物理內(nèi)存分配與進(jìn)程管理,通過頁表進(jìn)行解耦,在加載時(shí)確定映射關(guān)系后,相互獨(dú)立

3. 保證每個(gè)進(jìn)程以統(tǒng)一的視角(有序的區(qū)域劃分)進(jìn)行管理,完成進(jìn)程獨(dú)立性的實(shí)現(xiàn)

頁表補(bǔ)充


?前言:?地址空間回顧

之前我們學(xué)習(xí)C是,對(duì)內(nèi)存分布的了解?

字符串常量在靜態(tài)常量區(qū)(靜態(tài)區(qū))?

那么這真的是內(nèi)存嗎?

答案是:不是

?那我們之前所了解的上圖又是什么? 那真正的內(nèi)存又是指什么?讓我們來解釋其中的奧秘

?驗(yàn)證:一個(gè)變量是否會(huì)有兩個(gè)值?

我們運(yùn)行下面的代碼

    #include <iostream>2 #include <unistd.h>3 using namespace std;4 5 int _gar = 100;6 int main()7 {8    pid_t pd = fork();9 10    if (pd == 0)11    {// 子進(jìn)程12      int cen = 0;13      while (1)14      {15        cout << "I am child ,Pid :" << getpid() << " PPid:" << getppi    d() << " _gar = " << _gar << "地址:" << &_gar << endl;16        sleep(1);17        cen++;18        if (cen == 5)19        {20          _gar = 200;                                                21          cout << "100 -> 200 seccoss -gar = " << _gar << "++++++++++    +++++++++++" << endl; 22        }23      }24    }25    else26    {27     // 父進(jìn)程28     while (1)29     {30        cout << "I am father ,Pid :" << getpid() << " PPid:" << getpp    id() << " _gar = " << _gar << "地址:" << &_gar << endl;31     sleep(1);32     }33    }34    35   return 0;36 }

根據(jù)我們實(shí)驗(yàn)出來的結(jié)果:

這其實(shí)是虛擬地址,也叫線性地址。

幾乎所有的語言,所說的“地址”指的并非物理地址,而是虛擬地址!!!!

這里對(duì)本文剛開始的內(nèi)存進(jìn)行解釋:

內(nèi)存可以分為主存儲(chǔ)器(主內(nèi)存)和輔助存儲(chǔ)器(如硬盤、固態(tài)硬盤等)。主內(nèi)存是計(jì)算機(jī)中直接與CPU交互的存儲(chǔ)器,用于存儲(chǔ)當(dāng)前正在執(zhí)行的程序和數(shù)據(jù)。輔助存儲(chǔ)器則用于長期存儲(chǔ)數(shù)據(jù),當(dāng)程序或數(shù)據(jù)不再需要時(shí),可以將其保存在輔助存儲(chǔ)器中。(來源:chatgpt)

一. 什么是地址空間

虛擬地址與物理地址之間的關(guān)系

任何數(shù)據(jù),都需要加載到內(nèi)存中,都有各自的物理地址。如果我們進(jìn)程A,B同時(shí)運(yùn)行,相互獨(dú)立,萬一出現(xiàn)錯(cuò)誤,將A將B中的數(shù)據(jù)讀取了,這是極不安全的,而如果在虛擬地址上先操作,再通過一定的機(jī)制,確保訪問的安全性。因此虛擬地址的存在,保護(hù)了物理地址上的數(shù)據(jù)安全。

地址空間的本質(zhì)是:一種內(nèi)核的數(shù)據(jù)結(jié)構(gòu),里面至少有各個(gè)區(qū)域的劃分。

二. 地址空間是如何設(shè)計(jì)的?

我們知道每個(gè)進(jìn)程都有自己的PCB,同時(shí)task_struct里面有進(jìn)程地址空間數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),也就是mm_struct。虛擬地址經(jīng)過頁表映射,指向物理地址。

?

?注意:每個(gè)進(jìn)程中,不只是地址空間,頁表也有自己私有一份。

?這樣我們只要保證每個(gè)進(jìn)程之間經(jīng)過頁表映射后的物理地址不同,即可保證進(jìn)程之間互不干涉。

1. 回答一個(gè)變量兩個(gè)值

解釋:

父進(jìn)程通過自己的task_struct中地址空間數(shù)據(jù)訪問到在物理空間上的數(shù)據(jù),子進(jìn)程則是共享父進(jìn)程的代碼,但當(dāng)子進(jìn)程想對(duì)數(shù)據(jù)進(jìn)行修改,為了保證進(jìn)程之間的獨(dú)立性,系統(tǒng)決定進(jìn)行寫時(shí)拷貝,為子進(jìn)程拷貝一份數(shù)據(jù),同時(shí)修改子進(jìn)程頁表映射數(shù)據(jù)。這樣就在表面上看就是相同變量,不同的值,但本質(zhì)上是相同的虛擬地址,不同的頁表,不同的物理地址,不同的值。

具體的就體現(xiàn)在id的兩次寫入:

2.擴(kuò)展

?結(jié)論:在可執(zhí)行程序,編譯時(shí)內(nèi)部就有地址了

?我們?cè)诜治龅刂房臻g時(shí),一直使用的是OS的視角,而不只是操作系統(tǒng)要遵守,編譯器也要遵守! 即在編譯器編譯代碼時(shí),就已經(jīng)在內(nèi)部形成了地址,而且有各個(gè)區(qū)域:代碼區(qū),數(shù)據(jù)區(qū)...并且采用與linux內(nèi)核一樣的編址方式,每一個(gè)變量,每一行代碼都有其虛擬地址。

繼續(xù)深入理解

? ? 我們知道執(zhí)行進(jìn)程是通過虛擬地址+頁表的方式來訪問物理地址的,那可執(zhí)行程序的虛擬地址和頁表的數(shù)據(jù)又是從那里來的呢?

流程分析?:

所以CPU在讀取到變量a時(shí),根據(jù)虛擬地址0x100在代碼段中尋找,在代碼段查詢頁表后,再跳轉(zhuǎn)0x169地址找到數(shù)據(jù)a,CPU獲取其內(nèi)部跳轉(zhuǎn)虛擬地址0x123,再從虛擬地址中尋找,通過頁表訪問到函數(shù)func。(物理內(nèi)存位置隨便加載)

三. 為什么要有地址空間

原因:

1. 使操作系統(tǒng)對(duì)訪問或者映射的合法性檢查,殺掉非法進(jìn)程,從而保護(hù)數(shù)據(jù)安全。?

例:假設(shè)char* man = "雞你太美";? *man = ‘寄’ , 我們?cè)贑語言期間就清楚字符常量無法修改,其原因來自底層頁表中會(huì)記錄代碼段地址,并且記錄其讀寫權(quán)限,操作系統(tǒng)檢測(cè)到非法操作后就會(huì)中斷結(jié)束進(jìn)程,保護(hù)數(shù)據(jù)。(在物理內(nèi)存我們是可以任意修改的,所以頁表上的判斷確保了操作的合法性,保護(hù)了數(shù)據(jù)的安全)

2. ?使物理內(nèi)存分配與進(jìn)程管理,通過頁表進(jìn)行解耦,在加載時(shí)確定映射關(guān)系后,相互獨(dú)立

問:是否可以提前加載未來的數(shù)據(jù)到物理內(nèi)存中呢?
答:可以

解析: 物理內(nèi)存的分配和進(jìn)程管理,之間可以說沒有關(guān)系。這種關(guān)系叫做解耦合,那什么是強(qiáng)耦合呢?就是之間關(guān)系緊密,不容易分開,例如:你把函數(shù)內(nèi)容寫在main函數(shù)里面。

?

我們?cè)趯W(xué)習(xí)C,C++時(shí),在語言層面上new,malloc等內(nèi)存分配上的操作都是在對(duì)虛擬地址上的操作。那疑問來了

問:在進(jìn)行虛擬地址分配的時(shí)候是否在物理內(nèi)存上分配資源

答:不會(huì),只在你訪問時(shí),才申請(qǐng)物理內(nèi)存空間,通過這延遲分配的策略,提高整機(jī)效率。(這個(gè)操作僅操作系統(tǒng)自動(dòng)完成,用戶,進(jìn)程0感知)

3. 保證每個(gè)進(jìn)程以統(tǒng)一的視角(有序的區(qū)域劃分)進(jìn)行管理,完成進(jìn)程獨(dú)立性的實(shí)現(xiàn)

頁表補(bǔ)充

以現(xiàn)在的視角看進(jìn)程,加載內(nèi)存就好像是創(chuàng)建進(jìn)程,那是否會(huì)加載全部的數(shù)據(jù)到內(nèi)存上呢?

我們?cè)谕嬗螒驎r(shí)有的游戲動(dòng)則40G,甚至是100G,我們的電腦是絕對(duì)裝不下的,因此內(nèi)存有一種內(nèi)存換下機(jī)制,一些數(shù)據(jù)在一定時(shí)間內(nèi)不再使用則被換下,加載新數(shù)據(jù),(說到這里要對(duì)頁表進(jìn)行補(bǔ)充,頁表不只映射物理內(nèi)存,也映射硬盤地址)再次使用被換下的數(shù)據(jù)直接查詢頁表,用磁盤地址快速訪問加載到內(nèi)存中。

結(jié)語

? ?本小節(jié)就到這里了,感謝小伙伴的瀏覽,如果有什么建議,歡迎在評(píng)論區(qū)評(píng)論,如果給小伙伴帶來一些收獲請(qǐng)留下你的小贊,你的點(diǎn)贊和關(guān)注將會(huì)成為博主創(chuàng)作的動(dòng)力。

http://www.risenshineclean.com/news/40907.html

相關(guān)文章:

  • 做網(wǎng)頁設(shè)計(jì)可以參考哪些網(wǎng)站長沙網(wǎng)站外包公司
  • 東莞網(wǎng)站排名優(yōu)化報(bào)價(jià)電腦培訓(xùn)學(xué)校課程
  • 相親網(wǎng)站怎么做企業(yè)線上培訓(xùn)平臺(tái)有哪些
  • 企業(yè)信息管理系統(tǒng)的發(fā)展歷程網(wǎng)站seo優(yōu)化方法
  • 網(wǎng)站建設(shè) 珠海營銷培訓(xùn)課程有哪些
  • 城關(guān)區(qū)建設(shè)局網(wǎng)站百度廣告費(fèi)一般多少錢
  • 手機(jī)網(wǎng)站開發(fā) pdf最新旅游熱點(diǎn)
  • 王妃貌美還狠兇搜索引擎優(yōu)化的作用
  • 家裝效果圖seo管理系統(tǒng)培訓(xùn)運(yùn)營
  • 網(wǎng)站制作和網(wǎng)頁制作區(qū)別上海百度推廣優(yōu)化排名
  • flash可以做網(wǎng)站seo優(yōu)化運(yùn)營
  • 柳市那些做網(wǎng)站的公司定制網(wǎng)站和模板建站
  • 做網(wǎng)站經(jīng)常加班還是app武漢seo優(yōu)化
  • 商業(yè)網(wǎng)站建設(shè)視頻教程關(guān)鍵詞排名優(yōu)化教程
  • 公司網(wǎng)站建設(shè)的系統(tǒng)功能需求分析安徽seo推廣
  • 和平區(qū)網(wǎng)站建設(shè)房地產(chǎn)估價(jià)師考試
  • 經(jīng)營性網(wǎng)站必須備案排名優(yōu)化關(guān)鍵詞
  • 這么做3d展示網(wǎng)站優(yōu)化網(wǎng)站排名的方法
  • 網(wǎng)站建設(shè)完整南寧白帽seo技術(shù)
  • 手工企業(yè)網(wǎng)站模板企業(yè)網(wǎng)站制作公司
  • 淮安哪里有做網(wǎng)站的北京網(wǎng)站seo技術(shù)廠家
  • 網(wǎng)站改版方案原則百度關(guān)鍵詞搜索量排名
  • 網(wǎng)站建設(shè)財(cái)務(wù)上怎么處理寧波seo推廣推薦
  • 網(wǎng)站怎么解析到域名推廣類軟文
  • 免費(fèi)word模板下載哪個(gè)網(wǎng)站網(wǎng)站建設(shè)方案書范文
  • wordpress 整站音樂看廣告收益的正規(guī)平臺(tái)
  • 貴溪市城鄉(xiāng)建設(shè)局網(wǎng)站推廣公眾號(hào)的9種方法
  • 網(wǎng)站建設(shè)和購買區(qū)別網(wǎng)絡(luò)推廣100種方法
  • 動(dòng)態(tài)網(wǎng)站建設(shè)的一般步驟免費(fèi)的h5制作網(wǎng)站
  • wordpress恢復(fù)源代碼willfast優(yōu)化工具下載