Linux 进程、父进程、子进程
進程和程序的區別
一、 進程是動態的,程序是靜態的:程序是有序代碼的集合,進程是程序的執行。進程有核心態/用戶態。
二、 進程是暫時的,程序是永久的;進程是一個狀態變化的過程,程序可以長久保存
三、進程和程序的組成不同,進程的組成包括程序、數據和進程控制塊(即進程狀態信息)
什么是進程標識符
????????每個進程都有一個非負整型表示的唯一進程ID。因為進程ID標識符總是唯一的,常將其用作其他標識符的一部分以保證其唯一性,類似于身份證。例如,應用程序有時就把進程ID作為名字的一部分來創建一個唯一的文件名。
????????雖然是唯一的,但是進程ID可以重用。當一個進程終止后,其進程ID就可以再次使用了。大多數UNIX系統實現延遲重用算法,使得賦予新建進程的ID不同于最近終止進程所使用的ID。這防止了將新進程誤認為是使用同一ID的某個已終止的先前進程。
????????系統中有一些專用的進程,但具體細節因實現而異。ID為0的進程通常是調度進程,常常被稱為交換進程(swapper)。該進程是內核的一部分,它并不執行磁盤上的任何程序,因此也被稱為系統進程。進程ID 1通常是init進程,在自舉(bootstrap)過程結束時由內核調用。此進程負責在自舉內核后啟動一個UNIX系統。init通常讀與系統有關的初始化文件(/etc/rc*文件或/etc/inittab文件,以及/etc/init.d中的文件),并將系統引導到一個狀態(例如多用戶)。init進程絕不會終止。它是一個普通的用戶進程(與交換進程不同,它不是內核中的系統進程),但是它以超級用戶特權運行。
什么是父進程和子進程
1、父進程
????????指已創建一個或多個bai子進程的進程。在duUNIX里,除了進程0以外zhi的所有進程都是由其他進程使dao用系統調用fork創建的,這里調用fork創建新進程的進程即為父進程,而相對應的為其創建出的進程則為子進程,因而除了進程0以外的進程都只有一個父進程,但一個進程可以有多個子進程。
2、子進程
????????指的是由另一進程(對應稱之為父進程)所創建的進程。子進程繼承了對應的父進程的大部分屬性,如文件描述符。在Unix中,子進程通常為系統調用fork的產物。在此情況下,子進程一開始就是父進程的副本,而在這之后,根據具體需要,子進程可以借助exec調用來鏈式加載另一程序。
總結
以上是生活随笔為你收集整理的Linux 进程、父进程、子进程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 湖南麒麟下加载RapidIO驱动
- 下一篇: linux进程---exec族函数(ex