程序的那些事兒

2021-08-18 00:12:24 字數 1574 閱讀 2218

先來先服務 (fcfs,first come first served)

最短作業優先(sjf, shortest job first)

最高響應比優先法(hrrn,highest response ratio next)

最高響應比優先法(hrrn,highest response ratio next)是對fcfs方式和sjf方式的一種綜合平衡。

時間片輪轉演算法(rr,round-robin)

該演算法採用剝奪策略。時間片輪轉排程是一種最古老,最簡單,最公平且使用最廣的演算法,又稱rr排程。每個程序被分配乙個時間段,稱作它的時間片,即該程序允許執行的時間。

多級反饋佇列(multilevel feedback queue)

多級反饋佇列排程演算法是一種cpu處理機排程演算法,unix作業系統採取的便是這種排程演算法。

在unix 系統中,乙個程序結束了,但是他的父程序沒有等待(呼叫wait / waitpid)他, 那麼他將變成乙個殭屍程序。 但是如果該程序的父程序已經先結束了,那麼該程序就不會變成殭屍程序, 因為每個程序結束的時候,系統都會掃瞄當前系統中所執行的所有程序, 看有沒有哪個程序是剛剛結束的這個程序的子程序,如果是的話,就由init 來接管他,成為他的父程序……

**如下:

int main(void)

if(pid > 0)

else

if(pid == 0)

printf("fork after...\n");

通過ps -ef我們可以得知程序資訊和程序pid,可以看到子程序就是處於defunct狀態

disda 27881 23047 0 11:12 pts/1 00:00:00 ./fork01 (父程序)

disda 27882 27881 0 11:12 pts/1 00:00:00 [fork01] defunct(子程序)

如果父程序先退出,子程序還沒退出那麼子程序將被 託孤給init程序,這是子程序的父程序就是init程序(1號程序)

**如下:

int main(void)

if(pid > 0) //父程序先退出

else

if(pid == 0)

printf("fork after...\n");

}

before fork pid:27709

parent:pid:27709

abc:11

child:27710,parent: 27709

fork after…

disda 27710 1 0 10:47 pts/1 00:00:00 ./review

disda 27713 25948 47 10:47 pts/3 00:00:00 ps -ef

我們執行程式後由於子程序進入sleep(100),而父程序先退出.通過ps -ef命令我們可以知道,此時27710號程序的父程序程式設計了1號程序.也就是我們所說的init程序.

程序以下的那些事兒

硬體驅動程式的最底層是什麼?是直接操作硬體的部分。直接與硬體互動的方法有2大類 另外一種方式是irq。它是由硬體主動發起,打斷cpu正在執行的程式。cpu會跳到irq號對應的中斷號所對應的中斷服務程式。執行完中斷服務程式再返回到原來的程式。所以,驅動程式往往包括這麼幾個部分 初始化 設定硬體狀態,安...

object的那些事兒

昨天和大姐qq。說給我看了,今年找到物件。我就在那裡騙他們。說我找了乙個 人。明年去 以後就沒有多少機會見到他們了。呵呵,大姐就說這樣我不聽話,那樣不聽話,不讓我去,說還借我錢買房子,不能去,去了父母白養這麼大了,我總是騙他們,逗他們。以前還騙他們說我出家。有一段時間,工作不順心,我壓力挺大的。不知...

和 的那些事兒

和 都可以用作邏輯與的運算子,表示邏輯與 and 當運算子兩邊的表示式的結果都為true時,整個運算結果才為true,否則,只要有一方為false,則結果為false。還具有短路的功能,即如果第乙個表示式為false,則不再計算第二個表示式,例如,對於if str null str.equals 表...