fork與vfork的區別

fork與vfork的區別
1.vfork保證子進程先運行,在它調用exec或exit之后父進程才可能被調度運行。如果在調用這兩個函數之前子進程依賴于父進程的進一步動作,則會導致死鎖。

2.fork要拷貝父進程的進程環境;而vfork則不需要完全拷貝父進程的進程環境,在子進程沒有調用exec和exit之前,子進程與父進程共享進程環境,相當于線程的概念,此時父進程阻塞等待。

為什么會有vfork呢?

因為以前的fork當它創建一個子進程時,將會創建一個新的地址空間,并且拷貝父進程的資源,然后將會有兩種行為:

1.執行從父進程那里拷貝過來的代碼段

2.調用一個exec執行一個新的代碼段

當進程調用exec函數時,一個新程序替換了當前進程的正文,數據,堆和棧段。這樣,前面的拷貝工作就是白費力氣了,這種情況下,聰明的人就想出了vfork。vfork并不復制父進程的進程環境,子進程在父進程的地址空間中運行,所以子進程不能進行寫操作,并且在兒子“霸占”著老子的房子時候,要委屈老子一下了,讓他在外面歇著(阻塞),一旦兒子執行了exec或者exit后,相當于兒子買了自己的房子了,這時候就相當于分家了。

因此,如果創建子進程是為了調用exec執行一個新的程序的時候,就應該使用vfork
之后我會更新 fork 和 vfork 的具體用法。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/448482.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/448482.shtml
英文地址,請注明出處:http://en.pswp.cn/news/448482.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

IDEA 2018 集成 MyBatis Generator 插件 詳解、代碼生成

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1、修改maven的pom文件 只需要將如下依賴添加到pom.xml文件中即可。&#xff08;注意此處是以plugin的方式&#xff0c;放在<plugins…

MongoDB監控及報警

轉載請注明出處&#xff1a;https://www.cnblogs.com/shining5/p/11142357.html MongoDB監控及報警 Prometheus是由SoundCloud開發的開源監控報警系統和時序列數據庫&#xff0c;其使用go語言開發。基本原理是通過HTTP協議周期性抓取被監控組件的狀態&#xff0c;任意組件只要提…

umask命令:設置文件的默認權限掩碼

今天接觸到了掩碼&#xff0c;從博客上總結了一些關于掩碼解釋比較全面的分析&#xff0c;和大家分享下。 文件權限是linux系統中的一種安全機制&#xff0c;通過設置不同的權限&#xff0c;可以達到限制用戶操作的目的&#xff0c;有效地保證了文件的完整性。 默認的情況下&…

如何學習開源項目及Ceph的淺析

摘要&#xff1a;開源技術的學習和采用確實存在著一定門檻&#xff0c;然而學習各種開源項目已經成為許多開發者不可回避的工作內容。那么&#xff0c;對于類似OpenStack的大型開源項目&#xff0c;開發者該如何著手&#xff0c;這里我們看章宇的分享。 【編者按】在 上一屆O…

Mybatis 中更新方法: updateByPrimaryKeySelective() 和 updateByPrimaryKey() 的區別

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 int updateByPrimaryKeySelective(TbItem record); int updateByPrimaryKey(TbItem record); 上面的是逆轉工程生成的Mapper接口 對應…

SHT知識庫操作要點

1.保存文檔庫模板&#xff1a; 知識庫---設置---文檔庫設置---權限管理---將文檔另存為模板2.設置版本號&#xff1a;知識庫---設置---文檔庫設置---常規設置---版本控制設置3.設置文檔庫權限&#xff1a;列表---設置---文檔庫設置---此文檔庫的權限&#xff08;用戶組讀取列表…

淺談三種特殊進程:孤兒進程,僵尸進程和守護進程

昨天學了進程控制&#xff0c;就這三種特殊的進程研究了一下&#xff0c;其中也借鑒了一些前人總計的經驗。 1、孤兒進程 如果父進程先退出,子進程還沒退出那么子進程將被 托孤給init進程,這里子進程的父進程就是init進程(1號進程).其實還是很好理解的。 // 父進程先子進程退…

設計師為什么要學編程,開發者為什么要學設計?

