




已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
Linux內(nèi)核結(jié)構(gòu)與進程管理 Linux系統(tǒng)結(jié)構(gòu) Linuxkernel 開放源代碼的linux操作系統(tǒng)內(nèi)核 目前版本為2 6 Linux內(nèi)核組成 1 進程調(diào)度程序 SCHED 負責控制進程訪問CPU 保證進程能夠公平地訪問CPU 同時保證內(nèi)核可以準時執(zhí)行一些必需的硬件操作 2 內(nèi)核管理程序 MM 使多個進程可以安全地共享機器的主存系統(tǒng) 并支持虛擬內(nèi)存 3 虛擬文件系統(tǒng) VFS 通過提供一個所有設備的公共文件接口 VFS抽象了不同硬件設備的細節(jié) 此外 VFS支持與其他操作系統(tǒng)兼容的不同的文件系統(tǒng)格式 4 網(wǎng)絡接口 NET 提供對許多建網(wǎng)標準和網(wǎng)絡硬件的訪問 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)核線程 kernelthread 然后裝入并執(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為缺省的運行模式 etc rc d rc local 運行模式2 3 5時會運行的腳本 sbin mingetty 或getty 等待用戶登錄 etc inittab中指定了系統(tǒng)的運行級別 RUNLEVEL init根據(jù)運行級別啟動相關的服務 一些后臺進程 實現(xiàn)不同的功能 RUNLEVEL 0 60 halt 1 單用戶 2 多用戶 3 多用戶并啟動NFS服務4 保留 5 運行xdm Xwindow 以圖形界面方式登錄6 reboot Linux中用戶登陸流程 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)堆??臻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 4K PCB中的重要信息 身份信息 pid uid gid euid egid等 狀態(tài)信息 running interruptible non interruptible stopped zombie調(diào)度信息 policy priority rt priorty need reschedpolicy即進程的類別 分SCHED FIFO SCHED RR SCHED OTHER三種 前兩種為實時進程 后一種為非實時進程IPC信息 如定義對某些信號的處理等家族信息 父進程 兄弟進程 子進程信息時鐘和定時信息文件系統(tǒng)存儲管理 進程的創(chuàng)建 進程創(chuàng)建 fork clone vfork父子進程共享資源的形式a 不共享 fork時缺省 b 部分共享c 完全共享 線程 includeintmyvar 0 voidmain intpid pid fork systemcallif pid 0 erroroccurredprintf forkfailed exit 1 systemcall elseif pid 0 childprocessprintf childprocessexecuting n myvar 1 else parentprocesswait systemcall waitforchildrencompletionprintf childcomplete myvar printf father myvar d myvar exit 0 fork實例 進程調(diào)度 調(diào)度時機a 用戶進程自愿放棄CPU 如執(zhí)行sleep 系統(tǒng)調(diào)用 b 系統(tǒng)調(diào)用中 需要等待時 直接調(diào)用schedule 進行調(diào)度 c 系統(tǒng)調(diào)用 中斷或異常處理完成后 返回到用戶空間前 若當前進程的PCB中的need resched 1 則發(fā)生調(diào)度 調(diào)度策略 基于進程的權(quán)值 weight 即動態(tài)優(yōu)先級 實時進程 weight 1000 rt priority
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 海外工程項目施工人員勞務派遣與保障協(xié)議
- 外資企業(yè)拉美市場運營專員職務聘任與培訓合同
- 網(wǎng)絡內(nèi)容安全審查算法技術許可及數(shù)據(jù)共享合同
- 數(shù)據(jù)安全忠誠度保障協(xié)議及知識產(chǎn)權(quán)保護
- 傳染病預防措施
- 外科護理胸部損傷
- 護理安全案例分析
- 2026屆高考語文作文模擬寫作:等風與追風
- 腫瘤護士進修體系構(gòu)建
- 剖宮產(chǎn)患者的對癥護理
- 注塑模具分類及結(jié)構(gòu)組成課件
- 裂解裂化工藝作業(yè)培訓課件
- 工程部管理制度及工程部管理制度(工程公司)
- 基于ZYNQ的時鐘同步平臺的設計
- 回火爐安全操作規(guī)程
- GB/T 19494.1-2023煤炭機械化采樣第1部分:采樣方法
- 光纜遷移 施工方案
- 醫(yī)院標識標牌采購投標方案
- 電動扶梯防墜護欄施工方案
- 視頻監(jiān)控系統(tǒng)驗收報告
- 2016年河北省中考數(shù)學試卷
評論
0/150
提交評論