程序的結構、型別和排程
可以把程序看做是正在執行的程式。
程序結構:程序識別符號、檔案描述符、棧空間和環境變數(程式計數器)
作業系統通過程序的
pid對它們進行管理,
pid是程序表的索引。
linux
排程器根據
程序的優先順序
來決定呼叫哪個程序。
用不同的方法啟動新程序
system
函式作用:執行以字串引數的形式傳遞給它的命令並等待命令的完成。它很有用,但是也有侷限性,程式必須
等待由system
函式啟動的程序結束之後才能繼續
,因此我們不能立刻執行其它任務。
exec函式比
system
函式更有效,因為在
新的程式啟動後,原來的程式就不再執行
了。exec
啟動的新程序繼承了原來程序的許多特性,新程序的
pid、
ppid
與原來的一樣。
父程序、子程序和殭屍程序
讓程序同時執行多個函式,可以通過
fork
建立乙個新程序,新程序與原程序一模一樣,執行**也完全相同,但新程序有自己的資料空間、環境和檔案描述符。
父程序中的
fork
呼叫返回的是新的子程序的
pid,而子程序中的
fork
呼叫返回的是0
函式通過
fork
建立的子程序終止時,它與父程序之間的關聯還會繼續保持
,直到父程序也正常終止或父程序呼叫
wait
才可結束,因此,程序表中代表子程序的表項不會立刻釋放,雖然
子程序不再執行,但是它仍存在於系統中
,這個時候它就是乙個死程序或
殭屍程序(
zombie
),如果父程序異常終止,那麼子程序會自動把
pid為
1的程序(
init
)作為自己的父程序,並一直儲存在程序表中,直到被
init
發現並釋放。
什麼是訊號以及如何使用它們訊號是
unix
和linux
系統響應某些條件而產生的某乙個事件。
訊號可以被生成、捕獲、響應和忽略。
sig:準備捕獲或忽略的訊號
func
:接收到指定訊號後將要呼叫的函式
Linux程式設計 程序 訊號
半年不接觸linux,有些東西變的太陌生了,再回顧一下我的linux 基礎 程式設計吧 程序 1.得到程序資訊的常用函式 include include pid t getpid void 程序id pid t getppid void 父程序id uid t getuid void 程序所有者的i...
Linux 程序和訊號
1.程序識別符號 pid 的取值範圍從2到32768,數字1是為特殊程序init保留的,init程序負責管理其他程序。2.linux程序表就像乙個資料結構,它把當前載入在記憶體中的所有程序的相關資訊儲存在乙個表中,pid是程序表的索引。3.ps af tty一列顯示了程序是從哪乙個終端啟動的。cmd...
Linux 程序和訊號
pid 定義 程序識別符號 linux和unix一樣,有乙個虛擬記憶體系統,能夠把程式 和資料以記憶體頁面的形式放到硬碟的乙個區域中,所以linux可以管理的程序比物理記憶體所能容納的要多得多。程序表 linux程序表就像乙個資料結構,它把當前載入在記憶體中的所有程序的有關資訊儲存在乙個表中,其中包...