freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

linux下的內(nèi)存管理一-資料下載頁

2025-07-21 16:55本頁面
  

【正文】 119 pg_table=(unsigned long*)(0xfffff000amp。*dir); //計(jì)算頁表起始地址。 120 for(nr=0; nr include include void main(){ int =100; childpid=fork(); if(childpid==0){ printf(I39。m child! /n); printf(My father have adata,it39。s%d! /n,data); exit(0); } printf(I39。m father! I have achild%d/n,childpid); exit(0); } 創(chuàng)建一個(gè)進(jìn)程后,父進(jìn)程和子進(jìn)程使用同樣的代碼。但是他們中 childpid的值不同,如果是子進(jìn) 程, childpid 的值是 0;如果是父進(jìn)程, childpid 的值是子進(jìn)程的進(jìn)程號(hào)。在這以后,子進(jìn)程可能會(huì)使用父 進(jìn)程中的一些數(shù)據(jù)。如果子進(jìn)程不調(diào)用另一個(gè)可執(zhí)行文件作為其執(zhí)行代碼,子進(jìn)程將一直使用父進(jìn)程的 代碼。 Six: 共享空間 有了 386 對(duì)頁面共享的支持,共享空間的方法就很容易想到了。將被共享的空間的頁目錄表和頁表復(fù) 制一份,并且將所有頁表項(xiàng)的訪問屬性設(shè)為只讀,并修改頁面映射表中的頁面引用信息即可。具體算法 如下: 算法: copy_page_tables 輸入:共享源頁面起始地址 from 共享目的 空間頁面起始地址 to 被共享空間的大小 size 輸出:如果成功,返回 0 { if(from 或者 to不是以 4M 為邊界 ) 顯示出錯(cuò)信息,使調(diào)用對(duì)象進(jìn)入死循環(huán); for(共享源空間的每一個(gè)頁目錄項(xiàng) ){ if(對(duì)應(yīng)共享目的空間的頁表已經(jīng)存在 ) 顯示出錯(cuò)信息,死循環(huán); if(共享源空間的頁目錄項(xiàng)不存在 ) continue; 為對(duì)應(yīng)共享目的空間分配空閑頁作為頁表; 設(shè)置該空閑頁屬性 (可寫、用戶、有效 ) if(共享源空間本次復(fù)制的是前 4M的內(nèi)核空間 ) 本次共享空間只是前 640K; for(每個(gè)要共享空間的頁表項(xiàng) ){ 復(fù)制頁表項(xiàng); if(對(duì)應(yīng)頁不存在 ) continue; if(被共享頁在主內(nèi)存塊映射表映射范圍內(nèi) ){ 將兩個(gè)頁表項(xiàng)都置為只讀; 對(duì)應(yīng)頁面映射項(xiàng)內(nèi)容加 1; } else 只將復(fù)制的頁表項(xiàng)置為只讀; } } 刷新頁變換高速緩沖; } 對(duì)于帶有頁表復(fù)制,和帶有頁表的釋放一樣,必須保證被共享的空間和被共享到的空間起始地址是 以 4M 為邊界的;每次共享 4M的空間,像以前一樣,對(duì)于內(nèi)核空間必須作特殊處理。 640K 到 1M 的空 間本來是高速緩沖塊的空間,但是被顯存和 BIOS 占用了,所以這部分空間是不共享的;因?yàn)?linus 當(dāng)初 使用的計(jì)算機(jī)有 16M 的內(nèi)存,高速緩沖空間結(jié)束位置是 4M(見啟動(dòng)后內(nèi)存分配 ),所以可能是由于這個(gè) 原因, 1M 到 3,071K 這個(gè)空間也是不共享的,對(duì)高速緩沖共享是沒有意義的,這樣內(nèi)核的前 4M空間就 只共享 640K。如果被共享頁不在主內(nèi)存塊映射表范圍內(nèi),共享的就是這640K 的空間,是內(nèi)核使用的, 在共享時(shí),源頁表項(xiàng)不被置為只讀。 /mm/ 132 133 150 int copy_page_tables(unsigned long from,unsigned long to,long size) 151{ 152 unsigned long*from_page_table; 153 unsigned long*to_page_table; 154 unsigned long this_page; 155 unsigned long*from_dir,*to_dir; 156 unsigned long nr; 157 158 if((fromamp。0x3fffff)||(toamp。0x3fffff))//判斷是否以 4M 為邊界 159 panic(copy_page_tables called with wrong alignment); 160 from_dir=(unsigned long*)((from 20)amp。0xffc);計(jì) //算起始頁目錄項(xiàng) 161 to_dir=(unsigned long*)((to 20)amp。0xffc); 162 size=((unsigned)(size+0x3fffff))22; //計(jì)算要共享的頁表數(shù) 163 for(; size0; from_dir++,to_dir++){ 164 if(1amp。*to_dir)//被共享到的頁表已經(jīng)存在 165 panic(copy_page_tables: already exist); 166 if(! (1amp。*from_dir))//被共享的頁表不存在 167 continue; 168 from_page_table=(unsigned long*)(0xfffff000amp。*from_dir); //取源頁表地址 169 if(! (to_page_table=(unsigned long*)get_free_page())) 170 return1; 171*to_dir=((unsigned long)to_page_table)|7; //設(shè)置該頁屬性 (可寫、用戶、有效 ) 172 nr=(from==0)?0xA0: 1024; //如果是前 4M 空間,只共享 640K(160 頁 ) 173 for(; nr0; from_page_table++,to_page_table++){ 174 this_page=*from_page_table; 175 if(! (1amp。this_page))//如果當(dāng)前源頁表項(xiàng)沒有使用,則不用復(fù)制 176 continue; 177 this_pageamp。=~2; //將目的頁表項(xiàng)設(shè)為只讀 178*to_page_table=this_page; 179 if(this_page LOW_MEM){//如果被共享頁在主內(nèi)存塊映射表映射范圍內(nèi) 180*from_page_table=this_page; //源頁表項(xiàng)設(shè)為只讀 181 this_page=LOW_MEM; 182 this_page=12; 183 mem_map[this_page]++; //共享數(shù)加一 184} 185} 186} 187 invalidate(); //刷新頁變換高速緩沖。 188 return 0; 189} 190 MSN 空間完美搬家到新浪博客! 特別聲明: 1:資料來源于互聯(lián)網(wǎng),版權(quán)歸屬原作者 2:資料內(nèi)容屬于網(wǎng)絡(luò)意見,與本賬號(hào)立場(chǎng)無關(guān) 3:如有侵權(quán),請(qǐng)告知,立即刪除。
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1