1 乙個執行緒是否會被時鐘中斷剝奪cpu使用權?請分執行緒實現型別討論。
使用者級執行緒不會被時鐘中斷剝奪cpu使用權。使用者級執行緒在使用者空間通過庫函式實現,無需核心支援也不參與核心的排程,由使用者程式自行呼叫、排程和維護。使用者級執行緒不受核心時鐘中斷的影響,但如果其所在的程序時間片用完,自然整個程序的所有執行緒都會讓出cpu。
核心級執行緒由核心排程和維護,是可以被時鐘中斷單獨剝奪cpu使用權的。
對於混合執行緒實現方式,使用者級執行緒和核心級執行緒之間有對映關係,乙個執行緒是否會被時鐘剝奪cpu使用權取決於其由哪一方控制。不論是many-to-one, one-to-one, 還是many-to-many,其對映中核心級執行緒是可以被時鐘中斷剝奪cpu使用權的,而使用者級執行緒的情況取決於其所對映的核心級執行緒,一旦核心級執行緒被剝奪cpu使用權,其所對映的使用者級執行緒都將讓出cpu。如果乙個核心級執行緒對映多個使用者級執行緒,其使用者級執行緒不可單獨被時鐘中斷剝奪cpu使用權;如果乙個核心級執行緒只映**乙個使用者級執行緒,那麼中斷掉核心級執行緒也就相當於中斷掉了對應的使用者級執行緒。
2 乙個軟實時系統中有4個週期性程序,其週期分別為:50、100、200、250,每次cpu執行時長分別為:35、20、10、x,求使得這些程序可排程的最大x取值。
若使用靜態排程演算法,rms已被證明是靜態最優排程演算法,其推導了,當任務集滿足 ∑i=
1nci
/ti≤
n(2n
−1)\sum_^n c_i/t_i \leq n(\sqrt[n]2-1)
∑i=1n
ci/
ti≤
n(n2
−1)
時一定可排程,在題目所述情況下有4個程序,不等式右側為 4×(
24−1
)=0.75682846
4 \times (\sqrt[4]2-1)=0.75682846
4×(42
−1)=
0.75
6828
46,將4個程序的執行時間和週期代入不等式左側,得到 35/50
+20/100+10
/200+x
/250
≤0.75682846
35/50+20/100+10/200+x/250 \leq 0.75682846
35/50+
20/1
00+1
0/20
0+x/
250≤
0.75
6828
46,發現 x
xx 必須是負數,說明上述條件得任務集是靜態不可排程的。
若使用動態的排程演算法,只需要任務集滿足 ∑i=
1nci
/ti≤
1\sum_^n c_i/t_i \leq1
∑i=1n
ci/
ti≤
1 即可排程。 35/50
+20/100+10
/200+x
/250≤1
35/50+20/100+10/200+x/250 \leq 1
35/50+
20/1
00+1
0/20
0+x/
250≤
1 ,得到 x
≤12.5
x \leq 12.5
x≤12.5
。3 有五個程序p1、p2、p3、p4、p5,它們同時依次進入就緒佇列,它們的優先數和需要的處理器時間如下表。程序
處理器時間
優先順序(數小優先順序高)
p1103
p211
p323
p414
p552
忽略進行排程等所花費的時間,回答下列問題:
寫出採用「先來先服務」、「短作業(程序)優先」、「非搶占式的優先數」和「輪轉法」等排程演算法,程序執行的次序。(其中輪轉法的時間片為2)分別計算上述演算法中各程序的周轉時間和等待時間,以及平均周轉時間。
四種排程演算法下五個程序的執行順序如下圖所示:
先來先服務:
程序周轉時間
等待時間
執行時間
p110010
p211101
p313112
p414131
p51914510+
11+13+
14+19)
÷5=13.4
(10+11+13+14+19)\div5=13.4
(10+11
+13+
14+1
9)÷5
=13.
4 短作業優先:
程序周轉時間
等待時間
執行時間
p119910
p2101
p3422
p4211
p5914519+
1+4+
2+9)
÷5=7
(19+1+4+2+9)\div5=7
(19+1+
4+2+
9)÷5
=7非搶占式優先數:
程序周轉時間
等待時間
執行時間
p116610
p2101
p318162
p419181
p561516+
1+18+
19+6)
÷5=12
(16+1+18+19+6)\div5=12
(16+1+
18+1
9+6)
÷5=1
2 時間片輪轉(時間片為2):
程序周轉時間
等待時間
執行時間
p119910
p2321
p3532
p4651
p51510519+
3+5+
6+15)
÷5=9.6
(19+3+5+6+15)\div5=9.6
(19+3+
5+6+
15)÷
5=9.
6
第六次課程作業
git提交鏈結 本次作業要求實現核心演算法,我就將上次作業講到的字尾表示式進行 實現,這次的作業是直接進行重構,如果按照原來生成算式的方法會顯得 雜亂且種類單一 主要的是再下次還得重構。所以就只做了a b型的算式。計算的 也沒將括號考慮進去。最心累的還是被qt creator的配置浪費了一天半的時間...
第六次課程作業 隨筆
要求寫乙個隨筆,文字不少於500字,如果需要可以貼圖。1.談一下本學期學習python的體會,這種邊講邊練的形式如何?如果對教學還有什麼建議,也可以提出。邊講邊練的方式很有益處,特別是對基礎較差 該節課內容不理解的同學來說好處多多。有時做作業的過程中思考卡殼時,剛好老師講解的話,有助於理解。2.談一...
第六次作業
姓名 陳裕坤 學號 120705213 班級 12電信2班 作業1 總結,到目前為止,c語言基礎知識已介紹完,下一階段重點是指標。請從以下幾個方面小結 1.程式設計重在實踐,多程式設計才會對其理解更深,我是如何學習c語言的?2.程式設計涉及到方方面面知識,就像英語單詞一樣,一開始不可能了解每個c元素...