linux进程管理 pdf,高效与精细的结合--Linux的进程管理.pdf
高效與精細的結(jié)合--Linux的進程管理.pdf
第 卷 第 期 A 文獻標識碼 I T6L 76 28 L J6 7 8 676 LJ Q Q656 8J6 6 82 K 797863 R28J 2 Q6 6 Q6 8 2 86 6L8 6 89 2KJ8 Q 8 3 8 8J6 Q656 36 8 0 L 3 86 7L26 L6 1J6 3 K636 8 0 L677 27 23 8 8 L 3 6 8 2 C2 D 6 82 K 797863 RJ2LJ 3 2 9 L 72787 0 678 S 27J2 K L 76 7R28LJ2 K L 76 Q 6 Q2 K L 76 1J KJ 972 K 8J6 Q68 2 7 0 8J676 L 767 Q 8J KJ 8J6 6 Q2 K 0 7 36 723 6 7 L6 L Q67 28 S67 2 8 8J6 6002L26 L9 Q 3682L 7 63S Q26Q 2 8J6 L 76 0 Q672K 2 K Q 6 2P2 K 2 C2 D 8 9 2 0 C2 D L677 EFG 7R2LJ 6 Q 進程與進程管理 進程是擁有一定資源并能獨立運行的一個基本 單位 也正是由于引入了進程的概念 現(xiàn)代操作系統(tǒng) 中程序的并發(fā)執(zhí)行才成為可能 因而是否能對進程 進行有效的控制和管理 對于一個操作系統(tǒng)來說是 至關(guān)重要的 處理機的管理是現(xiàn)代操作系統(tǒng)的一個重要功 能 其主要任務(wù)就是合理的分配處理機資源 并對其 進行有效的控制和管理 處理機的分配和運行是以 進程為單位的 故對處理機的管理實際上可以歸結(jié) 為對進程的管理 C2 D 與 C2 D 的進程 C2 D 操作系統(tǒng)是一個多用戶 多任務(wù)的操作系 統(tǒng) 它是 4 2D 的兼容產(chǎn)品 而且是 4 2D 的延續(xù)和發(fā) 展 是 4 2D 各種版本的集大成者 如果說 4 2D 是一 個 微內(nèi)核 那么 C2 D 就是一個 宏內(nèi)核 更為 值得注意的是 C2 D 是一個自由軟件 人們可以自 由的得到 C2 D 的可執(zhí)行程序及源代碼 這就給我 們研究和分析操作系統(tǒng)提供的極大的方便 C2 D 系統(tǒng)中的進程有自己的特點 它至少具備 四個要素 一段可供其執(zhí)行的程序 一些最基本的資源 如進程專用的系統(tǒng)堆棧 空間 內(nèi)核中有一個 8 7UV78 L8 數(shù)據(jù)結(jié)構(gòu)即操作系 統(tǒng)理論中的進程控制塊標識其存在 獨立的存儲空間 除前面講的系統(tǒng)空間堆棧 收稿日期 例如當需要從父進程復制可寫頁面時 本來是 應(yīng)該在內(nèi)存里給子進程分配一個空閑的內(nèi)存頁面 然后再從父進程的頁面將內(nèi)容復制過來 并為之建 立映射 但正如前面所講 復制過來的頁面子進程 并不一定用 特別是當只有 讀訪問 沒有 寫訪 問 時 只要保證父進程從此不再寫這個頁面 子進 程就完全可以通過復制指針來共享該頁面 所以 6 8 46 8 4 中 關(guān)鍵的代碼 有 2A F3 A 3 72 B 即任務(wù)狀態(tài) 段 它是保存一個進程重要信息的特殊段 通過切 換 F 指針 也就是寄存器 F 的內(nèi)容 由 OEP 的硬 件來實現(xiàn)進程的切換 L 硬切換的大致過程是這樣的 首先將處理器中 各寄存器的當前值自動保存到 F 所指定的 F 中 然后 下一進程 F 的選擇子被裝入 F 這樣 F 就指向新的 F 了 最后從 F 所指向的 F 中 取出各寄存器的值送到處理器的各寄存器中 顯而 易見這種做法看起來是簡單的 簡單到只要一條 Q E 指令或 O GG 指令就可以完成切換 早期 G BHI 確實采用此法 但現(xiàn)在已經(jīng)放棄 而采取了軟 切換的辦法 軟切換的過程是在內(nèi)核完成 由于每 個 OEP 初始化后永遠只對應(yīng)一個任務(wù)狀態(tài)段 F 通過改變?nèi)蝿?wù)狀態(tài)段中的堆棧段寄存器 的內(nèi)容 和堆棧指針寄存器 E 的內(nèi)容 就可從邏輯上實現(xiàn) 切換 例如從進程 切換到進程 R 的過程在調(diào)度程 序中的結(jié)構(gòu)可用圖 L 來簡單示意 圖 L 調(diào)試程序中進程切換示意圖 這個切換過程的主要工作就是堆棧的切換 是 由宏操作 E 保存到 E 9 進 程描述符 從 T UF 的進程描述符中恢復 E 把 E 9 下次的返回點保存到 E 9 進程描 述符 從 T UF 的進程描述符中取出返回點 并壓 入 T UF 的堆棧 進入函數(shù) E 到原結(jié)構(gòu) E 切換了堆棧3 14 5 617 8 9 61 3 1 2 4 5 13 14 5 13 其中函數(shù) 4 的主要工作就是將 ABB 中內(nèi)核空間 級 堆棧指針換成 14 4 6 數(shù)據(jù)結(jié)構(gòu)和系統(tǒng)空間堆棧所在 的兩個頁面 在進程終止過程中這兩個頁面不是進 程自己釋放的 而是通過調(diào)用 1 函數(shù) 回收相應(yīng)資源 真正結(jié)束進程 此種安排第一可以由父進程將子進程的 4 4 6 數(shù)據(jù)結(jié)構(gòu)中的一些有用的統(tǒng)計信息保存起來 不致丟失 第二更重要的是 系統(tǒng)一旦進入多進程狀 態(tài) 任何一個時刻都需要一個 當前進程 存在 如 若不然 在系統(tǒng)調(diào)用另一個進程投入運行之前 子進 程就將自己的 4 4 6 數(shù)據(jù)結(jié)構(gòu)和系統(tǒng)空間堆棧 釋放 那就會有一個無 當前進程 的空隙 若此時 出現(xiàn)一個不可屏蔽中斷或異常 就會出現(xiàn)問題了 故子進程的 4 4 6 數(shù)據(jù)結(jié)構(gòu)和系統(tǒng)空間堆棧必 須要保存到另一個進程開始運行之后才能釋放 這 樣由父進程來釋放它們就很合理 而且也簡化了程 序 否則調(diào)度程序 4 13 1 就要多考慮好多情況 可見設(shè)計者在進程終止過程中的安排也是相當穩(wěn)妥 合理的 Q 結(jié)束語 本文從三處細節(jié)分析了 在進程管理過程 中的精打細算 既讓系統(tǒng)能高效運行 又能面面俱 到 其實這種精妙之處在 的結(jié)構(gòu)和源代碼設(shè) 計中隨處可見 有時令人不得不由衷的佩服設(shè)計者 的高超技藝 由于 的結(jié)構(gòu)和源代碼都是完全 開放的 仔細對其進行研究對于我國自行設(shè)計和開 發(fā)具有自主知識產(chǎn)權(quán)的操作系統(tǒng)有著重要的現(xiàn)實意 義 參考文獻 略 RS 萬方數(shù)據(jù) 高效與精細的結(jié)合 Linux的進程管理高效與精細的結(jié)合 Linux的進程管理 作者 石魯生 Shi Lusheng 作者單位 宿遷學院計算機系 江蘇 宿遷 223800 刊名 塔里木大學學報 英文刊名 JOURNAL OF TARIM UNIVERSITY 年 卷 期 2005 17 3 本文鏈接
總結(jié)
以上是生活随笔為你收集整理的linux进程管理 pdf,高效与精细的结合--Linux的进程管理.pdf的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 古尔曼:苹果将为 Beats Fit P
- 下一篇: linux编译安装的好处,Linux学习