国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Linux系統(tǒng)堆棧講解

運維 系統(tǒng)運維
Linux系統(tǒng)經(jīng)過長時間的發(fā)展,很多用戶都很了解Linux系統(tǒng)了,這里我發(fā)表一下Linux系統(tǒng)中共使用了四種堆棧個人理解,和大家討論討論。

Linux系統(tǒng)經(jīng)過長時間的發(fā)展,很多用戶都很了解Linux系統(tǒng)了,這里我發(fā)表一下Linux系統(tǒng)中共使用了四種堆棧個人理解,和大家討論討論。

一    系統(tǒng)引導(dǎo)初始化臨時使用的堆棧

二    進入保護模式后提供內(nèi)核程序始化使用的堆棧,該堆棧也是后來任務(wù)0使用的用戶態(tài)堆棧

三    每個任務(wù)通過系統(tǒng)調(diào)用,執(zhí)行內(nèi)核程序時使用的堆棧,稱之為任務(wù)的內(nèi)核態(tài)堆棧,每個任務(wù)都有自己獨立的內(nèi)核態(tài)堆棧

四    任務(wù)在用戶態(tài)執(zhí)行的堆棧,位于任務(wù)(進程 )邏輯地址空間近末端處
使用多個棧或在不同情況下使用不同棧的主要原因

(一)由于從實模式進入保護模式,使得CPU對內(nèi)存尋址訪問方式發(fā)生了變化,因此需要重新設(shè)置堆棧區(qū)域

(二) 為了解決不同CPU特權(quán)級共享使用堆棧帶來的保護問題,執(zhí)行0級的內(nèi)核代碼和執(zhí)行3級的用戶代碼需要使用不同的棧。當一個任務(wù)進入內(nèi)核態(tài)運行時,就會使用其TSS段中給出的特權(quán)級0的堆棧指針tss.ss0.tss.esp0,即內(nèi)核棧,原用戶棧指針會保存在內(nèi)核棧中,而當從內(nèi)核態(tài)返回用戶態(tài)時,就會恢復(fù)使用用戶態(tài)的堆棧
以下分別說明。

開機初始化時(bootsect.s,setup.s)
當bootsect代碼被ROM BIOS引導(dǎo)加載到物理內(nèi)存0x7c00處時,并沒有設(shè)置堆棧段,程序也沒有使用堆棧,直到bootsect被移動到0x9000:0處時,才把堆棧段寄存器SS設(shè)置為0x9000,堆棧指針esp寄存器設(shè)置為0xff00,所以堆棧堆棧在0x9000:0xff00處(boot/bootsect.s L61,62)setup.s也使用這個堆棧

進入保護模式時候(head.s,L31)
此時堆棧段被設(shè)置為內(nèi)核數(shù)據(jù)段(0x10),堆棧指針esp設(shè)置成指向user_stack數(shù)組(sched.c L67~72)的頂端,保留了1頁內(nèi)存作為堆棧使用

初始化時(main.c)
在執(zhí)行move_to_user_mode()代碼把控制權(quán)移交給任務(wù)0之前,系統(tǒng)一直使用上述堆棧,而在執(zhí)行過move_to_user_mode()之后,main.c的代碼被“切換”成任務(wù)0中執(zhí)行。通過執(zhí)行fork()系統(tǒng)調(diào)用,main.c中的init()將在任務(wù)1中執(zhí)行,并使用任務(wù)1的堆棧,而main()本身則在被“切換”成為任務(wù)0后,仍熱繼續(xù)使用上述內(nèi)核程序自己的堆棧作為任務(wù)0的用戶態(tài)堆棧。

任務(wù)的堆棧
每個任務(wù)都有兩個堆棧,分別用于用戶態(tài)和內(nèi)核態(tài)程序的執(zhí)行,并且分別稱為用戶態(tài)堆棧和內(nèi)核態(tài)堆棧。
除了處于不同CPU特權(quán)級中,這兩個堆棧之間的主要區(qū)別在于任務(wù)的內(nèi)核態(tài)堆棧很小,所保存的數(shù)據(jù)最多不能超過4096個字節(jié),而任務(wù)的用戶態(tài)堆棧卻可以在用戶的64MB空間中延伸

