《Unix內(nèi)核源碼剖析》讀書筆記01-用戶模式與內(nèi)核模式
本文關(guān)鍵詞:Unix內(nèi)核源碼剖析,由筆耕文化傳播整理發(fā)布。
《Unix內(nèi)核源碼剖析》讀書筆記01-用戶模式與內(nèi)核模式
什么是進(jìn)程? 內(nèi)核采用進(jìn)程的概念對(duì)執(zhí)行中的程序進(jìn)行管理,一個(gè)進(jìn)程對(duì)應(yīng)一個(gè)執(zhí)行中的程序。進(jìn)程擁有唯一的進(jìn)程ID,所以一個(gè)程序被執(zhí)行多次,它們也是不同的進(jìn)程
為什么需要切換這兩種模式重點(diǎn)內(nèi)容? 用戶程序由用戶進(jìn)程處理,所以無法訪問加載內(nèi)核程序的內(nèi)存區(qū)域 ,所以需要切換到內(nèi)核模式執(zhí)行某些功能,這些功能執(zhí)行完后,處理器的模式又切換回用戶模式啦···
處理器的兩種模式是如何切換的? PSW
MMU來實(shí)現(xiàn)內(nèi)存映射的切換···【虛擬地址映射到用戶的內(nèi)存區(qū)域<—>內(nèi)核的區(qū)域】
關(guān)于MMU MMU(Memory Management Unit)用于地址變換以及訪問權(quán)限管理。早期的UNIX系統(tǒng)中,以長(zhǎng)度為8KB的段或者頁為單位,對(duì)進(jìn)程中需要的內(nèi)存進(jìn)行管理。試圖訪問不具有權(quán)限的內(nèi)存時(shí),MMU會(huì)引發(fā)一個(gè)陷入異常。MMU通過APR寄存器(頁寄存器)對(duì)各段進(jìn)行設(shè)定,并將虛擬地址轉(zhuǎn)換為物理地址。
用戶的空間和內(nèi)核的空間如何交換數(shù)據(jù)? 一些函數(shù):fubyte(),fuibyte(),fuword(),fuiword(),subyte(),suibyte(),suword()
suiword()
[code]fubyte() fuibyte() fuword() fuiword() subyte() suibyte() suword() suiword()交換空間?
進(jìn)程增多,內(nèi)核將定期處于休眠狀態(tài),重要度低的進(jìn)程會(huì)從內(nèi)存中移到交換空間(swap out),交換空間中的進(jìn)程到了可執(zhí)行狀態(tài)時(shí)當(dāng)然也會(huì)重新恢復(fù)到內(nèi)存中(swap in)
一些很重要的進(jìn)程也會(huì)被移除到交換空間嗎 進(jìn)程的狀態(tài)信息會(huì)由兩種結(jié)構(gòu)體實(shí)現(xiàn):
proc user
proc結(jié)構(gòu)體的實(shí)例不會(huì)被移出內(nèi)存。。
為什么proc 會(huì)受到優(yōu)待? 由其重要性決定!窘(jīng)常被訪問】
proc結(jié)構(gòu)體管理著進(jìn)程相關(guān)的信息中需要經(jīng)常被內(nèi)核訪問的那部分···
因?yàn)榻?jīng)常要被訪問,所以把它移出到交換空間是極不明智的。
【切換進(jìn)程時(shí),內(nèi)核會(huì)遍歷proc結(jié)構(gòu)體組成的數(shù)組,從中選擇下一個(gè)要執(zhí)行的進(jìn)程】
那user呢? user結(jié)構(gòu)體保存著進(jìn)程打開的文件和目錄等信息,所以內(nèi)存中保留當(dāng)前執(zhí)行程序的user就夠了。
PS:內(nèi)核可以通過全局變量u訪問執(zhí)行過程中的結(jié)構(gòu)體
[code].globl _u _u = 140000進(jìn)程在內(nèi)存中是怎樣存儲(chǔ)的?
代碼段和數(shù)據(jù)段作為兩個(gè)連續(xù)的物理內(nèi)存區(qū)域分配給進(jìn)程。進(jìn)程通過虛擬地址訪問被分配的物理內(nèi)存區(qū)域。
代碼段是只讀的,用來存放作為程序指令的機(jī)器代碼。某個(gè)程序在被同時(shí)執(zhí)行多次時(shí),各進(jìn)程共享同一個(gè)代碼段。代碼段通過數(shù)組text[]進(jìn)行管理。長(zhǎng)度有user.u_tsize表示。
內(nèi)核unix
猜你在找
本文關(guān)鍵詞:Unix內(nèi)核源碼剖析,,由筆耕文化傳播整理發(fā)布。
本文編號(hào):247035
本文鏈接:http://sikaile.net/wenshubaike/mishujinen/247035.html