摘要&#xff1a;設計師和開發者目前正處于互聯網的兩端&#xff0c;看著彼此做不同的工作。如果他們能互相學習對方的技術&#xff0c;那么會協作得更好。 很多開發者認為&#xff0c;設計師應該學會如何編寫代碼&#xff0c;這一點是真的&#xff1a;通過學習&#xff0c;設計…

git 查看遠程倉庫地址

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 就一個命令&#xff1a; git remote -v 如下&#xff1a;

tensorflow之tf.train.exponential_decay()指數衰減法

exponential_decay(learning_rate, global_steps, decay_steps, decay_rate, staircaseFalse, nameNone) 使用方式&#xff1a; tf.tf.train.exponential_decay() 例子&#xff1a; tf.train.exponential_decay(self.config.e_lr, self.e_global_steps&#xff0c;self.config…

wait( )和 waitpid( )

進程一旦調用了wait&#xff0c;就立即阻塞自己&#xff0c;由wait自動分析是否當前進程的某個子進程已經退出&#xff0c;如果讓它找到了這樣一個已經變成僵尸的子進程&#xff0c;wait就會收集這個子進程的信息&#xff0c;并把它徹底銷毀后返回&#xff1b;如果沒有找到這樣…

享受閱讀的十二個好習慣

嚴謹的國際閱讀率比較研究顯示&#xff0c;當下韓國國民人均閱讀量約為每年11本&#xff0c;法國約為8.4本&#xff0c;日本在8.4—8.5本之間。全世界每年閱讀書籍數量排名第一的是猶太人&#xff0c;平均每人一年讀書64本。而中國13億人口&#xff0c;扣除教科書&#xff0c;平…

在 vscode 中使用 Git :拉取、提交、克隆

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 PS&#xff1a;轉載此文后&#xff0c;網友在評論中提到還有其它方法&#xff0c;不過目前個人尚在研究中&#xff0c;有興趣的朋友們也可…

偶也要去上海Tech一把了

公司組織的&#xff0c;后天去&#xff0c;呵呵&#xff1a;&#xff09;希望能多認識一點博客園的兄弟姐妹轉載于:https://www.cnblogs.com/martinxj/archive/2004/09/14/42930.html

進程控制常用的一些操作

1、獲取進程的id int main0() {printf ("當前進程 ID %d\n", getpid());printf ("當前父進程&#xff1a;%d\n", getppid());printf ("當前用戶&#xff1a; %d\n", getuid());while (1);return 0; }2、fork 和 vfork之前的博客里有&#xf…

vscode 配置 git (配置、暫存、推送、拉取、免密)

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 vscode 中對 git 進行了集成&#xff0c;很多操作只需點擊就能操作&#xff0c;無需寫一些 git 指令。 不過這就需要你對 vscode 進行配…

男女之間應該保留多少隱私

究竟&#xff0c;男女朋友之間&#xff0c;應該保留多少個人隱私? 我覺得&#xff0c;如果各自的隱私太多,那么&#xff0c;很難會相信彼此的愛能有多深濃。然而&#xff0c;如果兩個人沒有半點隱私,而且絕對坦誠。 彼此的行為和思想也沒有絲毫隱瞞的話,這種清白赤誠有如標…

處理bugs心法

1. 前提 第一層&#xff1a;遇到異常首先必須告訴自己&#xff0c;冷靜&#xff0c;不要慌。&#xff08;一看到Bug就心慌&#xff0c;那么武功就施展不了了&#xff09; 2. 入門級 第二層&#xff1a;遇到Bug&#xff0c;第一潛意識看輸出異常的信息的&#xff08;控制臺輸出&…

C語言實現簡單的電子通訊錄2

這兩天學完系統調用和標準IO&#xff0c;之前的通訊錄可以進行一些改進&#xff0c;將數據保存到文件中(圖我這里就不發了)。 原理&#xff1a;每次啟動程序時先從預設文件中以只讀的形式讀取保存的通訊錄信息&#xff0c;然后將讀取到的信息導入到結構體中&#xff1b;每次執…

解決 VS Code 保存時候自動格式化

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 不知道從哪個版本起&#xff0c;VS code 保存會自動格式化。 以前都是altshiftF格式化的&#xff0c;現在一保存就格式化&#xff0c;而…