【學習筆記】1. 進程與進程組

好煩啊,寫了很久的文章,按了 ctrl + shift + H 莫名其妙的頁面就關閉了

0 索引

  1. 進程與進程組
  2. 各類不一樣的進程
  3. 一個進程的演變

1. 進程

關於進程的結構和性質,就不作過多介紹,具體的能夠參考下以前的幾篇文章。php

一般而言,咱們打開的一個軟件(QQ和微信),執行的一個腳本(hello.c、hello.php/hello.java :能夠當作運行的一個程序)
都是經過進程的形式。java

下圖:查看的是全部運行中的進程nginx

clipboard.png

因此不管打開圖形界面一個軟件,或者終端運行 ,都是包裝成一個進程的形式運行shell

進程的退出 : 是經過信號 退出的

2. 子進程

以nginx 和 php-fpm 爲例,他們都是經過父進程,fork 多個子進程。來執行併發請求。
子進程共享父進程的資源和堆棧信息,父進程便於管理子進程。
至關於同時打開多個QQ頁面,每個窗口頁面和一個好友聊天,接受和發送當前好友的消息。segmentfault

clipboard.png

須要注意的是:fork 子進程,會返回二個值。 分別是當前父進程和新生成的子進程。
能夠分別對他們得邏輯分別處理。bash

clipboard.png

先運行父進程邏輯,再運行子進程邏輯。(當前能夠經過vfork等暫停父進程的繼續流程)服務器

clipboard.png

3. 進程的狀態

3.1 進程狀態

進程的系統狀態有一下幾種微信

clipboard.png

各個狀態的調用和切換以下圖多線程

clipboard.png

IPC 進程通訊,也會影響狀態

3.2 查看進程的狀態

PS : process status 是一個管理進程狀態的內核命令架構

和系統狀態值對應,有如下集中狀態值:

clipboard.png

最經常使用的,咱們運行的狀態值

  • R : 可運行
  • l : 表示進程是多線程的

PS的參數信息

clipboard.png

-a 是全部的終端
-A: 包括內核的
-r : running 包括正在運行的
-o : 分類輸出

3.3 proc

proc 裏面包含什麼信息

clipboard.png

clipboard.png

3.4.1 查看程序的執行文件

clipboard.png

3.4.2 查看cmd

clipboard.png

3.4.3 查看進程打開的文件

clipboard.png

參考nginx 打開的文件

clipboard.png

4. 簡單介紹終端

在介紹終端以前,先簡單的介紹下控制檯。
以下圖所述,控制檯通常在服務器獨享,客戶端鏈接的地方是終端,能夠有多個。

4.1 控制檯:

clipboard.png

clipboard.png

4.2 終端在內核中的分類:

clipboard.png

兩者之間的關係:

clipboard.png

4.3 不一樣的終端

  1. 虛擬終端: tty1-tty6 能夠經過快捷鍵切換
  2. 僞終端 PTY SSH 的界面都是僞終端

clipboard.png

僞終端的架構

clipboard.png

// 查看當前終端名
tty

5. 進程組

clipboard.png

6. 會話

clipboard.png

默認打開一個 bash 和一個虛擬終端 /dev/tty1

clipboard.png

構成了一個回話。(用戶登陸)

clipboard.png

bash : 就是一個shell 進程

而後敲命令:就是從新開啓新的進程組

7. 進程的切換

使用僞終端

clipboard.png

ctrl + c 終止後

clipboard.png

s + 表明 又返回了前臺進程組了

ctrl + c : 發給了前臺進程組了
而後經過shell 切換到了新的前臺控制組

clipboard.png

沒有登陸的終端,沒有bash

8. shell

clipboard.png

clipboard.png

clipboard.png

不斷的循環這個過程

相關文章
相關標籤/搜索