計算機作業系統

2021-09-19 03:59:33 字數 1394 閱讀 4984

實驗一:熟悉linux作業系統(程序觀測)

實驗目的:

(1)了解在linux作業系統中程序的特點和表現形式

(2)掌握linux檢視程序的方式與方法

(3)在乙個程序中建立另乙個程序的方法

(4)掌握父程序和子程序的關係和fork的用法

實驗內容:

(1)編寫乙個簡單的程式,使用ps或top工具觀察該程序的的id號,並使用kill工具終止程序執行。

(2)編寫乙個程式,使用fork函式生成乙個子程序,並使用相關工具觀察程序狀態。

實驗步驟:

(1)#include

int main()

return 0;

}開啟終端 輸入命令 gedit process1.c

建立乙個程序

可以觀察到程式無限輸出 i am the first process!

使用top工具檢視該程序

觀察到該程序的程序號為3510

top工具是用來實時顯示中各個程序的資源占用狀況 tasks: 239 total是程序的總數 2 running是正在執行的程序數 182 sleeping是休眠的程序數 0 stopped是停止的程序數 0 zombie是殭屍程序數 %cpu(s):是使用者空間占用cpu百分比 0.0% ni使用者程序空間內改變過優先順序的程序占用cpu百分比 66.2% id空閒cpu百分比

kill工具殺死該程序

新建乙個終端視窗 輸入kill命令 再輸入剛剛觀察到的程序號

該程序已被殺死 該程序消失

由於該程序一直處於迴圈中,思考id、記憶體使用和cpu占有率哪乙個因素和迴圈

關係密切?如何避免,請給出合理的建議。這是否說明cpu也是作業系統中的乙個重要資源?

我認為與 id,記憶體使用和cpu占有率都有關係

(2)#include

#include

void main()

else

}可以看出這是使用fork()函式建立了乙個子程序 因為fork函式呼叫一次返回兩次 父子程序是共用記憶體空間的,所以父程序返回子程序id,子程序返回0。fork函式在父程序中呼叫,返回父子兩個程序。這個迴圈是有限但是無順序的迴圈。

若將上述例項(2),改寫為:

#include

#include

void main()

else

}與上乙個**相比,這裡的父程序是有限的,子程序是無限的。所以他會一直返回子程序

若將將例項(2)改為:

#include

#include

#include

void main()

else

}這裡的父子程序都是無限迴圈,他會一直呼叫一直輸出,直到殺死程序

總結:使用fork函式,呼叫一次,返回兩次。且父子程序是無序列印輸出的。

計算機作業系統

為什麼要有作業系統 計算機系統是乙個複雜的系統,如果每位程式設計師在程式設計時都必須掌握計算機系統的所有細節,就會嚴重影響程式設計師的開發效率 作業系統可以對計算機硬體加以管理和優化使用,為使用者程式提供更好的執行環境。作業系統以及其位置 作業系統組成 作業系統功能 應用程式直接與作業系統及其抽象打...

計算機作業系統

1 單選題 作業系統的主要功能是管理計算機系統中的 選項 a 程式和資料 b 資源 c 作業 d 程序 答案 資源 2 單選題 關於多道批處理作業系統,以下說法錯誤的是 選項 a 可提高系統資源的利用率 b 可提高計算機系統的工作效率 c 可提高系統吞吐量 d 在作業執行時使用者可以直接干預作業的執...

計算機作業系統

作業系統 operating system,os 是配置在計算機硬體上的第一層軟體,是對計算機硬體系統的首次擴充 作業系統的主要作用 1.管理好裝置,提高裝置的利用率和系統的吞吐量 2.為使用者提供和應用程式提供乙個簡單的介面,便於使用者使用 1.1.1 作業系統的目標作業系統的目標與應用環境有關 ...