Linux內核結構與進程管理二_第1頁
Linux內核結構與進程管理二_第2頁
Linux內核結構與進程管理二_第3頁
Linux內核結構與進程管理二_第4頁
Linux內核結構與進程管理二_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Linux內核結構與進程管理二Linux 內核結構與進程管理nLinux系統(tǒng)結構Linux kernel: 開放源代碼的linux操作系統(tǒng)內核,目前版本為2.6Linux內核組成1. 進程調度程序( S C H E D)負責控制進程訪問C P U。保證進程能夠公平地訪問C P U,同時保證內核可以準時執(zhí)行一些必需的硬件操作。2. 內核管理程序( M M)使多個進程可以安全地共享機器的主存系統(tǒng),并支持虛擬內存。3. 虛擬文件系統(tǒng)( V F S)。通過提供一個所有設備的公共文件接口, V F S抽象了不同硬件設備的細節(jié)。此外, V F S支持與其他操作系統(tǒng)兼容的不同的文件系統(tǒng)格式。4. 網(wǎng)絡接口(

2、 N E T)提供對許多建網(wǎng)標準和網(wǎng)絡硬件的訪問。5. 進程間通信( I P C)子系統(tǒng)為進程與進程之間的通信提供了一些機制。 這些子系統(tǒng)雖然實現(xiàn)的功能相對獨立,但存在著較強的依賴性(調用依賴模塊中相應的函數(shù)),所以說這些子系統(tǒng)雖然實現(xiàn)的功能相對獨立,但存在著較強的依賴性(調用依賴模塊中相應的函數(shù)),所以說linuxlinux內核是單塊結構內核是單塊結構(monolithicmonolithic)的,而)的,而windowswindows體系結構是微內核體系結構是微內核(microkernel)(microkernel)的。的。 Linux啟動流程從BIOS到KERNEL MBRKERNELK

3、ERNEL自解壓內核初始化內核啟動(start_kernel函數(shù),在linux內核源代碼樹的/usr/src/linux/init/main.c中) 2. 內核啟動:創(chuàng)建1進程并執(zhí)行,由它創(chuàng)建若干內核線程(kernel thread),然后裝入并執(zhí)行程序/sbin/init(變成一個用戶進程)。此后,init根據(jù)/etc/inittab配置文件來執(zhí)行相應的腳本進行系統(tǒng)初始化,如設置鍵盤、字體,裝載模塊,設置網(wǎng)絡等 對于Redhat來說,執(zhí)行的順序為: /etc/rc.d/rc.sysinit # 由init執(zhí)行的第一個腳本 /etc/rc.d/rc $RUNLEVEL # $RUNLEVEL為

4、缺省的運行模式 /etc/rc.d/rc.local #運行模式2、3、5時會運行的腳本/sbin/mingetty(或getty) # 等待用戶登錄 /etc/inittab中指定了系統(tǒng)的運行級別(RUNLEVEL),init根據(jù)運行級別啟動相關的服務(一些后臺進程),實現(xiàn)不同的功能。 RUNLEVEL:06 0:halt, 1:單用戶,2:多用戶,3:多用戶并啟動NFS服務 4:保留,5:運行xdm(X window)以圖形界面方式登錄1. 6:reboot Linux中用戶登陸流程linux進程的四要素進程的四要素n程序nPCB n地址空間 n系統(tǒng)堆棧空間 PCB:進程創(chuàng)建時內核為其分配

5、的一個核心數(shù)據(jù)結構,進程自身不能直接存取。系統(tǒng)堆棧空間:進程運行在核心態(tài)時使用的堆棧,和PCB連在一起,共8KB,其中PCB約占1000字節(jié),系統(tǒng)堆??臻g約占7200字節(jié)。2.2 內核中l(wèi)inux進程個數(shù)有最大值限制(4092)。但2.4以后,系統(tǒng)中的進程個數(shù)受限于系統(tǒng)的物理內存數(shù),即限定所有進程的PCB及系統(tǒng)堆棧(8K)占用的空間1/2的物理內存總和。例64M內存:進程數(shù)64M/2/8K=4K PCB中的重要信息n身份信息:pid,uid,gid,euid,egid等; n狀態(tài)信息:running, interruptible, non-interruptible, stopped, zom

6、bie n調度信息:policy, priority, rt_priorty, need_resched npolicy即進程的類別,分SCHED_FIFO, SCHED_RR, SCHED_OTHER三種,前兩種為實時進程,后一種為非實時進程nIPC信息:如定義對某些信號的處理等 n家族信息:父進程、兄弟進程、子進程信息 n時鐘和定時信息 n文件系統(tǒng) n存儲管理 進程的創(chuàng)建n進程創(chuàng)建:fork , clone, vforkn父子進程共享資源的形式na.不共享(fork時缺省)nb.部分共享nc.完全共享(線程)#include #include int myvar=0;int myvar=0;void mainvoid main三三 int pid; int pid; pid = fork pid = fork三三; /system call; /system call if (pid 0 ) /error occurred if (pid 1000)n分時進程: weight = counter + 20 nice (1000)n 其中:rt_p

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論