終端,作業控制,守護進程

進程組:每個進程有唯一一個進程組ID(PGID),而每一個進程組都有一個組長進程(即進程組ID對應的進程),而組長進程可以創建一個進程組,對於一個進程組而言,只要這個進程組中有一個進程存在,那這個進程組就存在,與組長進程是否存在並沒有關係
作業:Shell分前後臺控制的不是進程,而是進程組/作業,一個前臺作業可以由多個進程組成,而一個後臺作業同樣也是如此,但對於Shell來說,只能同時運行一個前臺作業和多個後臺作業,這也就是所謂的作業控制;其實在一定程度上,進程組與作業類似,但它們也存在不同:如果作業中的某個進程又創建了子進程,那麼這個子進程屬於當前進程組,但不屬於當前作業(一旦作業運行結束(即父進程退出後),Shell就把自己提到前臺,把剩下的子進程放到後臺,作爲後臺進程組)
會話:一個或多個進程組的集合,一個會話對應一個控制終端,而建立與控制終端連接的會話首進程就是控制進程,一個會話可以分爲一個前臺進程組以及多個後臺進程組

對於在某一控制終端,組合鍵所發送的某個信號,內核會將這個信號發送給前臺進程組中的所有進程
對於控制終端信息,它是保存在進程的PCB中的,默認情況下,每個進程的標準輸入,標準輸出,標準錯誤都是指向控制終端的,/dev/tty是用於訪問控制終端的特殊設備文件,代表的是一個控制終端,被文件描述符表中的文件描述符指向,是可以被子進程拷貝的,即子進程的默認終端不會改變

守護進程(精靈進程):運行在後臺的特殊進程,獨立於控制終端並週期性的執行某種任務或事件,大多數服務器就是以守護進程形式存在的,它們在系統啓動時就隨即啓動,不能和用戶直接交互,不受用戶的登錄註銷的影響,一直在後臺運行
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章