Linux內(nèi)核結(jié)構(gòu)與進程管理.ppt

Linux內(nèi)核結(jié)構(gòu)與進程管理.ppt

ID:48058383

大?。?34.50 KB

頁數(shù):12頁

時間:2020-01-13

Linux內(nèi)核結(jié)構(gòu)與進程管理.ppt_第1頁
Linux內(nèi)核結(jié)構(gòu)與進程管理.ppt_第2頁
Linux內(nèi)核結(jié)構(gòu)與進程管理.ppt_第3頁
Linux內(nèi)核結(jié)構(gòu)與進程管理.ppt_第4頁
Linux內(nèi)核結(jié)構(gòu)與進程管理.ppt_第5頁
資源描述:

《Linux內(nèi)核結(jié)構(gòu)與進程管理.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、Linux內(nèi)核結(jié)構(gòu)與進程管理Linux系統(tǒng)結(jié)構(gòu)Linuxkernel:開放源代碼的linux操作系統(tǒng)內(nèi)核,目前版本為2.6Linux內(nèi)核組成1.進程調(diào)度程序(SCHED)負責控制進程訪問CPU。保證進程能夠公平地訪問CPU,同時保證內(nèi)核可以準時執(zhí)行一些必需的硬件操作。2.內(nèi)核管理程序(MM)使多個進程可以安全地共享機器的主存系統(tǒng),并支持虛擬內(nèi)存。3.虛擬文件系統(tǒng)(VFS)。通過提供一個所有設(shè)備的公共文件接口,VFS抽象了不同硬件設(shè)備的細節(jié)。此外,VFS支持與其他操作系統(tǒng)兼容的不同的文件系統(tǒng)格式。4.網(wǎng)絡(luò)接口(NET)提供對許多建網(wǎng)標準和網(wǎng)絡(luò)硬件的訪問。

2、5.進程間通信(IPC)子系統(tǒng)為進程與進程之間的通信提供了一些機制。這些子系統(tǒng)雖然實現(xiàn)的功能相對獨立,但存在著較強的依賴性(調(diào)用依賴模塊中相應的函數(shù)),所以說linux內(nèi)核是單塊結(jié)構(gòu)(monolithic)的,而windows體系結(jié)構(gòu)是微內(nèi)核(microkernel)的。Linux啟動流程從BIOS到KERNELMBR->KERNEL->KERNEL自解壓->內(nèi)核初始化->內(nèi)核啟動(start_kernel函數(shù),在linux內(nèi)核源代碼樹的/usr/src/linux/init/main.c中)2.內(nèi)核啟動:創(chuàng)建1#進程并執(zhí)行,由它創(chuàng)建若干內(nèi)核線程(ke

3、rnelthread),然后裝入并執(zhí)行程序/sbin/init(變成一個用戶進程)。此后,init根據(jù)/etc/inittab配置文件來執(zhí)行相應的腳本進行系統(tǒng)初始化,如設(shè)置鍵盤、字體,裝載模塊,設(shè)置網(wǎng)絡(luò)等對于Redhat來說,執(zhí)行的順序為:/etc/rc.d/rc.sysinit????????????#由init執(zhí)行的第一個腳本/etc/rc.d/rc?$RUNLEVEL??????????#?$RUNLEVEL為缺省的運行模式/etc/rc.d/rc.local#運行模式2、3、5時會運行的腳本/sbin/mingetty(或getty)#等待用戶

4、登錄/etc/inittab中指定了系統(tǒng)的運行級別(RUNLEVEL),init根據(jù)運行級別啟動相關(guān)的服務(一些后臺進程),實現(xiàn)不同的功能。RUNLEVEL:0-60:halt,1:單用戶,2:多用戶,3:多用戶并啟動NFS服務4:保留,5:運行xdm(Xwindow)以圖形界面方式登錄6:rebootLinux中用戶登陸流程linux進程的四要素程序PCB地址空間系統(tǒng)堆??臻gPCB:進程創(chuàng)建時內(nèi)核為其分配的一個核心數(shù)據(jù)結(jié)構(gòu),進程自身不能直接存取。系統(tǒng)堆??臻g:進程運行在核心態(tài)時使用的堆棧,和PCB連在一起,共8KB,其中PCB約占1000字節(jié),系統(tǒng)堆

5、??臻g約占7200字節(jié)。2.2內(nèi)核中l(wèi)inux進程個數(shù)有最大值限制(4092)。但2.4以后,系統(tǒng)中的進程個數(shù)受限于系統(tǒng)的物理內(nèi)存數(shù),即限定所有進程的PCB及系統(tǒng)堆棧(8K)占用的空間≤1/2的物理內(nèi)存總和。例64M內(nèi)存:進程數(shù)≤64M/2/8K=4KPCB中的重要信息身份信息:pid,uid,gid,euid,egid等;狀態(tài)信息:running,interruptible,non-interruptible,stopped,zombie調(diào)度信息:policy,priority,rt_priorty,need_reschedpolicy即進程的類別,

6、分SCHED_FIFO,SCHED_RR,SCHED_OTHER三種,前兩種為實時進程,后一種為非實時進程IPC信息:如定義對某些信號的處理等家族信息:父進程、兄弟進程、子進程信息時鐘和定時信息文件系統(tǒng)存儲管理進程的創(chuàng)建進程創(chuàng)建:fork,clone,vfork父子進程共享資源的形式a.不共享(fork時缺?。゜.部分共享c.完全共享(線程)#include intmyvar=0; voidmain() { intpid; pid=fork();//systemcall if(pid<0){//erroroccurred printf

7、(“forkfailed.”); exit(-1);//systemcall } elseif(pid==0){//childprocess printf(“childprocessexecuting…”);myvar=1; } else{//parentprocess wait();//systemcall,waitforchildrencompletion printf(“childcomplete.”); myvar++;printf(“father,myvar=%d”,myvar);exit(0); } }fork實例進程調(diào)度調(diào)度時機a.

8、用戶進程自愿放棄CPU,如執(zhí)行sleep()系統(tǒng)調(diào)用;b.系統(tǒng)調(diào)用中,需要等待時,直接調(diào)用sc

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。