Linux 进程详解
生活随笔
收集整理的這篇文章主要介紹了
Linux 进程详解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Linux內核的七大區間
1.進程管理(進程創建,進程的三種狀態,進程間的調度,調度算法...)
2.內存管理(段式管理(Linux所有段都從0開始),頁式管理--地址偏移量)
3.系統調用(C語言庫函數的區別)
4.網絡協議(TCP/IP協議)
5.UFS--虛擬文件系統==》Linux驅動總線模型
6.驅動管理(網絡設備,塊設備,字符設備...)
7ARCH(對各個硬件平臺的支持...RAM x86 power pc)
即使fork實現了copy on write,效率也沒有vfork高,但是我們不推薦使用vfork,因為幾乎每一個vfork的實現,
都或多或少存在一定的問題 結論: 1.fork子進程會寫時拷貝父進程的數據段;vfork子進程與父進程共享數據段 2.fork父子進程的執行次序不確定;vfork子進程先運行,父進程后運行 vfork和exec函數在一起 execve替換進程映像(加載程序),注意execve是一個系統調用;替換意味著:代碼段,數據段,堆棧段,進程控制塊PCB全部替換
?
進程數據結構 進程的靜態描述:由三部分組成:PCB,有關程序段和該程序段對其進行操作的數據結構集 進程控制塊(PCB):用于描述進程情況及控制進程運行所需的全部信息 代碼段:是進程中能被進程調度程序在CPU上執行的程序代碼段。 數據段:一個進程的數據段,可以是進程對應的程序加工處理的原始數據,也可以是程序執行后產生的中間或最終數據 進程是操作系統對資源的一種抽象:一個進程:代碼段、數據段,堆棧段(內存四區)+進程控制塊(PCB) PCB是操作系統感知進程存在的一個重要數據結構。?
fork函數和vfork函數 vfork()函數有個限制,子進程必須立刻執行_exit或者exec函數,即使fork實現了copy on write,效率也沒有vfork高,但是我們不推薦使用vfork,因為幾乎每一個vfork的實現,
都或多或少存在一定的問題 結論: 1.fork子進程會寫時拷貝父進程的數據段;vfork子進程與父進程共享數據段 2.fork父子進程的執行次序不確定;vfork子進程先運行,父進程后運行 vfork和exec函數在一起 execve替換進程映像(加載程序),注意execve是一個系統調用;替換意味著:代碼段,數據段,堆棧段,進程控制塊PCB全部替換
?
轉載于:https://www.cnblogs.com/zhanggaofeng/p/6063403.html
總結
以上是生活随笔為你收集整理的Linux 进程详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DNS之BIND使用小结(Forward
- 下一篇: linux常用网络命令