(1)系統是怎樣建立程序的?
1.申請空白pcb(程序控制塊);
2.為新程序分配資源;
3.初始化pcb;
4.就新程序插入就緒佇列;
(2)當首次呼叫新建立程序時,其入口在**?
fork()函式被呼叫一次,但返回兩次;兩次返回區別在於:子程式返回值是0,而父程序返回值是子程序的id。子程序和父程序執行相同的**,但是有自己的資料空間。
(3)程式的多次執行結果為什麼不同?如何控制實驗結果的隨機性?
多個程序的併發執行,每個程序都有先獲取cpu的可能性,故而哪乙個程序先執行是隨機的。可以通過等待,睡眠的等操作來實現多個程序的同步。
(1)可執行檔案載入時進行了哪些處理?
程序用exec( )裝入命令ls ,exec( )後,子程序的**被ls的**取代,這時子程序的pc指向ls的第1條語句,開始執行ls的命令**
(2)什麼是程序同步?wait( )是如何實現程序同步的?
程序同步是指多個相關程序在執行次序上進行協調,以使併發執行的主程序之間有效的共享資源和相互合作,從而使程式的執行具有可再現性。
首先程式在呼叫fork()建立了乙個子程序後,馬上呼叫wait(),使父程序在子程序呼叫之前一直處於睡眠狀態,這樣使子程序先執行,子程序執行exec()裝入命令後,然後呼叫wait(0),使子程序和父程序併發執行,實現了程序同步。
(3)wait( )和exit()是如何控制實驗結果的隨機性的?
可以看出在使用了exec()函式後程式使用了ls的命令,列出/bin/目錄下的檔案資訊,執行完execl()函式後,子程序呼叫exit()函式,退出當前程序,我們可以發現在使用wait()函式後,父程序永遠將在其他的子程序完成之後才執行,所以在輸出的結果中我們可以看到最後輸出的將是父程序的資訊,這樣進而可以控制實驗結果的隨機性。
第三次作業
2 12有600 mb 兆位元組 的資料,需要從南京傳送到北京。一種方法是將資料寫到磁碟上,然後託人乘火車這 些磁碟捎去。另一種方法是用計算機通過長途 線路 設資訊傳送的速率為2.4kb s 傳送此資料。試比較這兩種方法的優劣。若資訊傳送速率為33.6kb s,其結果又如何?解 當傳送速率為2.4k...
第三次作業
1 有600mb 兆位元組 的資料,需要從南京傳送到北京 一種方法是將資料寫到磁碟上,然後託人乘火車將這些磁碟捎去。另一種方法是用計算機通過長途 線路 設資訊傳送的速率為2.4kb s 傳送此資料,試比較這兩種方法的優劣。若資訊傳送的速率為33.6kb s,其結果又如何?解 假定連續傳送且不出錯。若...
第三次作業
p67 2 12 有600mb的資料,需要從南京傳送到北京。一種方法是將資料寫到磁碟上,然後託人乘火車將這些磁碟捎去。另一種方法是用計算機通過長途 線路 設資訊傳送的速率是2.4kbps 傳送此資料。試比較這兩種方法的優劣。若資訊傳送速率為33.6kbps,其結果又如何?解 1 t 600 1024...