1、什麼是程序
乙個正在執行的程式就是乙個程序
2、併發、並行、非同步、同步、臨界區
併發:針對乙個處理器,看起來同時進行。乙個處理器在同一時刻只能執行乙個程式,但是cpu在多個程序之間快速切換,所以看起是同時進行的。這是一種假象
並行:針對多個處理器,一台機器上有多個處理器,那麼程序就有可能同時執行。
非同步:是兩個完全沒有關係的操作。
同步:如果兩個操作不應該同時發生,就需要有一種機制確保他們一定不會同時發生。(多個程式同時修改同時變數,這種操作是危險的,所以就需要同步)
臨界區:多個程序同時訪問的**,臨界區要求同一時刻只能有乙個程式訪問,需要同步機制
3、排程,cpu如何去執行程式
時間片輪,將cpu的時間平均分配
fifo(first input first output),先進先出,先進來的先執行
短程序優先,時間短的先執行
高優先順序排程,級別高的程序先執行
4、死鎖
多個程序相互競爭同乙個資源
sleep()睡眠會使其他程式先執行,這樣就最簡單的消除死鎖,雖然不是很正確。
5、程序識別符號id
pid_t 型別,它是乙個無符號的整數unsigned int %u
6、建立乙個程序fork()函式
fork()建立乙個子程序,有2個返回值。呼叫fork函式的程序叫父程序,新產生的程序叫子程序。子程序會複製父程序的資料。如果返回非0值,那麼這個返回值是子程序的id,但是這個id是穿給父程序的。如果返回值是0,那代表當前是子程序。
程序id是程序唯一的標誌,關於程序所有的操作都要通過id。
獲取當前程序id: getpid()
獲取父程序的id: getppid()
7、手冊
程序概念1
1.什麼是程序?從書本上的哲學概念來解釋程序就是正在執行的程式。從另一方面作業系統如何管理記憶體來解釋,首先需要知道程序的描述。比如在學校,我們作為學生要被管理起來,首先需要被各種資訊進行描述起來 學號 姓名 班級等等 描述學生的就相當於是結構體。同樣程序需要被管理起來也需要先被描述起來,描述程序的...
Linux 程序概念
任何計算機系統都包含乙個基本的程式集合,成為作業系統 os 它包括 作業系統是管管理的軟體 使用者操作 使用者操作介面 shell,lib,指令等 作業系統 驅動程式 硬體 作業系統管理硬體 系統呼叫 在開發者角度,作業系統會對外表現為乙個整體,但是會暴露自己的一部分介面供上層開發者使用,這部分由作...
Linux 程序概念
程序排程演算法 在早期作業系統的排程方式大多數是非剝奪的,這是由於早期的應用一般是科學計算或事務處理,不太把人機互動的響應時間指標放在首要位置。在這種情況下,正在執行的程序可一直占用cpu直到程序阻塞或終止。這種方式的排程演算法可以很簡單,且比較適用對於響應時間不關心或者關心甚少的批處理科學計算或事...