調度進程的系統調用


              

            在Liunx下的系統調用函數存放在/usr/include/sys文件夾下。 進程的系統調用有 fork() ,vfork() wait() exit() sleep() 等,

      fork()函數和vfork()函數的區別在於fork()函數拷貝父進程的上下文到子進程中, vfork()函數不拷貝到子進程中。 wait()函數

      作用是中斷父進程的執行,恢復子進程的上下文,執行子進程。exit()函數表示中斷進程,使進程處於僵死狀態.

        1.  fork  ():子進程拷貝父進程的數據段,代碼段
             vfork ( ):子進程與父進程共享數據段
        2.  fork ()父子進程的執行次序不確定
            vfork 保證子進程先運行,在調用exec 或exit 之前與父進程數據是共享的,在它調用exec
             或exit 之後父進程纔可能被調度運行。
        3.  vfork ()保證子進程先運行,在她調用exec 或exit 之後父進程纔可能被調度運行。如果在
             調用這兩個函數之前子進程依賴於父進程的進一步動作,則會導致死鎖。

發佈了129 篇原創文章 · 獲贊 58 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章