1. 程式人生 > 其它 >程序狀態和相關概念

程序狀態和相關概念

1.程序狀態

1)檢視所有程序狀態

[root@centos8 ~]# ps aux

 

 2)範例:殭屍態

[root@centos8 ~]# bash
[root@centos8 ~]# echo $BASHPID #檢視當前程序編號
4085
[root@centos8 ~]# echo $PPID #檢視當前程序父程序編號
3419
#將父程序設為停止態
[root@centos8 ~]# kill -19 3419
#殺死子程序,使其進入殭屍態
[root@centos8 ~]# ps aux
#可以看到上面圖示的結果,STAT為z,表示為殭屍態

 

 解決殭屍態:

#方法一:恢復父程序
[root@centos8 ~]# kill -18 3419
#方法二:殺死父程序
[root@centos8 ~]# kill -9 3419
#再次觀察,就可以發現殭屍態的程序不存在了

3)ctrl+z 停止當前程序

 

2.LRU演算法

LRU(Least Recent Used)近期最少用演算法,釋放記憶體

 

3.程序之間通訊

IPC(inter Process Communication)

同主機:

1)pipe管道,單項傳輸

例:建立一個管道檔案實現單工通訊

[root@centos8 ~]# mkfifo /data/test.fifo
[root@centos8 ~]# ll /data/test.fifo 
prw-r--r-- 1 root root 0 Mar 13 21:35 /data/test.fifo
[root@centos8 ~]# echo hello > /data/test.fifo 
#在另一個程序可以從檔案中讀取資料
[root@centos8 ~]# cat /data/test.fifo 
hello

2)套接字檔案,雙工通訊

3)Memory-maped file 對映檔案,將檔案中的一段資料對映到實體記憶體,多個程序共享這個檔案

4)shm shared memory 共享空間

檢視共享空間:

[root@centos8 ~]# free
              total        used        free      shared  buff/cache   available
Mem:         800748      425500      174156        8984      201092      245084
Swap:       2097148      879104
1218044

其中shared就是共享空間。

5)signal 訊號

6)Lock 對資源上鎖

7)Semaphone 訊號量,一種計數器

 

記錄於2022-3-13-21:48