在用戶態(tài)運行時
每個任務(wù)(除了任務(wù)0和任務(wù)1)有自己的64MB地址空間,當一個任務(wù)(進程)剛被創(chuàng)建時,它的用戶態(tài)堆棧指針被設(shè)置在其地址空間的靠近末端部分,應(yīng)用程序在用戶態(tài)下運行時就一直使用這個堆棧,實際物理地址內(nèi)存則由CPU分頁機制確定。

在內(nèi)核態(tài)運行時
每個任務(wù)有其自己的內(nèi)核態(tài)堆棧,用于任務(wù)在內(nèi)核代碼中執(zhí)行期間。其所在的線性地址中位置由該任務(wù)TSS段中ss0和esp0兩個字段指定,任務(wù)內(nèi)核態(tài)堆棧被設(shè)置在位于其任務(wù)數(shù)據(jù)結(jié)構(gòu)所在頁面的末端,即于任務(wù)的任務(wù)數(shù)據(jù)結(jié)構(gòu)(task_struct)放在同一頁面中,參見kernel/fork.c L93
p->tss.esp0 = PAGE_SIZE + (long)p;
p->tss.ss0 = 0x10

*為什么從主存區(qū)申請得來的用于保存任務(wù)數(shù)據(jù)結(jié)構(gòu)的一頁內(nèi)存也能被設(shè)置成內(nèi)核數(shù)據(jù)段中的數(shù)據(jù)呢?就是說tss.ss0為什么可以是0x10?
   
用戶內(nèi)核態(tài)仍然屬于內(nèi)核數(shù)據(jù)空間,在head.s中設(shè)置內(nèi)核代碼段和數(shù)據(jù)段的描述符,段長度都設(shè)置成了16MB,這個長度值是Linux0.11內(nèi)核所能支持的最大物理內(nèi)存長度(head.s,110開始的注釋),所以,內(nèi)核代碼可以尋址到整個物理內(nèi)存范圍中的任何位置,當然也包括主存區(qū),每當任務(wù)執(zhí)行內(nèi)核程序而需要使用其內(nèi)核棧時,CPU就會利用TSS結(jié)構(gòu)把它的內(nèi)核態(tài)堆棧設(shè)置成由tss.ss0和tss.esp0這兩個值構(gòu)成

任務(wù)0(空閑進程idle)和任務(wù)1(初始化進程init)的堆棧

任務(wù)0和任務(wù)1的代碼段和數(shù)據(jù)段相同,限長都是640KB,但它們被映射到不同的線性地址空間,任務(wù)0的段基址從線性地址0開始,而任務(wù)1的段基址從64MB開始,但他們?nèi)坑成涞轿锢淼刂?~640KB范圍中,這個地址也就是內(nèi)核代碼和基本數(shù)據(jù)所存放的地方,在執(zhí)行了move_to_user_mode()后,任務(wù)0和任務(wù)1的內(nèi)核態(tài)堆棧分別位于各自任務(wù)數(shù)據(jù)結(jié)構(gòu)所在頁面的末端,而任務(wù)0的用戶態(tài)堆棧就是前面進入保護模式后使用的堆棧,即user_stack[]數(shù)組的位置,由于任務(wù)1在創(chuàng)建時復(fù)制了任務(wù)0的用戶堆棧,所以剛開始時任務(wù)0和任務(wù)1共享使用同一個用戶堆棧空間,但是當任務(wù)1開始運行時,寫時復(fù)制機制會為任務(wù)1另行分配主存區(qū)頁面作為堆棧空間使用,只有到這個時候,任務(wù)1才開始使用自己獨立的用戶堆棧內(nèi)存頁面,因此任務(wù)0的堆棧需要在任務(wù)1實際開始使用之前保持干凈,即任務(wù)0此時不能使用堆棧,以確保復(fù)制的堆棧頁面中不含任務(wù)0的數(shù)據(jù)

