linux程序概念

2021-09-23 14:19:29 字數 1817 閱讀 8769

1. 調研程序的排程演算法.

2. 調研task_struct結構體, 理解結構體中的各個欄位的含義.

3.使用**模擬實現殭屍程序, 孤兒程序的場景.

1.程序的排程演算法

(1)時間片輪轉排程演算法(rr): 給每個程序固定的執行時間,根據程序到達的先後順序讓程序在單位時間片內執行,執行完成後便排程下乙個程序執行,時間片輪轉排程不考慮程序等待時間和執行時間,屬於搶占式排程。優點是兼顧長短作業;缺點是平均等待時間較長,上下文切換較費時。適用於分時系統。

(2)先來先服務排程演算法(fcfs):根據程序到達的先後順序執行程序,不考慮等待時間和執行時間,會產生飢餓現象。屬於非搶占式排程,優點是公平,實現簡單;缺點是不利於短作業。

(3)優先順序排程演算法 (hpf):在程序等待佇列中選擇優先順序最高的來執行。

(4)多級反饋佇列排程演算法:將時間片輪轉與優先順序排程相結合,把程序按優先順序分成不同的佇列,先按優先順序排程,優先順序相同的,按時間片輪轉。優點是兼顧長短作業,有較好的響應時間,可行性強,適用於各種作業環境。

(5)高響應比優先排程演算法:根據「響應比=(程序執行時間+程序等待時間)/ 程序執行時間」這個公式得到的響應比來進行排程。高響應比優先演算法在等待時間相同的情況下,作業執行的時間越短,響應比越高,滿足段任務優先,同時響應比會隨著等待時間增加而變大,優先順序會提高,能夠避免飢餓現象。優點是兼顧長短作業,缺點是計算響應比開銷大,適用於批處理系統。

調研task_struct結構體, 理解結構體中的各個欄位的含義.

在linux下描述程序的結構體為task_struct結構體,它是linux核心的一種資料結構,它將會被裝載到ram(記憶體)裡並且包含著程序的資訊。

識別符號:描述本程序的唯一識別符號,用於區別其他程序(pid)。

狀態:任務狀態,退出**,退出訊號等。

優先順序:相對於其他程序的優先順序 (cpu資源的優先分配權)。

程式計數器:程式中即將被執行的下一條指令的位址(程式執行到哪兒了)。

記憶體指標:程式**和程序相關資料的指標,還有和其他程序共享的記憶體塊的指標。

上下文資料:程序執行時處理器的暫存器中的資料。

i/o狀態資訊:顯示的i/o請求,分配給程序的i/o裝置和被程序使用的檔案列表。

記賬資訊:包括處理器時間總和,使用的時鐘數總和,時間限制,記賬號。

其他資訊

3.使用**模擬實現殭屍程序, 孤兒程序的場景.

孤兒程序

父程序先退出,子程序後退出。,子程序就變為孤兒程序

孤兒程序被1號init程序領養,父程序變為1號程序。

以d結尾

#include

#include

#include

#include

#include

int main ()if

(id==0)

if(id>0)

return0;

}

殭屍程序

子程序退出,父程序還在執行,但父程序沒有讀取子程序狀態,子程序進入僵死狀態,變為殭屍程序

#include

#include

int main (

)else

if(id>0)

else

return0;

}

Linux 程序概念

任何計算機系統都包含乙個基本的程式集合,成為作業系統 os 它包括 作業系統是管管理的軟體 使用者操作 使用者操作介面 shell,lib,指令等 作業系統 驅動程式 硬體 作業系統管理硬體 系統呼叫 在開發者角度,作業系統會對外表現為乙個整體,但是會暴露自己的一部分介面供上層開發者使用,這部分由作...

Linux 程序概念

程序排程演算法 在早期作業系統的排程方式大多數是非剝奪的,這是由於早期的應用一般是科學計算或事務處理,不太把人機互動的響應時間指標放在首要位置。在這種情況下,正在執行的程序可一直占用cpu直到程序阻塞或終止。這種方式的排程演算法可以很簡單,且比較適用對於響應時間不關心或者關心甚少的批處理科學計算或事...

Linux 程序概念

調研程序的排程演算法.短程序優先演算法,對預計執行時間短的程序優先分派處理機。通常後來的短程序不搶先正在執行的程序。演算法優點 相比fcfs 演算法,該演算法可改善平均周轉時間和平均帶權周轉時間,縮短程序的等待時間,提高系統的吞吐量。演算法缺點 對長程序非常不利,可能長時間得不到執行,且未能依據程序...