linux程序概念(下)
程序狀態:
每個pcb都會描述乙個執行的狀態資訊,通過狀態資訊,告訴作業系統當前這個程序在幹什麼,而狀態又分為一下三種:
在linux中,對以上狀態加以細分:
1 就緒以及執行: 即正在執行的程序 ;
2 可中斷休眠狀態: 可被打斷的休眠,後進入執行;
3 不可中斷休眠狀態:只能通過滿足某些條件而自然甦醒後進入執行,不可被中斷打斷;
4 停止:與休眠不同(休眠作業系統會去看程序喚醒的條件是否滿足,而停止只能手動喚醒);
5 殭屍狀態:描述的是乙個程序退出了,但是程序資源沒有被完全釋放,等待處理的乙個狀態;
特殊程序:
(非常典型的乙個)殭屍程序:處於殭屍狀態的程序,即退出了但是資源沒有被完全釋放的程序;(不管子程序正常退出還是異常退出,只要退出了但沒有被父程序等待處理,都會產生殭屍程序)
產生條件:乙個程序先於父程序退出,父程序未關注子程序的退出狀態,導致子程序無法完全退出;
危害:產生資源洩露;
解決:程序等待----一直關注子程序,退出了就能直接發現。
這裡談到子程序與父程序,那我們為什麼有了父程序還需要建立乙個甚至多個子程序呢?
目的1:保護父程序,如果程式發生崩潰,那也是子程序去當炮灰,可以保護父程序安全;
目的2:許多子程序還可以共同為父程序分擔壓力;
環境變數:
即終端shell中進行系統執行環境配置的變數
作用1:可以使系統環境配置更加靈活;
作用2:可以通過環境變數向子程序傳遞資料;
操作指令:env–檢視所有環境變數;
典型喚醒變數:path–儲存程式執行預設的搜尋路徑
指令應用:echo¥pata
ps:在終端中我們所進行的程序的父程序就是shell。
Linux 小白從零搞懂程序 1
linux程序概念 上 馮諾依曼體系結構 現代計算機的硬體結構 1 採用儲存程式方式,指令和資料不加區別混合儲存在同乙個儲存器中,資料和程式在記憶體中是沒有區別的,它們都是記憶體中的資料,當eip指標指向哪 cpu就載入那段記憶體中的資料,如果是不正確的指令格式,cpu就會發生錯誤中斷.在現在cpu...
從零學習Swift 2
定義let 定義常量,一經賦值不允許再修改 var 定義變數,賦值之後仍然可以修改 常量 定義常量並且直接設定數值 let x 20 常量數值一經設定,不能修改,以下 會報錯 x 30 使用 型別 僅僅只定義型別,而沒有設定數值 let x1 int 常量有一次設定數值的機會,以下 沒有問題,因為 ...
科研小白從零高階(一) 引語
之前自學python之類的已經過去了,就不再記錄。1 專注 2 向牛人學習,要讓載體效率最高。找到會的人,會的實驗室,效率最高。3 善假於物。4 投資時間。比如學工具兩小時,該工具每天可給我減少1小時。但沒有看到更高效的方式,自己就不知道。很多時候,自己很忙,只是太低效了。有這樣一種意識,當發現某件...