這樣你就學(xué)會Linux系統(tǒng)中使用了四種堆棧知識了。

【編輯推薦】

  1. 設(shè)置Linux刪除自動備份節(jié)省系統(tǒng)空間
  2. Linux操作系統(tǒng)配置和使用Samba完成共享目錄
  3. 拋棄Linux操作系統(tǒng)選擇微軟?
  4. 解決Linux網(wǎng)銀更好網(wǎng)上購物
  5. 商業(yè)帝國的"云計算"Linux操作系統(tǒng)
責(zé)任編輯:小霞 來源: cnitblog.com
相關(guān)推薦

2009-10-27 09:26:26

linux系統(tǒng)監(jiān)控命令

2010-01-12 17:59:05

2009-12-18 09:48:26

Linux中應(yīng)用

2010-03-16 17:53:23

2009-12-16 11:01:31

Linux Fedor

2011-03-17 16:16:50

2009-12-22 14:08:38

2009-12-22 11:30:38

Linux操作系統(tǒng)

2010-01-06 17:45:47

Linux操作系統(tǒng)

2010-04-08 10:04:59

free命令Linux系統(tǒng)內(nèi)存監(jiān)控

2009-12-15 18:27:51

Linux操作系統(tǒng)

2009-12-16 13:11:13

Fedora操作系統(tǒng)

2009-10-28 13:29:14

Linux文件系統(tǒng)安裝

2010-03-18 16:51:32

2009-12-17 15:01:21

Linux系統(tǒng)多用戶

2009-10-28 17:23:19

linux配置MySQ

2009-10-22 12:09:57

linux文件系統(tǒng)

2009-12-21 14:48:20

2009-12-22 13:26:03

Linux sysfs

2009-12-10 13:35:25

Linux操作系統(tǒng)
點贊
收藏

51CTO技術(shù)棧公眾號

