Linux程式控制程式設計
一 程式控制理論基礎
程式的狀態:
程式是一個具有一定獨立功能的程式的一次執行活動,同時也是資源分配的最小單元;
程式是放到磁碟的可執行檔案;
程式是指程式執行的例項;
程式是動態的,程式是靜態的:程式是有序程式碼的集合;程式是程式的執行。通常程式不可在計算機之間遷移;而程式通常對應著檔案、靜態和可以複製
程式是暫時的,程式使長久的:程式是一個狀態變化的過程,程式可長久儲存
程式與程式組成不同:程式的組成包括程式、資料和程式控制塊(即程式狀態資訊)
程式與程式的對應關係:通過多次執行,一個程式可對應多個程式;通過呼叫關係,一個程式可包括多個程式。
建立: 每個程式都是由其父程式建立,程式可以建立子程式,子程式又可以建立子程式的子程式
執行: 多個程式可以同時存在,程式間可以通訊
撤銷: 程式可以被撤銷,從而結束一個程式的執行
Linux程式:
Linux系統是一個多程式的系統,它的程式之間具有並行性、互不干擾等特點。
也就是說,每個程式都是一個獨立的執行單位,擁有各自的權利和責任。其中,各個程式都執行在獨立的虛擬地址空間,因此,即使一個程式發生異常,它也不會影響到系統中的其他程式
Linux中的程式包含3個段,分別為“資料段”、“程式碼段”和“堆疊段”。
“資料段”存放的是全域性變數、常數以及動態資料分配的資料空間;
“程式碼段”存放的是程式程式碼的資料。
“堆疊段”存放的是子程式的返回地址、子程式的引數以及程式的區域性變數等。
程式ID:
程式ID(PID):標識程式的唯一數字
父程式的ID(PPID)
啟動程式的使用者ID(UID)
程式互斥:
程式互斥是指當有若干程式都要使用某一共享資源時,任何時刻最多允許一個程式使用,其他要使用該資源的程式必須等待,直到佔用該資源者釋放了該資源為止
作業系統中將一次只允許一個程式訪問的資源稱為臨界資源
程式中訪問臨界資源的那段程式程式碼稱為臨界區,為實現對臨界資源的互斥訪問,應保證諸程式互斥地進入各自的臨界區
一組併發程式按一定的順序執行的過程稱為程式間的同步;
具有同步關係一組併發程式稱為合作程式;
合作程式間互相傳送的訊號稱為訊息或事件。
概念:
按一定演算法,從一組待執行的程式中選出一個來佔有CPU執行。
排程方式:
• 搶佔式
• 非搶佔式
先來先服務排程演算法
短程式優先排程演算法
高優先順序優先排程演算法
時間片輪轉法
多個程式因競爭資源而形成一種僵局若無外力作用,這些程式都將永遠不能再向前推進
程式建立:
在pid=fork()之前,只有一個程式在執行,但在這條語句執行之後,就變成兩個程式在執行了,這兩個程式的共享程式碼段,將要執行的下一條語句都是if(pid==0).
兩個程式中,原來就存在的那個程式被稱作“父程式”,新出現的那個程式被稱作“子程式”,父子程式的區別在於程式識別符號(PID)不同.
表標頭檔案: #include
相關文章
- Linux系統程式設計之程式控制(程式建立、終止、等待及替換)Linux程式設計
- Linux程式控制Linux
- Linux jpeg程式設計Linux程式設計
- Linux Bash程式設計Linux程式設計
- 【Linux】 Linux網路程式設計Linux程式設計
- (整合)Linux下的多程式程式設計Linux程式設計
- Linux串列埠程式設計Linux串列埠程式設計
- Linux之shell程式設計Linux程式設計
- Linux Shell程式設計(1)Linux程式設計
- Linux Shell程式設計(2)Linux程式設計
- 【Linux網路程式設計】網路程式設計常見概念Linux程式設計
- Linux系統程式設計——特殊程式之孤兒程式Linux程式設計
- Linux系統程式設計之程式介紹Linux程式設計
- linux下使用makefile方式程式設計主程式Linux程式設計
- 可程式設計作息時間控制器設計程式設計
- 【Linux】Linux系統程式設計入門Linux程式設計
- Linux網路程式設計(2)Linux程式設計
- Linux網路程式設計(1)Linux程式設計
- Linux程式設計之gdb(二)Linux程式設計
- Linux 伺服器程式設計Linux伺服器程式設計
- Linux 高效能伺服器程式設計- Linux 網路程式設計基礎 APILinux伺服器程式設計API
- Linux socke server程式設計:父程式和子程式關係LinuxServer程式設計
- linux程式全解-3.4.linux應用程式設計和網路程式設計第4部分Linux程式設計
- 可程式設計序控制器(PLC)程式設計
- LINUX程式如何管理控制(二)Linux
- 【Linux系統程式設計】Linux訊號列表Linux程式設計
- Linux系統程式設計—有名管道Linux程式設計
- Linux中Libevent程式設計介紹Linux程式設計
- Linux系統程式設計基礎Linux程式設計
- Linux入門---(三)Shell程式設計Linux程式設計
- 前端學習 linux —— shell 程式設計前端Linux程式設計
- Linux系統程式設計入門Linux程式設計
- Go程式設計技巧–Goroutine的優雅控制Go程式設計
- VC++ MFC程式設計版本資訊控制C++C程式程式設計
- 《Linux系統程式設計訓練營》9_Linux 程式層次分析Linux程式設計
- 《Linux系統程式設計訓練營》8_Linux 終端與程式Linux程式設計
- 《Linux系統程式設計訓練營》5_環境變數程式設計Linux程式設計變數
- Linux環境程式設計程式間通訊機制理解Linux程式設計
- 【linux】系統程式設計-1-程式、管道和訊號Linux程式設計