作業系統小結

來源:互聯網
上載者:User

線程的引入是為了減少程式在並發執行時所付出的時空開銷,使os具有更好的並發性。
線程和進程比較
1)調度
在傳統的os中,進程是資源分派的基本單位,也是一個能獨立運行和調度的基本單位。而在引入了線程的os中,進程仍然作為資源分派的基本單位,而獨立運行和調度的基本單位變成了線程,線程只擁有自己需要的少量資源即可工作。
2)切換
在引入了線程的os中,同一進程中, 線程的切換不會引起進程的切換,但從一個進程中的線程切換到另外一個進程的線程中,則需要進程的切換。
3)並發性
在引入了線程的os中,不僅進程之間可以並發執行,而且在一個進程中的多個線程也可以並發執行,使得os具有更好的並發性,從而能更加有效地提高系統資源的利用率和系統的輸送量。
4)擁有資源
不論是傳統的os還是引入了線程的os,進程都是資源分派的基本單位。一般而言,線程自己不擁有系統資源(只是運行必不可少的而已),但是它可以訪問其隸屬的進程資源。一個進程中的所有線程可以使用該進程的所有資源。
5)系統開銷
在建立或撤銷進程時,系統都要為之建立和回收進程式控制制塊,分配或回收資源,os所付出的開銷要遠大於線程進行同樣操作時需要的花銷。

訊號量機制
1)訊號量機制是dijkstra為解決進程同步問題而提出的一種進程同步機制。一共分為4種:整型訊號量機制、記錄型訊號量機制、and訊號量機制、訊號量集機制。
整型訊號量機制就是需要某種資源就通過wait操作申請資源,用完就是用signal操作釋放,這兩個操作是原子操作,所以不符合讓權等待的同步機制的4個原則。
2)為瞭解決整型訊號量機制無法讓權等待的問題,提出了改進的記錄型訊號量,具體實現就是通過一個block隊列來儲存無法獲得資源的進程,絕對值代表因缺少該資源而放入等待隊列的進程數目。如果無法獲得該類資源,就放棄處理機進入阻塞隊列,等到有空閑資源時,就查看阻塞隊列中是否有等待的進程。
3)and訊號量就是針對一個進程需要多個資源提出的,如果2個進程a,b,都需要2個資源c,d,但是a先獲得了c,b先獲得了d,那麼,就死結了,因為都不想釋放。and訊號量機制就是對一個進程所需要的資源要麼全部分配,要麼全部都不分配(只要其中一個資源沒有空閑就不分配)
4)訊號量集機制是對於多個進程分別需要多個資源提出的。是上述同步機制的集大成者。
一般形式為:swait(s1,t1,d1,.....sn,tn,dn)其中s為訊號量,d為需求值,t為下限值。因為是and型訊號量的擴充,所以也是要麼全部分配,要麼全部不分配兩種選擇。
 
程式執行流程http://wenku.baidu.com/view/a1cb31671ed9ad51f01df2fa.html

處理機調度一共有三種:進階調度、中級調度、低級調度
1)進階調度就是作業調度,就是根據某種演算法,把外村上處於後備隊列中的那些作業調入記憶體,調度對象為作業。
2)低級調度就是進程調度,調度對象為進程,用於決定就緒隊列中的哪個進程應獲得處理機,再燃再由分配程式執行把處理機分配給該進程的具體操作。
3)中級調度就是儲存空間管理中的對換功能,主要目的是為了提高記憶體利用率和系統輸送量。

產生死結的必要條件
1)互斥條件:進程對分配的資源進行排他性使用,即某資源只能被一個申請到該資源的進程獨自使用,其他申請者只能等待。
2)請求和保持條件:進程已保持了一個資源又需要另一個資源而得不到滿足時,就是阻塞,但是不釋放已獲得的資源。
3)不剝奪條件:進程獲得的資源未使用完之前不能被剝奪,只能在使用完後由自己釋放。
4)環路等待條件:發生死結時,必然存在一個資源競爭的環路。

處理死結的基本方法
1)預防死結。通過設定限制條件,去破壞產生死結的4個條件的一個或幾個條件。但是往往由於限制條件過於嚴格,因而對系統的資源使用率和輸送量有一定的影響(下降)。
2)避免死結。也是事先預防的策略。利用某種安全演算法防止系統進入不安全狀態,施加的限制條件比較弱。(銀行家演算法)
3)檢測死結。事先不採取任何限制性措施,允許系統在運行過程中出現死結。但是可以通過系統的檢測機構發現死結的資訊並採取相應措施解除死結。
4)解除死結。與檢測死結配合使用。實現起來難度較大。

死結定理
S為死結狀態的充分條件是:若且唯若S狀態的資源分派圖是不可完全簡化的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.