程序狀態和相關概念
阿新 • • 發佈:2022-03-13
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 8791041218044
其中shared就是共享空間。
5)signal 訊號
6)Lock 對資源上鎖
7)Semaphone 訊號量,一種計數器
記錄於2022-3-13-21:48