亚洲欧美日韩爽爽影院| 香蕉97视频观看在线观看| 欧美性受xxxx黑人xyx性爽| 欧美亚洲高清| 黄页网址大全在线观看| 秋霞成人午夜鲁丝一区二区三区| 亚洲免费三区一区二区| 欧美视频亚洲视频| 在线中文字幕观看| 亚洲2020天天堂在线观看| 国产精品普通话对白| 理论片鲁丝二区爱情网| 91黄色8090| 国产精品99久久久久久宅男| 涩涩av在线| 丁香视频免费观看| 色哟哟免费网站| 91手机视频在线观看| 日韩中文字幕在线视频| 精品网站999www| 国产精品女同互慰在线看| 国产一区亚洲| 亚洲毛片免费看| 日韩欧美网站| 激情综合五月婷婷| 视频一区免费在线观看| 精品久久久久久久久久岛国gif| 成人永久在线| 午夜日韩成人影院| av中文字幕在线观看| 尤物国产在线观看| 日韩高清国产一区在线观看| 欧美日本精品在线| 亚洲免费中文字幕| 99久久精品国产精品久久| 成人综合久久| sm捆绑调教国产免费网站在线观看| 三区在线视频| 最新黄网在线观看| 国产原厂视频在线观看| 亚洲国产精华液| 在线理论视频| 日本小视频在线免费观看| 女海盗2成人h版中文字幕| 国产精品黄色片| 欧美三级三级| 激情欧美亚洲| 中文字幕日韩一区二区不卡| 精品999日本| 欧美精品一区二区三区中文字幕| 中文在线8资源库| av片哪里在线观看| 99青草视频在线播放视| 天堂在线第六区| 在线观看国产福利视频| 天堂在线第六区| 免费欧美一级视频| 精品一区国产| 粉嫩av免费一区二区三区| 91日韩久久| 国产精品自拍首页| av成人午夜| 国产精品欧美一区二区三区奶水| 99理论电影网| 欧美日韩激情四射| 污网站免费在线| 2024最新电影免费在线观看 | 亚洲精品中文字幕女同| 欧美日韩综合一区| 色婷婷国产精品| 国产99久久久国产精品潘金| 精品三级av| 免费在线观看的av网站| 日韩少妇内射免费播放18禁裸乳| 免费女人黄页| 91在线超碰| 色综合天天色| 亚洲一区日韩| 一区二区日韩免费看| 久久久水蜜桃av免费网站| 老牛国产精品一区的观看方式| 国产成人在线视频网站| 中文字幕佐山爱一区二区免费| 亚洲国产日产av| 91视频精品在这里| 欧美一级国产精品| 日本一区二区精品视频| 国产福利在线| 日韩精品五月天| 日韩在线小视频| 国产原创popny丨九色| 伊人影院蕉久影院在线播放| 成人在线免费观看91| 伊人色综合久久天天| 欧美成人全部免费| 99热都是精品| 成人毛片高清视频观看| 成人午夜在线观看视频| 都市激情亚洲一区| 中文字幕一区二区av| 国产精品成人在线观看| 久久精品精品电影网| 国产奶头好大揉着好爽视频| 天堂av在线免费观看| 国偷自产av一区二区三区| 狠狠色综合日日| 精品动漫一区二区三区在线观看| 麻豆传媒一区| 污污的网站在线看| 国产精品普通话对白| 国产精品久久一级| 亚洲天堂第一页| 国产日本一区二区三区| 1024手机看片国产| 嗯用力啊快一点好舒服小柔久久| 国产成人在线色| 日韩免费看网站| 色涩成人影视在线播放| h网站在线免费观看| 欧美喷水视频| 欧美片网站yy| 免费看日b视频| 国产视频一区二| 99精品国产91久久久久久 | 粉嫩13p一区二区三区| 欧美喷水一区二区| 久久精品日韩精品| 在线播放麻豆| 裸体一区二区| 日韩视频不卡中文| 日韩一本精品| av在线网页| 国产成人精品亚洲777人妖| 在线观看免费高清视频97| 亚洲一卡二卡三卡| 欧美黑人疯狂性受xxxxx野外| 亚洲无毛电影| 欧美一区二区久久久| 不卡av在线网站| 日本一卡二卡四卡精品 | 久久性天堂网| 欧美一区二区三区电影| 麻豆成人在线播放| 在线中文免费视频| 91在线视频观看| 国产日韩在线看| av免费在线观| 国产婷婷色一区二区三区| 国产精品美乳一区二区免费| 在线观看av中文| 免费中文字幕日韩欧美| 久久国产一区二区三区| av在线免费网站| 欧美日韩激情网| 国产毛片久久久久久国产毛片| 暖暖成人免费视频| 一区二区三区在线不卡| 精品久久久三级| 国产毛片久久久| 欧美美女一区二区在线观看| 男人的天堂成人| 欧美激情欧美| 亚洲色图狂野欧美| 你懂的好爽在线观看| 国产日韩v精品一区二区| 一区二区三区三区在线| 精品久久精品| 亚洲性视频网站| av福利在线播放| 中文字幕精品一区| 欧美日韩一区在线视频| 成人午夜网址| 日韩精品丝袜在线| 欧美日韩国产综合视频| 好吊成人免视频| 理论在线观看| 一本色道**综合亚洲精品蜜桃冫 | 国语自产精品视频在线看抢先版图片| 日本黄大片一区二区三区| 噜噜噜狠狠夜夜躁精品仙踪林| 亚洲欧美综合网| 成人激情av| 欧美日韩黄网站| 精品国产百合女同互慰| 羞羞网www| 久久久亚洲精品石原莉奈| 国产资源第一页| 欧美日韩成人| 成人在线观看视频网站| 精品成人免费一区二区在线播放| 疯狂蹂躏欧美一区二区精品| 在线观看免费91| 天天综合国产| 久久视频中文字幕| 亚洲一区二区三区久久久| 一区二区三区不卡视频| 一本色道久久99精品综合| 激情久久99| 亚洲成人免费视| 日本在线观看不卡|