程序控制程式設計

2021-08-11 05:59:31 字數 1772 閱讀 8878

1. 多程序與併發的關係

當有多個執行緒在操作時,如果系統只有乙個cpu,則它根本不可能同時真正進行乙個以上的執行緒,它只能把

cpu執行時間劃分成若干個時間段,再把時間段分配給各個執行緒執行,在乙個時間段的執行緒**執行時,其他執行緒處於掛起狀態。這種方式我們成為併發。

2. kill,pkill,xkill的區別

kill是和

ps,pgrep

命令結合在一起使用的

pkill和

killall

應用差不多,也是直接殺死執行中的程式;如果你想殺掉單個程序,應用

kill

來殺掉

xkill是在桌面上用於殺死圖形介面的程式

3. 程序的分類

linux作業系統包括三種不同型別的程序,每種程序都有自己的特點和屬性:

互動程序:由shell啟動的程序

批處理程序:這種程序和終端沒有聯絡,是一種程序序列

監控程序:linux系統啟動時啟動的程序,並在後台執行

4. 程序基本狀態

程序在執行中不斷改變其執行狀態,通常,乙個執行程序必須具有以下三種基本狀態:

就緒狀態:當程序已分配到除cpu以外的所有必要的資源,只要獲得處理器便可立即執行,這時的程序狀態稱為就緒狀態;

執行狀態:當程序已獲得處理器,其程式正在處理器上執行,此時的程序狀態稱為執行狀態;

阻塞狀態:正在執行的程序,由於等待某個事件發生而無法執行時,便放棄處理機而處於阻塞狀態

5. 排程演算法的使用範圍

fcfs:對長作業有利,但對短作業不利;對

cpu繁忙型有利,但對

i/o繁忙型不利;

sjf對長作業不利;

非搶占式優先順序演算法:這種演算法主要用於批處理系統中,也可用於某些對實時性要求不嚴的實時系統中;

搶占式優先順序演算法:常用於要求比較嚴格的實時系統中,以及對效能要求較高的分時系統和批處理系統

多級反饋佇列排程演算法:可行性強,適用於各種作業環境

時間片輪轉排程演算法:適用於分時系統

高響應比優先排程演算法:適用於批處理系統

6. exit和

_exit

的區別

_exit執行後立即返回給核心,而

exit

要先執行一些清除操作,然後將控制權交給核心。

exit

函式是在

_exit

函式之上的乙個封裝,它會呼叫

_exit

,並在呼叫之前重新整理流

exit函式和 

_exit

函式最大區別在於,

exit

函式在呼叫

exit

系統之前要檢查檔案的開啟情況,把檔案緩衝區的內容寫回檔案。要想保證資料的完整性,就一定要使用

exit()函式

7. 系統關閉重啟後殭屍程序是否還在

殭屍程序的資源已經收回,只是在程序描述表裡還有而已。所以除非是重啟系統,否則是殺不死殭屍程序的

8. 程序等待就一定是殭屍程序嗎?

在linux系統中,睡眠等待狀態分為中斷的和不可中斷的等待狀態

當程序已停止執行,但其父程序還沒有呼叫wait()詢問其狀態,則稱其處於殭屍狀態

9. pcb具體指什麼?

程序控制塊(pcb)是系統為了管理程序設定的乙個專門的資料結構。系統用它來記錄程序的外部特徵,描述程序的外部變化過程。同時,系統可以利用

pcb來控制和管理程序,所以說,

pcb是系統感知程序的唯一標識

10. 程序一般有哪些操作

程序的建立,檢視程序的屬性和狀態,調整程序的優先順序,結束程序

程序控制程式設計

q 為何需要多程序 或者多執行緒 為何需要併發?a 併發技術,就是可以在同一時間同時執行多條任務的技術,使用者進行的任務往往不止乙個,單 cpu計算機實際上只能在乙個時間片段內執行一條指令。linux 使用 程序排程 實現併發,為每個程序指派一定的執行時間,這個時間通常很短,然後依照某種規則,依次單...

程序控制程式設計

一.程序的分類 互動程序,批處理程序,守護程序。二.程序的屬性 1.程序id pid 是唯一的數值,用來區分程序 2.父程序和父程序的id ppid 3.啟動程序的使用者id uid 和所歸屬的組 gid 4.程序狀態 狀態分為執行r,休眠s,殭屍z 5.程序執行的優先順序 6.程序所連線的終端名 ...

程序控制程式設計

程序的生命週期 建立 每個程序都是由其父程序建立,程序可以建立子程序,子程序又可以建立子程序的子程序 執行 多個程序可以同時存在,程序間可以通訊 撤銷 程序可以被撤銷,從而結束乙個程序的執行 程序的狀態 執行狀態 程序正在占用cpu 就緒狀態 程序已具備一切條件,正在等待分配cpu的處理時間片 等待...